Laborator 1
Laborator 1
Laborator 1
POO – Java
Obiective:
- cunoașterea caracteristicilor limbajului orientat-obiect Java;
- cunoașterea structurii unui program în Java;
- prezentarea tipurilor de date în Java;
- prezentarea operatorilor utilizați în Java;
- cunoașterea modului de definire și declararea a variabilelor în Java;
- prezentarea structurilor de control.
La sfârșitul acestui laborator, studenții vor fi capabili să:
- definească limbajul Java, precizând elementele caracteristice acestui limbaj de
programare;
- identifice secțiunile principale ale unui program Java;
- scrie un program simplu în Java și să-l execute;
- utilizeze tipuri de date primitive în Java;
- utilizeze operatori într-un program Java;
- testeze structurile de control în cadrul unor probleme propuse.
program în Java are un punct de plecare iar acesta este clasa rădăcină caracterizată de faptul că
include o funcție cu prototipul:
public static void main (String [] args)
De asemenea, un program Java este constituit dintr-o colecție de clase, aflate într-o
anumită relație. În cazul prezentat există o singură clasă, identificată prin cuvântul cheie class.
Dacă ne referim în general la modalitatea de descriere a unei clase, atunci trebuie să
avem în vedere următoarea structură:
class NumeClasa {
// conținutul clasei
}
Funcția principală (main) conține un apel de funcție (println) cu rol de afișare pe a unui
mesaj dat ca argument. Prefixul System.out care însoţeşte numele funcției de afișare reprezintă
numele unui obiect predefinit care se utilizează în situația în care destinaţia unei operaţii de
scriere este ecranul monitorului.
Parametrul funcţiei main() este de tip tablou de elemente String (şiruri de caractere), prin
intermediul căruia putem referi şi utiliza în program posibile argumente specificate la momentul
lansării în execuție a programului.
De reținut modalitatea de apel a funcției de afișare:
System.out.println("La inceput de Java!");
Operatori în Java
Similar celorlalte limbaje de programare și Java utilizează operatori aritmetici în
formarea unor expresii care combină constante și variabile. O descriere a operatorilor întâlniți
în programarea sub Java este dată în tabelul 1.
Tabel 1. Operatori în Java
Operatori
Operatori aritmetici +, -, *, /, % (modulo)
Operatori de incrementare/decrementare ++, --
Operatori logici && (și), || (sau) și operatorul ! (negație)
Operatori pe biți & (și), | (sau), ^ (sau exclusiv) care sunt binari
și ~ (negație) care este unar.
Alți operatori pe biți sunt și >> (deplasare
dreapta), << (deplasare stânga), >>> (deplasare
dreapta fără extensie de semn). Au operanzi
întregi.
Operatori relaționali >, >=, <, <=, == (egalitate), != (diferit)
Operatori de atribuire combinați +=, -=, *=, /=, &=, |=, ^=, %=, <<=, >>=, >>>=
Înainte de utilizarea unei variabile aceasta trebuie declarată, acțiune care informează
compilatorul asupra tipului de dată care va fi stocat în variabilă. Modificatorii de acces pentru
variabile sunt: private, protected, public și modificatorul de acces implicit. Modificatorul
private indică faptul că variabila este vizibilă local în cadrul clasei. Modificatorul protected
indică faptul că acea variabilă poate fi văzută din toate clasele, subclasele şi celelalte clase din
Laborator Nr.1. POO – Java
acelaşi pachet (package). În schimb, modificatorul de acces public indică accesul de oriunde
asupra variabilei respective, altfel spus variabila este vizibilă tuturor. Modificatorul de acces
implicit, nu are cuvânt cheie și este:
- public pentru ceilalți membrii din același pachet;
- private pentru oricine din afara pachetului.
Această modalitate de acces este numită şi acces în pachet.
Tipuri de variabile
În Java sunt prevăzute trei categorii de variabile și anume:
- variabile locale;
- variabile de instanță;
- variabile de clasă/statice.
Variabilele locale sunt declarate în interiorul unei metode, constructor sau bloc și nu sunt
vizibile în afara metodei. Variabilele instanță sunt declarate într-o clasă, dar în afara unei
metode. Ele mai sunt numite şi variabile membru sau variabile câmp. Când un obiect este
alocat în zona heap, se creează câte o înregistrare pentru fiecare valoare a variabilelor
instanţă, fapt ce implică distrugerea variabilei instanță odată cu obiectul căruia îi aparţine.
Variabila instanţă este vizibilă în toate metodele şi în toţi constructorii care aparţin clasei
care o definesc. În general trebuie declarată private. Variabile de clasă/statice sunt declarate
precizând cuvântul cheie static în interiorul unei clase, dar în afara unei metode. Există o
singură copie pentru clasă, indiferent câte obiecte au fost create din ea. Ele sunt memorate
în zona de memorie statică. În mod uzual, variabilele statice se introduc în declarații final
şi se utilizează pe post de constante publice sau private.
if (expresie1){
bloc1_instructiuni;
}
else if(expresie2)
{
bloc2_instructiuni;
}
else if(expresie3)
{
bloc3_instructiuni;
}
…
else
{
blocN+1_instructiuni;
}
Instrucțiunea SWITCH
switch (expresie) {
case c1:
instrucţiuni // execută aceste instrucţiuni dacă
expresia are valoarea etichetei c1
break;
case c2:
instrucţiuni // execută aceste instrucţiuni dacă
expresia are valoarea etichetei c2
break;
case c3:
instrucţiuni // execută aceste instrucţiuni dacă
expresia are valoarea etichetei c3
case c4:
instrucţiuni // execută aceste instrucţiuni dacă
expresiea are valoarea etichetei c4
break;
. . .
default:
instrucţiuni // execută aceste instrucţiuni dacă
expresie diferă de oricare dintre cele de mai sus
}
Instrucțiunea WHILE
while (expresie){
Laborator Nr.1. POO – Java
bloc_instructiuni;
}
// se execută blocul de instrucțiuni cât timp expresia
este evaluată ca fiind adevărată
// dacă expresia este evaluată ca fiind falsă, corpul
ciclului nu se execută și se continuă cu instrucțiunea
ce urmează structurii while, în programul Java
Instrucțiunea DO
do {
bloc_instructiuni;
}
while (expresie);
// se execută blocul de instrucțiuni și apoi se evaluează
expresia. Se reia execuția instrucțiunilor din corpul
ciclului când timp expresia este adevărată.
Instrucțiunea FOR
for (initializare;conditie;actualizare)
{
bloc_instructiuni;
}
// se execută blocul de instrucțiuni de un număr cunoscut
de pași (instrucțiunea se mai numește și instrucțiune cu
contor). Variabila contor se inițializează, se verifică
apoi condiția și se incrementează la fiecare ciclu.
finally {
prelucrarea tuturor celorlalte tipuri de excepții
}
Exemplu:
try
{
// se încearcă o conversie a unui șir la tipul int
number = Integer.parseInt(sir);
}
catch (Exception E)
{
System.out.println("S-a produs evenimentul: "
+ E.getMessage());
}
1.6. Probleme
Afișarea unor mesaje, utilizând funcțiile: print(), println(), printf().
Exemplu:
public class NumeClasa {
public static void main(String[] args) {
System.out.print("Primul ");
System.out.print("meu ");
System.out.print("program in ");
System.out.println("Java");
}
}
Afișarea unor valori numerice utilizând printf(). Forma generală este prezentată în
continuare:
System.out.printf(format, arguments);
System.out.printf(locale, format, arguments);
Regulile de formatare sunt precizate de parametrul format și conțin simbolul %.
Specificatorii de format includ:
%[flags][width][.precision]conversion-character
Caracterele de conversie sunt specific fiecărui tip de dată, cele uzuale fiind:
• s pentru șiruri de caractere;
• d pentru numere întregi;
• f pentru numere reale;
• t pentru numere de tip dată/timp.
[width]indică minimul de caractere pe care se afișează ieșirea, iar
[.precision]reprezintă precizia de afișare (câte caractere sunt după punctul zecimal, iar în
cazul șirurilor se poate utiliza pentru a extrage un subșir).
Laborator Nr.1. POO – Java
Exemplu: