Introducere in Java
Introducere in Java
? Primul program Structura lexical a Tipuri de date Variabile Controlul execut iei Vectori S iruri de caractere Argumente de la linia de comanda a
Ce este Java ? Limbaj de programare Platform a de lucru Sun Microsystems 1995 James Gosling Duke
Limbajul de programare Java Simplitate U surint a n crearea de aplicat ii complexe Robustet e - pointeri, administrarea automat a a memoriei, GC Complet orientat pe obiecte Securitate Neutralitate arhitectural a Portabililtate Compilat si interpretat Performant a Modelat dup aC si C++
Platforme de lucru Java J2SE (Standard Edition) Aplicat ii independente, appleturi, Java Web Start J2ME (Micro Edition) Programarea dispozitivelor mobile J2EE (Enterprise Edition) Aplicat ii complexe, pe mai multe nivele pentru sisteme eterogene, cu baze de date distribuite, etc. Aplicat ii si servicii Web: servleturi, pagini JSP, etc. Distribut iile Java sunt oferite gratuit http://java.sun.com J2SE 1.5 SDK (Tiger)
Compilat si interpretat Limbajele de programare: Interpretate + : simplitate, portabilitate - : viteza de execut ie redus a Compilate + : execut ia extrem de rapid a - : lipsa portabilit a tii Java: compilat + interpretat Compilator: surse - cod de octet i Interpretor: execut a codul de octet i Cod octet i = Cod ma sin a Cod ma sin a - procesor Cod octet i - JVM JVM = Java Virtual Machine
5
3. Compilarea aplicat iei javac FirstApp.java va rezulta: FirstApp.class 4. Rularea aplicat iei java FirstApp
6
Structura lexical a Setul de caractere: Unicode nlocuie ste ASCII Un caracter se reprezint a pe 2 octet i Cont ine 65536 de semne Compatibil ASCII : primele 256 caractere sunt cele din ASCII Este structurat n blocuri: Basic Latin, Greek, Arabic, Gothic, Currency, Mathematical, Arrows, Musical, etc. \uxxxx \u03B1 - \u03C9: http://www.unicode.org
7
Cuvinte cheie Cuvintele rezervate sunt, cu c ateva except ii, cele din C++.
abstract boolean break byte case catch char class const* continue default do double else extends final finally float for goto* if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while
Literali Intregi (10, 16 -0x, 8-0) Flotant i: 1.0, 2e2, 3f, 4D Logici: true, false Caracter: J, a, v, a, \n S iruri de caractere: Duke
Separatori () [];,.
Operatori atribuirea: = matematici: +, -, *, /, %, ++, -lval op= rval: x += 2 n -= 3 x++, ++x, n--, --n logici: &&(and), ||(or), !(not) relat ionali: <, <=, >, <=, ==, != pe bit i: &(and), |(or), ^ (xor), ~ (not) de translat ie: <<, >>, >>> (shift la dreapta f ar a semn) if-else: expresie-logica ? : val-false
10
val-true
operatorul , (virgul a) folosit pentru evaluarea secvent ial a a operat iilor: int x=0, y=1, z=2; operatorul + pentru concatenarea sirurilor
String s1="Ana"; String s2="mere"; int x=10; System.out.println(s1 + " are " + x + " " + s2);
11
Comentarii Exist a trei feluri de comentarii: Comentarii pe mai multe linii, nchise ntre /* si */. Comentarii pe mai multe linii care tin de documentat ie, nchise ntre /** si */. Textul dintre cele dou a secvent e este automat mutat n documentat ia aplicat iei de c atre generatorul automat de documentat ie javadoc. Comentarii pe o singur a linie, care incep cu //.
12
Tipuri de date Tipuri primitive - Tipuri referint a. Tipurile primitive sunt: aritmetice ntregi: byte (1 octet), short (2), int (4), long (8) reale: float (4), double (8) caracter: char (2) logic: boolean (true si false) Vectorii, clasele si interfet ele sunt tipuri referint a. Nu exist a: pointer, struct si union.
13
Variabile Declararea variabilelor: Tip numeVariabila; Init ializarea variabilelor: Tip numeVariabila = valoare; Declararea constantelor: final Tip numeVariabila;
final double PI = 3.14; int valoare = 100; long numarElemente = 12345678L; String bauturaMeaPreferata = "apa";
a. Variabile membre b. Parametri metodelor c. Variabile locale, declarate ntr-o metod a d. Variabile locale, declarate ntr-un bloc e. Parametrii de la tratarea except iilor
14
class Exemplu { int a; public void metoda(int b) { a = b; int c = 10; for(int d=0; d < 10; d++) { c --; } try { a = b/c; } catch(ArithmeticException e) { System.err.println(e.getMessage()); } } }
15
Controlul execut iei Instruct iuni de decizie: if-else, switch-case Instruct iuni de salt: for, while, do-while Instruct iuni pentru tratarea except iilor: try-catch-finally, throw Alte instruct iuni: break, continue, return, label:
16
switch-case
switch (variabila) { case valoare1: ... break; case valoare2: ... break; default: ... }
17
while
while (expresie-logica) { ... }
do-while
do { ... } while (expresie-logica);
18
Alte instruct iuni break continue return [valoare] numeEticheta: Nu exist a goto Pot denite etichete folosite astfel: break numeEticheata continue numeEticheta
19
20
Vectori Declararea Tip[] numeVector; sau Tip numeVector[]; Instant ierea numeVector = new Tip[nrElemente]; Init ializarea (opt ional)
String culori[] = {"Rosu", "Galben"}; v = new int[10]; //aloca spatiu pentru 10 intregi: 40 octeti c = new char[10]; //aloca spatiu pentru 10 caractere: 20 octeti
21
22
Copierea vectorilor
int a[] = {1, 2, 3, 4}; int b[] = new int[4]; // Varianta 1 for(int i=0; i<a.length; i++) b[i] = a[i]; // Varianta 2 System.arraycopy(a, 0, b, 0, a.length); // Nu are efectul dorit b = a;
23
Sortarea vectorilor - clasa Arrays Metode din java.util.Arrays: sort - (QuickSort -O(n log (n)))
int v[]={3, 1, 4, 2}; java.util.Arrays.sort(v); // Sorteaza vectorul v // Acesta va deveni {1, 2, 3, 4}
binarySearch equals ll Vectori cu dimensiune variabil a si eterogeni: Vector, ArrayList, etc. din pachetul java.util.
24
Concatenarea: +
String s1 = "ab" + "cd"; String s2 = s1 + 123 + "xyz"
25
Primirea argumentelor
public static void main (String args[]) /* args[0] va fi primul argument trimis: "Java" args[1] va fi urmatorul argument: "Hello Duke" ... */
26
Exemplu
public class Salut { public static void main (String args[]) { if (args.length == 0) { System.out.println( "Numar insuficient de argumente!"); System.exit(-1); //termina aplicatia } String nume = args[0]; //exista sigur String prenume; if (args.length >= 1) prenume = args[1]; else prenume = ""; //valoare implicita System.out.println("Salut " + nume + " " + prenume); } }
27
A sarea argumentelor
public class Afisare { public static void main (String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); } }
28
Argumente numerice Argumentele de la linia de comand a sunt siruri de caractere Transformarea sir - num ar se face cu metode de tipul: Integer.parseInt Double.parseDouble Float.parseFloat ...
public class Power { public static void main(String args[]) { double numar = Double.parseDouble(args[0]); int putere = Integer.parseInt(args[1]); System.out.println("Rezultat=" + Math.pow(numar, putere)); } }
29
Adrese utile www.java.com Toat a lumea www.java.net Comunitate java.sun.com Dezvoltatori jguru.com Cursuri jars.com Resurse javaworld.com, javareport.com Articole javaalmanac.com Exemple de cod google:java
30