Introducere in Java
Introducere in Java
private, protected;
PRINCIPIILE POO
încapsularea – modelarea obiectelor din lumea reală;
Editoare Java:
JCreator – simplu şi bun pentru învăţat.
jEdit – editor avansat Java.
Editoare utile pentru învăţarea limbajului şi pentru testarea unor secvenţe de cod:
jGrasp – editor scris în Java, permite crearea de diagrame UML, utile în proiectarea claselor
Java.
BlueJ – editor conceput special pentru a învăţa Java.
Dr Java – editor scris în Java, simplu şi uşor de folosit. Nu necesită instalare fiind o arhivă
Java (jar).
6
MEDIUL DE DEZVOLTARE ECLIPSE
Poate fi descărcat de la adresa:
https://www.eclipse.org/downloads/packages/
8
CARACTERISTICI JAVA
portabilitate mare;
puternică şi complexă;
9
DIFERENŢE FAŢĂ DE LIMBAJUL C++ (1)
permit un control mai bun asupra erorilor apărute în timpul rulării programului;
10
DIFERENŢE FAŢĂ DE LIMBAJUL C++ (2)
determină automat când un obiect nu mai este folosit (nu mai există
referinţe către el);
11
NOŢIUNI
clasa – nou tip de date, creat de programator;
caracteristicile clasei sunt descrise prin folosirea
celorlalte tipuri de date;
permite folosirea şi de metode, pe lângă date;
membrii pot avea mai multe atribute de
accesibilitate;
Tipuri primitive:
Tip Dimensiune Domeniu valori Descriere
byte 8 biti -128 .. 127 nr. intregi
short 16 biti -32.768 .. 32.767 nr. intregi
int 32 biti -2.147.483.648 .. nr. intregi
2.147.483.647
long 64 biti -9 * 10e18 .. 9 * 10e18 nr. intregi
float 32 biti -3.402823*10e38 .. nr. reale
3.402823*10e38
double 64 biti -1.79769313486232*10e308 nr. reale
.. 1.79769313486232*10e308
boolean 8 biti [ false, true ] valori logice
char 16 biti caractere UNICODE caractere
Tipuri referinţă:
• tipul tablou,
• tipul clasa si 13
• tipul interfata.
OPERATORI ŞI EXPRESII (1)
operatori numerici:
operatori logici:
operatorul condiţional :
14
OPERATORI ŞI EXPRESII (2)
Lista de precedenţă a operatorilor este:
. () []
++ -- ! ~ instanceof
new
*/ %
+-
<< >> <<< >>>
< > <= >=
== !=
&
~
|
&&
||
?:
= += -= *= /=
%= &= ||= <<= >>=
15
OPERATORI ŞI EXPRESII (3)
Simbol Operator Observatii
Atribuirea este operator in Java si nu instrucțiune; sunt permise atribuiri multiple
= atribuire
de genul a=b=c=5.
+ adunare Adunare de numere întregi sau reale; concatenare de șiruri de caractere
- scadere Scadere de numere intregi sau reale.
* inmultire Înmultire de numere intregi sau reale.
/ impartire Împartire de numere intregi sau reale. Pentru intregi returneaza catul impartirii.
% modulo Restul împărțirii
++ incrementare Poate fi aplicat pre sau post
-- decrementare Poate fi aplicat pre sau post
== egalitate Test egalitate, întoarce true sau false
!= inegalitate Test diferență, întoarce true sau false
> mai mare Test mai mare, întoarce true sau false
< mai mic Test mai mic, întoarce true sau false
>= mai mare sau egal Test mai mare sau egal, întoarce true sau false
<= mai mic sau egal Test mai mic sau egal, întoarce true sau false
&& AND SI logic
|| OR SAU logic
^ XOR SAU exclusiv logic
! NOT Negare logica
& bit AND SI pe biți
| bit OR SAU pe biți
^ bit XOR SAU exclusiv pe biți
<< left shift Deplasare stânga
>> right shift Deplasare dreapta
>>> right shift with 0 fill Deplasare dreapta cu inserție de 0
op= combinat x op= exp este echivalent cu x = x op exp
16
OPERATORI ŞI EXPRESII – EXEMPLE (1)
Operatorul de atribuire ( = )
Exemplu:
int a,b,c,d,e;
a=10; //a va primi valoarea 10
b=a; //b va primi valoarea varibilei a, adică 10
c=d=12; //acelaşi lucru cu d=12; c=d;
e=f( ); //e primeşte valoarea returnată de funcţia f, şi va da eroare dacă f
nu returnează valoare int
Operatori aritmetici
Exemplu:
int a,b,x;
byte c=3,d=4,e;
a=10;
b=a+30; //b va primi valoarea varibilei a+30, adică 40
a++; //a devine 11
e=c-1; //e va primi valoarea 3-1, adică 2 17
x=a*b; //x va primi valoarea 10*40
OPERATORI ŞI EXPRESII – EXEMPLE (2)
Operatori relaţionali
Exemplu:
int a=2,b=4;
if (a==b) System.out.println("a este egal cu b"); //nu se va afişa
nimic deoarece a este diferit de b
if (a<=b) System.out.println("a este mai mic sau egal cu b"); //se va
afişa textul deoarece a este mai mic ca b
Operatori logici
Exemplu:
int a=2,b=4;
if (a==b) && (a>4) System.out.println(“Text1!"); //nu se va afişa
nimic deoarece a este diferit de b şi a este mai mic ca 4
if (a==2) || (b==5) System.out.println (“Text2”); //se va afişa Test2
18
INSTRUCŢIUNI
Instrucţiunile asigură posibilitatea de luare a deciziilor, selecţiei din
mai multe variante în anumite condiţii, facilitează repetarea unor acţiuni, etc.
Instrucţiunile în Java se încheie cu punct şi virgulă (;). O instrucţiune poate fi o
expresie, un apel de metodă sau o declaraţie. Un bloc este un grup de instrucţiuni
care formează o instrucţiune compusă.
19
INSTRUCŢIUNI CONDIŢIONALE (1)
Instrucţiunea IF conţine o expresie a cărei valoare este obligatoriu
de tip boolean. Evaluarea acestei expresii poate conduce doar la două valori:
adevărat sau fals.
if (expresie) Instrucţiune;
sau
if (expresie)
Instrucţiune1;
else
Instrucţiune2;
20
INSTRUCŢIUNI CONDIŢIONALE (2)
Instrucţiunea SWITCH realizează o ramificaţie multiplă, spre
deosebire de cazul instrucţiunii if în care apar doar două ramuri.
Instrucţiunea switch permite saltul la o anumită instrucţiune în
funcţie de valoarea unei expresii. În plus, se poate specifica un caz pentru care să
se facă saltul implicit, dacă expresia nu ia nici una dintre valorile particulare
specificate. Sintaxa instrucţiunii switch este:
switch (expresie)
case valoare1: bloc_instrucţiuni1;
break;
case valoare2: bloc_instructiuni2;
break;
…..
default: bloc_instrucţiuniN;
break;
21
INSTRUCŢIUNI DE CICLARE(1)
Instrucţiunile de ciclare (sau expresiile de ciclare, buclele) execută ciclic
o secţiune de cod (instrucţiune sau bloc de instrucţiuni) până când este îndeplinită o
anumită condiţie. Verificarea condiţiei se poate face înainte de intrarea în buclă
(while, for) sau după executarea instrucţiunilor buclei (do-while).
sau
do
bloc_instrucţiuni;
23
} while (expresie);
INSTRUCŢIUNEA BREAK
Instrucţiunea break produce întreruperea unei bucle (for, do, while) sau
a unui bloc switch. Controlul este dat instrucţiunii care urmează imediat după bucla
întreruptă sau după blocul instrucţiunii switch.
Exemplu:
Rezultat
24
INSTRUCŢIUNEA CONTINUE
Instrucţiunea continue se poate folosi pentru a "scurtcircuita" o buclă
(for, do sau while). Dacă într-o buclă este întâlnită instrucţiunea continue,
execuţia se reia de la prima instrucţiune a buclei, sărind peste instrucţiunile care
sunt cuprinse între continue şi sfârșitul buclei.
Exemplu:
Rezultat
25
CONSTRUCTORII UNEI CLASE
În JAVA există două componente implicate în alocarea şi iniţializarea memoriei:
1. operatorul new
2. constructorul clasei
Într-o clasă putem avea mai mulţi constructori, cu condiţia ca aceştia să difere prin numărul şi/sau tipul
parametrilor. Aceşti constructori se pot apela între ei folosind cuvântul cheie this.
26
EXCEPŢIILE ÎN JAVA
Excepţia constituie un eveniment special care apare în execuţia unui program şi care întrerupe evoluţia
normală a acelui program
În primul rând, obiectul de tip excepţie este creat cu ajutorul operatorului new. La apariţia excepţiei, fluxul
curent de execuţie este întrerupt. Pentru ca un obiect să poată fi aruncat ca excepţie, el trebuie să fie o
instanţa a clasei Throwable sau a unei clase derivate din aceasta
Pentru tratarea excepţiilor în Java este nevoie de definirea unor blocuri try-catch-finally: în blocul try se pot
genera excepţii, în blocul catch se poate realiza tratarea excepţiei sau rearuncarea acesteia iar blocul finally
se execută indiferent dacă în try apare sau nu o excepţie
27
EXCEPŢIILE ÎN JAVA
28
EXCEPŢIILE ÎN JAVA
O metodã care apeleazã o metodã ce aruncã exceptii verificate
trebuie fie sã semnaleze mai departe posibilitatea aparitiei acestei
exceptii (prin clauza throws), fie sã trateze exceptia printr-un bloc
try-catch care sã includã apelul metodei.
class Exemplu {
public static void main(String args[]) {
int num1, num2;
try {
num1 = 0;
num2 = 20 / num1;
} catch (ArithmeticException e) {
System.out.println("Eroare! Impartire la 0!");
}
}
}
29
PACHETE STANDARD
Câteva dintre pachetele standard Java:
java.lang: conţine clasele fundamentale Java – IMPORTAT IMPLICIT ÎN ORICE
PROGRAM !
java.util : este un pachet complex Java care oferă suport pentru lucrul cu liste, vectori, dicţionare,
etc.
java.applet: conţine clase necesare unui program Java (applet) ce se execută în cadrul unui
browser web
30
STRUCTURA PROGRAMELOR JAVA
O aplicatie Java contine cel putin o clasã, care contine cel
putin o metodã cu numele "main" de tip void și cu atributele
static și public
32
STRUCTURA PROGRAMELOR JAVA
Exemplul urmãtor este un fisier sursã cu o singurã
clasã, care contine douã metode, ambele publice si
statice:
class Main {
public static void main (String arg[ ])
{ // cu "main" incepe executia
scriere („Programare JAVA !");
}
public static void scriere (String txt) { // afiseaza un text pe ecran
System.out.println (txt);
}
} 33
CITIREA DATELOR DE LA TASTATURA SI
AFISAREA DATELOR PE ECRAN
34
CITIREA DATELOR DE LA TASTATURA SI
AFISAREA DATELOR PE ECRAN
System.out.print (<expresie>);
<nume_obiect>.readLine();
Exemplu:
public class Main {
public static void main (String arg[ ])
{
ScrieText.scriere („Programare Java !");
}
}
public class ScrieText {
public static void scriere (String txt)
{
System.out.println (txt); 38
}
}
TIPURI CLASÃ
39
TIPURI CLASÃ
la compilare.
DEFINIREA SI UTILIZAREA DE VECTORI ÎN JAVA
42
DEFINIREA SI UTILIZAREA DE VECTORI ÎN JAVA
Exemplu:
// functie de copiere a unui vector
public static void CopiereVector ( int a [ ] ,int b[ ] )
{
for (int i=0;i < a.length; i++) // a.length =dimensiune vector a
b[i] = a[i];
} 44
DEFINIREA SI UTILIZAREA DE VECTORI ÎN JAVA
O matrice este privitã si în Java ca un vector de vectori, iar
variabila "length" se poate folosi pentru fiecare linie din
matrice.
class Matrice {
public static void afisareMatrice (int a[ ][ ])
{ // functie de afisare matrice
for (int i=0;i<a.length;i++) {
for (j=0; j<a[i].length; j++)
System.out.print (a[i][j]+ " ");
System.out.println ();
}
}
public static void main (String [ ] arg)
{ // utilizare functie
int mat[ ][ ]= { {1,2,3}, {4,5,6} };
afisareMatrice (mat); 45
}
}
CREAREA UNUI NOU PROIECT JAVA
În mediul de programare Eclipse se
urmăresc paşii:
click Finish
În aceiaşi fereastră vom alege proprietăţile clasei Fig. 1 Crearea unei clase
(Fig.1)
46
click Finish
EXEMPLU DE PROGRAM JAVA
import java.io.*;
public class PrimulProgram // declaratia clasei
{
public static void main (String[] args) // declaratia unei metode
{
System.out.println ("Primul program in Java!"); // corpul metodei
} // incheierea corpului metodei
} // incheierea corpului clasei
47