Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Първи стъпки в програмирането на JAVA
  1. Първи стъпки в програмирането на JAVA
  2. Първи стъпки в програмирането на JAVA - II
PureEvil
     
Автор  PureEvil (07.05.2006 11:23)  съобщение до автора
Погледнат  20276 пъти  добави към любими
Оценка  добави коментар
Гласове  50  изпрати на приятел
Коментари  (14)  абонирай се за Java
    Страница 1 / 2

 



Първи стъпки в програмирането на JAVA

//Интро
    В тази статия(или по точон някакъв текстов материал ;)) ще стане дума как да започнем да пише малки JAVA програми. Ще разберем какви „продукти“ са ни нужни за да можем да пишеш „програмите“(много е силно да се каже програми :), но все пак всяко парче код което върши работа е програма нали?), които ще разгледаме след малко.

//Продукти
    За начало нека да приготвим „нужните продукти“. С тях ще се сдобиете от http://java.sun.com/j2se/1.5.0/download.jsp (това е най-новата версия в момента на писане на статията – поне така пише на сайта ан Sun). Тъй като на мене постояно ми дава грешки(предполагам то доставчика, а не от сайта на SUN) си намерих jdk-1_5_0_06-windows-i586-p.exe(59.86МБ), което включва JDK 5.0 без NetBeans IDE. Като за начало ви препоръчвам да си свалите JCreator LE(2,19МБ) от http://www.jcreator.com/ - това е безплатно IDE, леко е и върши работа за обучение. Инсталирането става лесно, просто следвате екраните, които ви показва инсталатора(ако инсталирате на принципа NEXT NEXT FINISH всичко ще работи).

//Преди началото
    Преди да започнем с примерите ще се запознаем как трябва да е структуриран един java файл, както и ще се запознаем със синтаксиса. В началото трябва да окажем кои библиотеки ще ползваме в кода на програмата. Това става с помща на import Библиотека.
(пример: import java.net.*;). След като сме указали, кои библиотеки ще ползваме следват класовете(може да бъде и един), които изграждат програмата.
    Както във всички езици и в JAVA има служебни думи – това са думи, които можете да ползвате само по-предназнечението определено от SUN(в случая :)). Примерно не можете да имате променлива с име import, защото това е служебна дума за зареждане на библиотеки. Подобни служебни думи са class, for, if, while, var (на базта на незнаението ми на JAVA мога да спомена тези :)), ето и адрес със запазените думи: http://home.cogeco.ca/~ve3ll/jatutorx.htm в този език.
Един клас е съставен от методи и променливи:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
class NameClass {
 
int number;
 
String ludnuca = „Yeaa :)“;

 
void methodOne() {
 
//code here
   number
= 1;
 
}

 
public static void main() {
 
//code here
 
}
}

     Вместо да продалжавам да описам синтаксиса на езика, нека да преминем към примерите така би станало по ясно от колкото „изсипване“ на теория от моя гледна точка. Повече за синтаксиса можете да научте от документацията на езика, която можете да намерите на сайта на SUN -> http://sun.com.

    Пример 01 – ще стане дума за писане във файл, ползване на регулярни изрази, четене на файл от URL адрес, извеждане на данни в конзола.
    Нека да не губим повече време в излишни приказки, а да минем към програмта. Това е целия код на програма, която чете дадена интернет страница като от нея извежда на екрана всички е-мейл адреси, които е намерил на базата на регулярен израз и освен това ги записва в текстов файл – всеки майл на нов ред.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

import java.io.*;
import java.net.*;
import java.util.regex.*;

/*************************************
 *
project: NP 2006
 *
author: PureEvil
 *
filename: ZadachaRegExpMails.java
 *
last change: 14.04.2006
 ************************************/

public class ZadachaRegExpMails {
   
   
public static void main(String args[]) {
       
       
if ( args.length < 1 ) {
           
System.out.println("Zemi napsihi parametrite ba!");
       
}
       
else {
           
try {
           
URL url = new URL(args[0]);
       
          
//Read text from URL
            BufferedReader in
= new BufferedReader(new InputStreamReader(url.openStream()));
           
String str, newstr = "";
           
while ((str = in.readLine()) != null) {
               
newstr = newstr + str;
           
}
           
in.close();
           
          
//RegExp - find mails ;)
           
Pattern p = Pattern.compile("[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}");
           
Matcher m = p.matcher(newstr);
           
          
//to write :)
           
BufferedWriter out = new BufferedWriter(new FileWriter("mail.txt"));
           
           
while (m.find()) {
                
System.out.println("Found e-mails: " + m.group());
                  
out.write( m.group() + "rn" );
           
}
           
           
out.close();
           
           
} catch (MalformedURLException e) {
               
System.err.println("Error 1");
           
} catch (IOException e) {
               
System.err.println("Error 2");
           
} catch (PatternSyntaxException e) {
               
System.err.println("Error 3");
           
}
       }
    }
}


    Сега нека да разгледаме кода на части. В началото зареждаме библиотеките, които са ни нужни: java.io.*; java.net.*; java.util.regex.*. В тях се намират всички класове и методи, които ще ползваме по късно в програмта. Ако пропуснем да заредим някоя библиотека програмата ни няма да може да проработи.
    След това следва блок коментар(какво да се прави стил на писане). Освен /* блок */, може да коментираме редове като ползваме //Коментар.
    Името класът ZadachaRegExpMails трябва и да е име на файла – нямам си идея защо, просто една от осбедностите на JAVA Ако името не е същото просто файла няма да се компилира. Както се вижда от кода нямаме никакви методи, само main() който всъщност е самата прогрма. Като параметри приема масив от тип стринг(букви, знаци, числа). Конструкцията if/else е както при всички езици: ако условието е изпълнено(true) изпълнява часта код след if, ако не изпълнява тялото на else. В случая проверявам дали има подадени някакви данни, ако няма извежда съобщение, че не е въведено нищо и следва край на програмта.
    Try/catch – с помоща на тази „конструкция“ прихващяме всички изключения, които ни връща кода(да кажем проблем при писането във файл). Във документацията е описано, кой-какво изключение може да „хвърли“ като по този начин образуваме поредицата от catch. В тялото на catch може да изведем съобщение за грешка като ползваме System.err.println(„text“);. Може и да ползваме стандартния изход System.out.println(„text“);, работи безотказно :), но щом е измислно има някаква цел(но и да не забравяме че това е JAVA ;)).



  Следваща страница >> 


Ключови думи: Java програмиране jdk ide метод променливи документация клас обект конструкция регулярни изрази аргумент първи стъпки начинаещ


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 2 посетители четат този урок (1 потребител и 1 гост)  
Активни потребители: AnaMihaylova
   
  

Еmail  
 

@silver_fox благодаря за коментара, но по-принцип се ескпейва със една наклонена черта. Това с чертата е обсъждано и преди, при мен работеше така както съм го пуснал, после отново разбрах че JAVA е дърво и нещата не са такива каквито са ;).

  PureEvil на 23.06.2008 11:05

Това с намирането на e-mail е много добро само има една малка
неточност:

D:\Java>javac ZadachaRegExpMails.java
ZadachaRegExpMails.java:33: illegal escape character
"[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}"
                тук трябва да е \\.  -това се налага защото'.'
е специален символ в регулярният израз (обозначава класа от всички символи).Самият String първо се обработва от компилатора при което \\. става на \. a \. се подава на машината на  регулярният израз.
"[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"

  silver_fox на 22.06.2008 21:27

Няма спор че е полезен език.
Това което говориш за големите файлове ... защо програмка на JAVA? Сложи си едно нормално IDE и си готов ;).

  PureEvil на 08.10.2007 10:27

Аз съм от "селските", както казваше един мой преподавател, които пишат на С и ползват VIM 
Обаче в лабораторията като имам някакъв огромен файл, съдържащ някакво дърво и трябва да го проверя, предпочитам да си напиша набързо една програмка на JAVA, която да ми го показва с бутончета за скриване и показване на всеки възел. На C да напишеш подобно нещо отнема доста повече време, а не това е работата, която трябва да върша.  От тази година в първи курс (той е общ за 5-6 специалности) във въведение в информатиката трябва да им се говори малко за теория на автоматите и приложенията, та магистрите, които работим в лабораторията към катедрата сме решили да направим нещо като игра написана JAVA в която се строят автомати, разпознаващи езика описан от даден регулярен израз и да се извършват разни действия като конкатениране, обединение, емондиране, детерминиране и т.н.
Така, че JAVA е полезен език. За всеки влак си има пътници 

  SOMNIVM на 08.10.2007 02:11

Хехе, човек ако си е играл 2-3-4 седмици с ООП няма да има нужда от такива Първи стъпки.
Както казах: мразя JAVA. Просто така и така трябваше да пиша тия глупости та реших да споделя творението и да се покаже на масата потребители, които питат за курсови задачи че не е трудно да си ги направиш сам.

Не може да се сетиш? Да не си и ти поредния JAVA програмист, който не знае какво е документация(не се заяждам и не целя да те обидя. просто е масово сред JAVA програмистите да пишат кофти софтуер ;))

  PureEvil на 22.08.2006 15:01

Впрочем за err и out потоците - на някои платформи, като *NIX like такива, има отделни привилегии за System.err, т.е. например записване в log файл, друг вид оцветяване и прочие. Просто в Windows не навсякъде е засегнато правилното опериране с класовете.

  nofearinc на 18.08.2006 01:09

Първи стъпки, а? :) Става за първи стъпки за човек, който е пипал ООП и си е играл минимум 2-3-4 седмици, за да има чудесна представа за какво иде реч.

Тея буферирани четци като че ли загрубяват нещата... Един PrintStream нямаше ли да свърши работа?
И като цяло е доста тежко- ако не бях ползвал URL класа, сигурно изобщо нямаше да се сетя какво става ; ))

  nofearinc на 18.08.2006 01:07

Ами няма значение, все пак се оправих, обаче чак след като минах на Net Beans 5.0., което не ме устройва, понеже, предпочитам по-лекия компилатор на JCreator :)

  Tabledott на 06.08.2006 08:10

BigInteger ??? Че къде в примерите го има това?
Виж сега ако ползваш разни екстри които не са част от основаната дистрибуция(ако мога така да се изразя :)) ползвам документацията на дадената библиотека или там  каквото е. Примерите тук изпозлват неща само от стандартните библиотеки, които идват с jdk-1_5_0_06-windows-i586-p.exe ;)

  PureEvil на 24.07.2006 10:32

Ами само искам да добавя, 4е изтегляйки така посочените неща, също не ми работи и класа BigInteger  (сигурен съм, защото съм тествал с работещ код и т.н.)

  Tabledott на 16.07.2006 15:37

Това за Scanner класа го гледах някаде на скоро ... но не помня къде. Допълнително се сваля(или поне такива спомени имам), но повече подробности на сайта на SUN.

  PureEvil на 10.07.2006 14:49

Да, наистина урока е много добър, обаче имам следния проблем, като инсталирам exe-to и IDE-то, описани в урока и след това при компилация ми дава "class Scanner not found", интересно къде е проблема ?

  Tabledott на 29.06.2006 08:56

Много добра статия :). Хареса ми и смятам, че човек, който за пръв път хваща Java ще има полза от нея.
Само две бележчици.
1. Списъкът с ключовите думи е от 1.4, в 1.5 има нова и тя е enum.
2. Причината за двойната обратно наклонена черта (\), е, че регулярният израз се подава като String, а \ трябва да се "ескейпва" в стринговете.

  ShaMan-H_Fel на 21.06.2006 21:25

Наскоро един потребител от форума забеляза че при него сорса се компилира само ако махне \\ от регулярния израз. JAVA странна работа е това :) така че ако ви дава грешка опитайте това.

  PureEvil на 10.06.2006 08:44

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008