JAVA Booklet A5

download JAVA Booklet A5

of 65

Transcript of JAVA Booklet A5

Introducere:Java este un limbaj de programare ini iat de James Arthur Gosling n cadrul firmei Sun Microsystems care este parte component a Oracle Corporation. Java se aseamn mult cu C/C++ dar este un limbaj complet orientat obiect fcnd mai uoar dar i obligatorie programarea orientat obiect. Codul surs, avnd extensia .java, trebuie compilat cu ajutorul compilatorului javac rezultnd un fiier binar .class dar acest fiier nu poate fi direct executat pe ci e nevoie de maina virtual java pentru a-l interpreta. Acest lucru asigur programelor java portabilitatea pe diverse platforme practic un program java scris i compilat pe orice fel de calculator va rula pe orice fel de calculator care are instalat maina virtual java. Faptul c este un limbaj interpretat face rularea programelor un pic mai greoaie i mai consumatoare de timp dar portabilitatea este un atu foarte tentant. Exist dou tipuri de aplica ii java, aplica iile obinuite care sunt rulate direct pe calculator cu ajutorul mainii virtuale java i applet-urile ,aplica ii care se incorporeaz n codul HTML al unui ite i ruleaz pe browserele web. Pentru a compila i rula programe Java trebuie s instalm mai nti maina virtual Java: descrcm i instalm j2re java2 Runtime Environment //probabil c l ave i deja instalat, altfel nu pute i juca jocuri pe Ymessenger i nu v vor merge unele programe descrcm Java Development Kit jdk1.6.xx i dezarhivm folderul plasndu-l ntr-un firector unde dorim. Eu l-am plasat n C:\Program Files\Java\ -deci n directorul de instalare al mainii virtuale Java. Compilatorul nostru se numete javac i se gsete n C:\Program Files\Java\ jdk1.6.0_22\bin --n cazul meu Adugm n variabila de mediu PATH din mediul Windows o nou cale de cutare, o cale ctre compilatorul javac, astfel nct s-l putem folosi n linie de comand. Pentru asta mergem n Start>Control Panel>SystemSe deschide o fereastr noua cu titlul SytemProprietiesApsm tabul Advanced>Environment Variables---Se deschide o alt fereastr unde apar variabilele de mediu>Selectm variabila PATH din fereastra System variables, apsm i adugm C:\Program Files\Java\ jdk1.6.0_22\bin la ea. Variabila Path re ine ci de cutare despr ire prin ; la programe. Atunci cnd specificm n linie de comand >program.exe, terminalul caut program.exe n directorul curent iar dac nu-l gsete l caut in cile de cutare din Path.

OpenBooklet padre_cosminhttp://download.oracle.com/javase/tutorial/java/TOC.html

ETAPELE COMPILRII 1) editm codul sursTEXT EDITOR [ SalutPlaneta.java ] File | View | Tools | Help public class SalutPlaneta { public static void main(String[] args) { System.out.print(''SalutPlaneta!''); } } editm codul ntr-un editor de text salvm fiierul cu numele clasei extensia .java. Un fier surs Java con ine una sau mai multe clase dar neaprat cel mult o clas public i trebuie salvate cu numele acesteia. una din clasele programului trebuie s con in metoda(func ia) main in cadrul rularii programului, maina Java va cuta clasa cu func ia main si va executa codul nscris n aceata putem crea o surs .java cu mai multe clase n care o clas con ine func ia main, n urma compilrii se vor crea mai multe fiiere .class dar doar una va putea fi rulata, clasa care contine metoda main. De asemenea un fiier java poate con ine doar o singur clas public 2) compilarea efectiv: deshidem terminalul i scriem: $ javac SalutPlaneta.java rezultatul este un fiier .class numit SalutPlaneta.class care nu poate fi rulat direct de ctre sistemul de operare ci trebuie trimis mainii virtuale Java 3) rularea programului n terminal scriem: $ java SalutPlaneta se va afia: SalutPlaneta! Observa ii: comentariile pe un singur rnd se marcheaz cu //acesta este un momentariu comentariile pe mai multe rnduri se scriu ntre /*comentariu*/ Java este un limbaj complet orientat obiect, totul se include n clase chiar dac dorim sa facem doar un program structurat. clasa care con ine func ia main trebuie sa fie publica... public class AppMea{ func ia main trebuie sa fie declarat public, static si de tip void i va primi ca argumente un siruri de caractere: public static void main(String[] args) trimiterea argumentelor in linie de comanda: java AplMea arg1 arg2

Applet sunt aplica ii care se incorporeaz n cod HTML i ruleaz n browsere web nu necesit prezen a unei func ii main Exemplu de applet: import java.awt.Graphics; public class SalutWeb extends java.applet.Applet { public void paint(Graphics g) { g.drawString("Salut, World Wide Web!", 10, 50); } } Etapele utilizrii: scrie codul ntr-un editor de text compileaz codul asemntor unui program java fiierul compilat nu va rula, maina Java va spune ca lipsete func ia main facem o referin la fiierul compilat ntr-un fiier HTML numit SalutWeb.html HelloWeb Applet SalutWeb Applet punem fiierul html n acelai director cu fiierul binar java al appletului n linia de comand scriem: $ appletviewer SalutWeb.html acum putem deschide fiierul SalutWeb.html cu un browser import java.awt.Graphics; -->spune lui JRE unde s gseasc defini ia clasei public class HelloWeb extends java.applet.Applet { --> extends ofer posibilitatea folosirii propriet ilor clasei Applet(care este predefini ) n clasa definit de noi

!!!JAVA ESTE UN LIMBAJ CASE SENSITIVE!!! TIPURI DE DATE: Tipuri numerice: Tip By i Valori cuprinse byte 1 [-128, 127] short 2 [-32 768, 32 767 ] int 4 [-2 147 483 648, 2 147 483 647] long 8 [-9 223 372 036 854 775 808, 9 223 372 036 854 775 807] float 4 [3.4 x 10-38, 3.4 x 10+38] double 8 [1.7 x 10-308, 1.7 x 10+308] Tipul char char 2 0-:-255 re ine un caracter Unicode16 char a = 'm', b = '\u006d', c = 109; //toate re in caracterul m Caractere Escape: \\ \n \' \" \r \t \f backslash new apostrof ghilimele carriage tab fil line return nou Tipul boolean: boolean 1 true, false

OPERATORI Operatori Aritmetici: operator nume exemplu + plus a=b+c; minus a=b-c; * inmul it a=b*c / impr it a=b/c; //dac a, b, c sunt ntregi, n a se pune ctul mpr irii % modulo a = b%c; //returneaz restul mpr irii Operatori Rela ionali: operator nume mai mic < mai mare > mai mic sau egal = testarea egalit ii == diferit != exemplu

Tipul referin : Re ine o adres ctre un obiect, asemntor unui pointer. Operatorul CAST schimb tipul variabilei (tip)variabila int a = (int) 5/2;

Operatori de incrementare / decrementare operator nume exemplu incrementare b = a++; postfixare(valoarea lui a ++ este prima dat atribuit lui b apoi este incrementat) c = ++a; prefixarea(valoarea lui a este prima dat incrementat apoi este atribuit lui c) decrementare b = a--; postfixarea -c = --a; prefixarea Operator de atribuire: var = expresie; Combina ii operator de atribuire-operatori matematici: +=, -=, *=, /=, %=, >>=, >=, &=, ^=, = a +=b; //echiv. cu a = a+b;

Operatori logici: Operator denumire ! nega ie logic && i logic sau logic Operatori logici pe bi i: Operator denumire >> deplasare la dreapta >> deplasare la dreapta & ^ ~ i pe bi i sau pe bi i sau exclusiv nu pe bi i

exemplu if(!(a==23)) .... if((a==4)&&(b3 //deplaseaz la dreapta cu 3 pozi ii,se copiaz bitul de semn la coada bi ilor lui a

ELEMENTE DE PROGRAMARE STRUCTURAT Condi ionala IF: if (expresie) instruc iune; if (expresie) { instruc iuni; } if (expresie) instructiune; else if instructiune; else instructiune; if (expresie) { instruc iuni; } else if(expresie) { instruc iuni } else { instructiuni; }

a=a>3 //deplaseaz la dreapta cu 3pozi ii, mpr ire ntreag cu 23, nu se copiaz bitul de semn la dreapta lui a

c=a&b//pune n c bi ii combina i si ai lui a i b c=a b//pune n c bi ii combina i si ai lui a sau b c=a^b//pune n c bi ii combina i si ai lui a xor b c=~a; //dac a=0 atunci c=255

Operatorul condi ional: exp1 : exp2 ? exp2 Dac exp1 este adevrat instruc iunea are ca rezultat exp2 dac nu instruc iunea are ca rezultat exp2 c = a>b:a?b; //dac a>b, c = a; dac a> boolean equalsIgnoreCase(String s) la fel ca equals doar c ignor diferen a dintre majuscule si minuscule

Subiruri >> boolean startsWith(String s) returneaz true dac irul re inut de s precede irul re inut de obiectul curent >> boolean endsWith(String s) returneaz true dac irul re inut s se afl la sfritul irului re inut de obiectul curent String s = new String(``abcd``); String s1 = new String(``ab``); String s2 = new String(``cd``); System.out.println(s.startsWith(s1)); System.out.println(s.endsWith(s2)); //ambele instruc iuni de afiare vor afia true >> boolean regionMatches(int i1, String s, int i2, int l) compar dou subiruri de lungime l. Primul subir este al obiectului curent i incepe de pe pozi ia i1, al doilea subir este al irului s si incepe de pe pozi ia i2. n caz de egalitate metoda returneaz true, altfel returneaz false. String s1 = new String(``Ana are mere.``); String s2 = new String(``Mara are pere.``); boolean var = s1.regionMatches(2, s2, 3, 6); //valoarea re inut de variabila val va fi true

>> String substring (int index) metoda returneaz subirul irului curent ncepnd cu pozi ia dat de index i terminnd cu ultimul caracter din ir >> String substring (int poz1, int poz2) returneaz subirul irului curent incepnd cu pozi ia poz1 din ir i terminnd cu pozi ia poz2-1. s2 = s1.substring(3); s3 = s1.substring(2, 6);

>> String replace (char c1, char c2) returneaz irul ob inut dac se nlocuiesc in irul re inut de obiectul curent toate apari iile caracterului c1 cu caracterul c2 String s = new String(``mama``); s = s.replace(`m`, `t`); >> String replaceAll(String s1, String s2) metoda returneaz irul ob inut dac se nlocuiesc n irul re inut de obiectul curent toate apari iile subirului s1 cu subirul s2. String s = new String(``Ana are mere, merele sunt dulci.``); s = s.replaceAll(``mere``, ``pere``); irul s va con ine Ana are pere, perele sunt dulci. >> String replaceFirst(String s1, String s2) asemntor cu replaceAll ns nlocuiete doar prima apari ie a lui s1 cu s2 n irul re inut de obiectul curent. >> String trim() ntoarce subirul irului re inut de obiectul curent, subir ob inut prin eliminarea spa iilor de la nceput i de la sfrit. String s = new String(`` xx yy ``); String s1 = s.trim(); //s1 va re ine irul de caractere ``xx yy`` >> int indexOf(String s1) returneaz indicele primei apari ii a subirului s1 n irul re inut de obiectul curent. Dac subirul nu este gsit n irul referit atunci metoda returneaz valoarea -1. CONCATENAREA: irurile se cocateneaz cu operatorul +. String s1 = new String(``Ana are``); String s2 = new String(`` mere.``); String s3 = new String(); s3 = s1 + s2; >> String concat(String s) Concateneaz irul referit cu irul primit ca parametru. String s1 = new String(``Ana are``); String s2 = new String(`` mere.``); s1 = s1.concat(s2); Un alt exemplu este: System.out.println(``Ana are``.concat(`` mere.``));

NUMERIC CONVERSII STRING Conversia string Numeric Toate tipurile numerice (Byte, Integer, Double, Float, Long, Short) prezint cte o metod numit parse* care convertete un ir de caractere ntr-o valoare de acel tip. byte b = Byte.parseByte("123"); short s = Short.parseShort("123"); int i = Integer.parseInt("123"); long l = Long.parseLong("123"); float f = Float.parseFloat("123.4"); double d = Double.parseDouble("123.4e10"); Conversia string Numeric

int i = 13; String s1 = ``Ana avea `` + i + `` ani in acea poza.``; //conversia este fcut automat SAU int i = 123; String s = String.valueOf(i); Fiecare tip numeric are de asemenea o metod toString() String s1 = Integer.toString(1234); String s2 = Byte.toString(123); String s3 = Long.toString(1000000); String s4 = Float.toString(123.4); String s5 = Double.toString(123.4e10); CONVERSIA MAJUSCULE MINUSCULE String toLowerCase() returneaz irul din obiectul referit cu toate literele transformate n minuscule String toUpperCase() returneaz irul din obiectul referit cu toate literele transformate n majuscule METODA split String[] split(String expresie, int limit) caut expresia regulat dat ca parametru n ir i sparge irul n doi vectori de iruri de caractere. Parametrul limit este op ional i specific mrimea maxim a irului returnat. METODA CharSequence subSequence(int pozS, int pozF) returneaz o secven de caractere plasate ntre pozS i pozF-1.

RELUARE- FUNC II IMPORTANTE TRATARE A IRURILOR DE CARACTERE Returnarea de caractere/ subiruri dintr-un ir charAt(index) s.charAt(2) returneaz caracterul aflat pe pozi ia specificat de parametrul index n irul referit String substring (int poz1, int returneaz subirul dintre poz1 i poz2-1 poz2) din irul referit String substring(int poz) returneaz subirul dintre poz1 i sfritul irului referit Cutarea de caractere i subcaractere Returneaz prima(ultima) apari ie a caracterului n ir int indexOf(int ch, int Returneaz prima(ultima) apari ie a fromIndex) caracterului n ir cutnd n aval(amonte)int indexOf(int ch) int lastIndexOf(int ch)

Compara ii ntre iruri de caractere Se fac n ordinea lexicografic, `b`> `a` > `B`>`A`, ``abcd`` > ``abc`` ``abcd`` > ``abcD`` boolean endsWith(String returneaz true dac irul referit se suffix) termin/ncepe cu irul primit ca boolean startsWith(String parametru prefix) returneaz true dac irul referit con ine subsirul primit ca parametru ncepnd cu pozi ia specificat de offset int compareTo(String compar lexicografic dou iruri de anotherString) caractere. Returneaz 0 egalitate, >0 irul referit este mai mare,