Sunteți pe pagina 1din 120

Introducere Java❮ AnteriorUrmătorul ❯

Ce este Java?
Java este un limbaj de programare popular, creat în 1995.
Este deținut de Oracle și peste 3 miliarde de dispozitive rulează
Java.
Este folosit pentru:
 Aplicații mobile (în special aplicații Android)
 Aplicații desktop
 aplicații web
 Servere web și servere de aplicații
 Jocuri
 Conexiune la baza de date
 Și mult, mult mai mult!

De ce să folosiți Java?
 Java funcționează pe diferite platforme (Windows, Mac, Linux,
Raspberry Pi etc.)
 Este unul dintre cele mai populare limbaje de programare din lume
 Este ușor de învățat și simplu de utilizat
 Este open-source și gratuit
 Este sigur, rapid și puternic
 Are un suport uriaș al comunității (zeci de milioane de dezvoltatori)
 Java este un limbaj orientat pe obiecte care oferă o structură clară
programelor și permite reutilizarea codului, reducând costurile de
dezvoltare
 Deoarece Java este aproape de C++ și C# , le este ușor pentru
programatori să treacă la Java sau invers.

Noțiuni introductive despre Java❮ AnteriorUrmătorul ❯


Instalare Java
Unele computere ar putea avea deja instalat Java.
Pentru a verifica dacă aveți Java instalat pe un computer cu Windows,
căutați Java în bara de pornire sau introduceți următoarele în Linia de
comandă (cmd.exe):
C:\Users\Your Name>java -version
Dacă este instalat Java, veți vedea ceva de genul acesta (în funcție de
versiune):
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS,
mixed mode)
Dacă nu aveți Java instalat pe computer, îl puteți descărca gratuit de
la oracle.com .
Notă: În acest tutorial, vom scrie cod Java într-un editor de text. Cu toate
acestea, este posibil să scrieți Java într-un mediu de dezvoltare integrat,
cum ar fi IntelliJ IDEA, Netbeans sau Eclipse, care sunt deosebit de utile
atunci când gestionați colecții mai mari de fișiere Java.
Configurare pentru Windows
Pentru a instala Java pe Windows:
1. Accesați „Proprietăți sistem” (Poate fi găsit în Panoul de control >
Sistem și securitate > Sistem > Setări avansate de sistem)
2. Faceți clic pe butonul „Variabile de mediu” din fila „Avansat”.
3. Apoi, selectați variabila „Cale” din Variabile de sistem și faceți clic pe
butonul „Editare”.
4. Faceți clic pe butonul „Nou” și adăugați calea unde este instalat Java,
urmată de \bin . În mod implicit, Java este instalat în C:\Program
Files\Java\jdk-11.0.1 (dacă nu a fost specificat nimic altceva când l-ați
instalat). În acest caz, va trebui să adăugați o nouă cale cu: C:\
Program Files\Java\jdk-11.0.1\bin
Apoi, faceți clic pe „OK” și salvați setările
5. În cele din urmă, deschideți Linia de comandă (cmd.exe) și
tastați java -version pentru a vedea dacă Java rulează pe mașina
dvs.
6. Java Quickstart
7. În Java, fiecare aplicație începe cu un nume de clasă, iar acea clasă
trebuie să se potrivească cu numele fișierului.
8. Să creăm primul nostru fișier Java, numit Main.java, care poate fi făcut
în orice editor de text (cum ar fi Notepad).
9. Fișierul ar trebui să conțină un mesaj „Hello World”, care este scris cu
următorul cod:
10. Main.java
11. public class Main {
12. public static void main(String[] args) {
13. System.out.println("Hello World");
14. }
15. }
16. Incearca-l tu insuti "
17. Nu vă faceți griji dacă nu înțelegeți codul de mai sus - îl vom
discuta în detaliu în capitolele ulterioare. Pentru moment, concentrați-
vă pe cum să rulați codul de mai sus.
18. Salvați codul în Notepad ca „Main.java”. Deschideți linia de
comandă (cmd.exe), navigați la directorul în care ați salvat fișierul și
tastați „javac Main.java”:
19. C:\Users\Your Name>javac Main.java
20. Aceasta vă va compila codul. Dacă nu există erori în cod,
promptul de comandă vă va duce la următoarea linie. Acum, tastați
„java Main” pentru a rula fișierul:
21. C:\Users\Your Name>java Main

Java Syntax
In the previous chapter, we created a Java file called Main.java, and we
used the following code to print "Hello World" to the screen:
Main.java
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Try it Yourself »
Example explained
Every line of code that runs in Java must be inside a class. In our example,
we named the class Main. A class should always start with an uppercase
first letter.
Note: Java is case-sensitive: "MyClass" and "myclass" has different
meaning.
The name of the java file must match the class name. When saving the file,
save it using the class name and add ".java" to the end of the filename. To
run the example above on your computer, make sure that Java is properly
installed: Go to the Get Started Chapter for how to install Java. The output
should be:
Hello World
The main Method
The main() method is required and you will see it in every Java program:
public static void main(String[] args)
Any code inside the main() method will be executed. You don't have to
understand the keywords before and after main. You will get to know them
bit by bit while reading this tutorial.
For now, just remember that every Java program has a class name which
must match the filename, and that every program must contain
the main() method.
System.out.println()
Inside the main() method, we can use the println() method to print a line of text to the screen:
public static void main(String[] args) {
System.out.println("Hello World");
}
Try it Yourself »
Note: The curly braces {} marks the beginning and the end of a block of code.
Note: Each code statement must end with a semicolon.
În cadrul metodei main(), putem folosi metoda println() pentru a imprima o linie de
text pe ecran:
public static void main(String[] args) {
System.out.println(„Bună ziua, lume”);
}
Incearca-l tu insuti "
Notă: acoladele {} marchează începutul și sfârșitul unui bloc de cod.
Notă: Fiecare instrucțiune de cod trebuie să se încheie cu punct și virgulă.
With Exercises
Exercise:
Insert the missing part of the code below to output "Hello World".
public class MyClass {
public static void main(String[] args) {

. . ("Hello World");
}
}

Comentarii Java
Comentariile pot fi folosite pentru a explica codul Java și pentru a-l face mai lizibil. Poate fi
folosit și pentru a preveni execuția atunci când se testează cod alternativ.
Comentarii pe o singură linie
Comentariile pe o singură linie încep cu două bare oblice ( //).
Orice text între //și sfârșitul liniei este ignorat de Java (nu va fi executat).
Acest exemplu folosește un comentariu pe o singură linie înaintea unei linii de cod:
Exemplu
// This is a comment
System.out.println("Hello World");
Incearca-l tu insuti "
Acest exemplu folosește un comentariu pe o singură linie la sfârșitul unei linii de cod:
Exemplu
System.out.println("Hello World"); // This is a comment
Incearca-l tu insuti "

Variabile Java
Variabilele sunt containere pentru stocarea valorilor datelor.
În Java, există diferite tipuri de variabile, de exemplu:
 String- stochează text, cum ar fi „Bună ziua”. Valorile șirurilor sunt
înconjurate de ghilimele duble
 int- stochează numere întregi (numere întregi), fără zecimale, cum ar
fi 123 sau -123
 float- stochează numere în virgulă mobilă, cu zecimale, cum ar fi
19,99 sau -19,99
 char- stochează caractere individuale, cum ar fi „a” sau „B”. Valorile
Char sunt înconjurate de ghilimele simple
 boolean- stochează valori cu două stări: adevărat sau fals
Declararea (crearea) variabilelor
Pentru a crea o variabilă, trebuie să specificați tipul și să îi atribuiți o
valoare:
Sintaxă
type variableName = value;
Unde tip este unul dintre tipurile Java (cum ar fi intsau String),
iar variableName este numele variabilei (cum ar
fi x sau nume ). Semnul egal este folosit pentru a atribui valori variabilei.
Pentru a crea o variabilă care ar trebui să stocheze text, uitați-vă la
următorul exemplu:
Exemplu
Creați o variabilă numită nume de tip Stringși atribuiți-i valoarea " John ":
String name = "John";
System.out.println(name);

Pentru a crea o variabilă care ar trebui să stocheze un număr, uitați-vă la


următorul exemplu:
Exemplu
Creați o variabilă numită myNum de tip intși atribuiți-i valoarea 15 :
int myNum = 15;
System.out.println(myNum);

De asemenea, puteți declara o variabilă fără a atribui valoarea și alocați


valoarea mai târziu:
Exemplu
int myNum;
myNum = 15;
System.out.println(myNum);

Rețineți că, dacă atribuiți o nouă valoare unei variabile existente, aceasta va
suprascrie valoarea anterioară:
Exemplu
Modificați valoarea de myNumla 15la 20:
int myNum = 15;
myNum = 20; // myNum is now 20
System.out.println(myNum);
Variabile finale
Cu toate acestea, puteți adăuga finalcuvântul cheie dacă nu doriți ca alții
(sau dvs.) să suprascrie valorile existente (acest lucru va declara variabila ca
„finală” sau „constant”, ceea ce înseamnă neschimbabil și numai pentru
citire):
Exemplu
final int myNum = 15;
myNum = 20; // will generate an error: cannot assign a value to a
final variable

Alte Tipuri
O demonstrație a modului de declarare a variabilelor de alte tipuri:
Exemplu
int myNum = 5;
float myFloatNum = 5.99f;
char myLetter = 'D';
boolean myBool = true;
String myText = "Hello";
Veți afla mai multe despre tipurile de date în capitolul următor.

Afișează variabile
Metoda println()este adesea folosită pentru afișarea variabilelor.
Pentru a combina atât text, cât și o variabilă, utilizați +caracterul:
Exemplu
String name = "John";
System.out.println("Hello " + name);

De asemenea, puteți utiliza +caracterul pentru a adăuga o variabilă la o altă


variabilă:
Exemplu
String firstName = "John ";
String lastName = "Doe";
String fullName = firstName + lastName;
System.out.println(fullName);

Pentru valori numerice, +caracterul funcționează ca un operator matematic


(observați că folosim intvariabile (întregi) aici):
Exemplu
int x = 5;
int y = 6;
System.out.println(x + y); // Print the value of x + y
Din exemplul de mai sus, vă puteți aștepta la:
 x stochează valoarea 5
 y stochează valoarea 6
 Apoi folosim println()metoda pentru a afișa valoarea x + y, care
este 11

Declarați multe variabile


Pentru a declara mai multe variabile de același tip , utilizați o listă separată
prin virgulă:
Exemplu
int x = 5, y = 6, z = 50;
System.out.println(x + y + z);

Identificatori Java
Toate variabilele Java trebuie identificate cu nume unice .
Aceste nume unice se numesc identificatori .
Identificatorii pot fi nume scurte (cum ar fi x și y) sau nume mai descriptive
(vârstă, sumă, volum total).
Notă: Este recomandat să folosiți nume descriptive pentru a crea cod ușor
de înțeles și de întreținut:
Exemplu
// Good
int minutesPerHour = 60;

// OK, but not so easy to understand what m actually is


int m = 60;
Regulile generale pentru denumirea variabilelor sunt:
 Numele pot conține litere, cifre, litere de subliniere și semne de dolar
 Numele trebuie să înceapă cu o literă
 Numele trebuie să înceapă cu o literă mică și nu poate conține spații
albe
 Numele pot începe și cu $ și _ (dar nu le vom folosi în acest tutorial)
 Numele sunt sensibile la majuscule („myVar” și „myvar” sunt variabile
diferite)
 Cuvintele rezervate (cum ar fi cuvintele cheie Java, cum ar
fi intsau boolean) nu pot fi folosite ca nume

Testează-te cu exerciții
Exercițiu:
Creați o variabilă numită carNameși atribuiți-i valoarea Volvo.

= ;
Tipuri de date Java
După cum sa explicat în capitolul anterior, o variabilă în Java trebuie să fie
un tip de date specificat:
Exemplu
int myNum = 5; // Integer (whole number)
float myFloatNum = 5.99f; // Floating point number
char myLetter = 'D'; // Character
boolean myBool = true; // Boolean
String myText = "Hello"; // String
Incearca-l tu insuti "
Tipurile de date sunt împărțite în două grupe:
 Tipuri de date primitive -
includ byte, short, int, long, float, double, booleanșichar
 Tipuri de date non-primitive - cum ar fi String , Arrays și Classes (veți
afla mai multe despre acestea într-un capitol ulterior)

Tipuri de date primitive


Un tip de date primitiv specifică dimensiunea și tipul valorilor variabilelor și
nu are metode suplimentare.
Există opt tipuri de date primitive în Java:
Data Type Size Description

byte 1 byte Stores whole numbers from -128 to 127

short 2 bytes Stores whole numbers from -32,768 to 32,767

int 4 bytes Stores whole numbers from -2,147,483,648 to 2,147,483,647

long 8 bytes Stores whole numbers from -9,223,372,036,854,775,808 to


9,223,372,036,854,775,807

float 4 bytes Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits

double 8 bytes Stores fractional numbers. Sufficient for storing 15 decimal digits

boolean 1 bit Stores true or false values

char 2 bytes Stores a single character/letter or ASCII values

Numerele
Tipurile de numere primitive sunt împărțite în două grupe:
Tipurile întregi stochează numere întregi, pozitive sau negative (cum ar fi
123 sau -456), fără zecimale. Tipurile valide sunt byte, short, int și long. Ce
tip ar trebui să utilizați, depinde de valoarea numerică.
Tipurile cu virgulă mobilă reprezintă numere cu o parte fracțională, care
conține una sau mai multe zecimale. Există două tipuri: floatși double.
Chiar dacă există multe tipuri numerice în Java, cele mai utilizate pentru
numere sunt int(pentru numere întregi) și double(pentru numere în virgulă
mobilă). Cu toate acestea, le vom descrie pe toate pe măsură ce continuați
să citiți.
Tipuri întregi
octet
Tipul bytede date poate stoca numere întregi de la -128 la 127. Acesta poate
fi folosit în loc de intsau alte tipuri întregi pentru a economisi memorie
atunci când sunteți sigur că valoarea va fi între -128 și 127:
Exemplu
byte myNum = 100;
System.out.println(myNum);
Mic de statura
Tipul shortde date poate stoca numere întregi de la -32768 la 32767:
Exemplu
short myNum = 5000;
System.out.println(myNum);
Int
Tipul intde date poate stoca numere întregi de la -2147483648 la
2147483647. În general, și în tutorialul nostru, tipul de intdate este tipul de
date preferat atunci când creăm variabile cu o valoare numerică.
Exemplu
int myNum = 100000;
System.out.println(myNum);
Lung
Tipul longde date poate stoca numere întregi de la -9223372036854775808
la 9223372036854775807. Acesta este utilizat atunci când int nu este
suficient de mare pentru a stoca valoarea. Rețineți că ar trebui să încheiați
valoarea cu un „L”:
Exemplu
long myNum = 15000000000L;
System.out.println(myNum);

Tipuri în virgulă mobilă


Ar trebui să utilizați un tip de virgulă mobilă ori de câte ori aveți nevoie de
un număr cu o zecimală, cum ar fi 9,99 sau 3,14515.
Pluti
Tipul floatde date poate stoca numere fracționale de la 3.4e−038 la
3.4e+038. Rețineți că ar trebui să încheiați valoarea cu un „f”:
Exemplu
float myNum = 5.75f;
System.out.println(myNum);
Dubla
Tipul doublede date poate stoca numere fracționale de la 1.7e−308 la
1.7e+308. Rețineți că ar trebui să încheiați valoarea cu un „d”:
Exemplu
double myNum = 19.99d;
System.out.println(myNum);
Incearca-l tu insuti "
Folositi floatsau double?
Precizia unei valori în virgulă mobilă indică câte cifre poate avea valoarea
după virgulă zecimală. Precizia floateste de numai șase sau șapte cifre
zecimale, în timp ce doublevariabilele au o precizie de aproximativ 15
cifre. Prin urmare, este mai sigur de utilizat doublepentru majoritatea
calculelor.
Numerele științifice
Un număr în virgulă mobilă poate fi, de asemenea, un număr științific cu un
„e” pentru a indica puterea lui 10:
Exemplu
float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);

booleene
Un tip de date boolean este declarat cu booleancuvântul cheie și poate lua
numai valorile truesau false:
Exemplu
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun); // Outputs true
System.out.println(isFishTasty); // Outputs false
Incearca-l tu insuti "
Valorile booleene sunt utilizate în principal pentru testarea condiționată.

Personaje
Tipul charde date este folosit pentru a stoca un singur caracter. Caracterul
trebuie să fie înconjurat de ghilimele simple, cum ar fi „A” sau „c”:
Exemplu
char myGrade = 'B';
System.out.println(myGrade);
Alternativ, puteți utiliza valori ASCII pentru a afișa anumite caractere:
Exemplu
char myVar1 = 65, myVar2 = 66, myVar3 = 67;
System.out.println(myVar1);
System.out.println(myVar2);
System.out.println(myVar3);

Siruri de caractere
Tipul Stringde date este folosit pentru a stoca o secvență de caractere
(text). Valorile șirurilor de caractere trebuie să fie înconjurate de ghilimele
duble:
Exemplu
String greeting = "Hello World";
System.out.println(greeting);
Incearca-l tu insuti "
Tipul String este atât de mult folosit și integrat în Java, încât unii îl numesc
„al nouălea tip special”.
Un șir în Java este de fapt un tip de date non-primitiv , deoarece se referă
la un obiect. Obiectul String are metode care sunt folosite pentru a efectua
anumite operații pe șiruri. Nu vă faceți griji dacă nu înțelegeți încă
termenul „obiect” . Vom afla mai multe despre șiruri și obiecte într-un
capitol ulterior.
Tipuri de date non-primitive
Tipurile de date non-primitive sunt numite tipuri de referință deoarece se
referă la obiecte.
Principala diferență între tipurile de date primitive și non-primitive sunt:
 Tipurile primitive sunt predefinite (deja definite) în Java. Tipurile non-
primitive sunt create de programator și nu sunt definite de Java (cu
excepția String).
 Tipurile non-primitive pot fi folosite pentru a apela metode pentru a
efectua anumite operații, în timp ce tipurile primitive nu pot.
 Un tip primitiv are întotdeauna o valoare, în timp ce tipurile
neprimitive pot fi null.
 Un tip primitiv începe cu o literă mică, în timp ce tipurile neprimitive
începe cu o literă mare.
 Mărimea unui tip primitiv depinde de tipul de date, în timp ce tipurile
neprimitive au toate aceeași dimensiune.
Exemple de tipuri non-primitive sunt Strings , Arrays , Classes, Interface etc.
Veți afla mai multe despre acestea într-un capitol ulterior.

ă-te cu exerciții
Exercițiu:
Adăugați tipul de date corect pentru următoarele variabile:

myNum = 9;

myFloatNum = 8,99f;

myLetter = „A”;

myBool = fals;

myText = „Bună lume”;

Casting de tip Java


Casting tip este atunci când atribuiți o valoare a unui tip de date primitiv
altui tip.
În Java, există două tipuri de casting:
 Lărgirea turnării (automat) - conversia unui tip mai mic într-o
dimensiune mai mare a tipului
byte-> short-> char-> int-> long-> float->double

 Îngustarea turnării (manual) - conversia unui tip mai mare într-un


tip de dimensiune mai mică
double-> float-> long-> int-> char-> short->byte

Lărgirea Casting
Lărgirea turnării se face automat la trecerea unui tip de dimensiune mai
mică la un tip de dimensiune mai mare:
Exemplu
public class Main {
public static void main(String[] args) {
int myInt = 9;
double myDouble = myInt; // Automatic casting: int to double

System.out.println(myInt); // Outputs 9
System.out.println(myDouble); // Outputs 9.0
}
}

Îngustare turnare
Îngustarea turnării trebuie făcută manual prin plasarea tipului în paranteze
în fața valorii:
Exemplu
public class Main {
public static void main(String[] args) {
double myDouble = 9.78d;
int myInt = (int) myDouble; // Manual casting: double to int
System.out.println(myDouble); // Outputs 9.78
System.out.println(myInt); // Outputs 9
}
}
Operatori Java
Operatorii sunt utilizați pentru a efectua operații pe variabile și valori.
În exemplul de mai jos, folosim + operatorul pentru a aduna două valori:
Exemplu
int x = 100 + 50;
Incearca-l tu insuti "
Deși +operatorul este adesea folosit pentru a adăuga împreună două valori,
ca în exemplul de mai sus, poate fi folosit și pentru a adăuga împreună o
variabilă și o valoare sau o variabilă și o altă variabilă:
Exemplu
int sum1 = 100 + 50; // 150 (100 + 50)
int sum2 = sum1 + 250; // 400 (150 + 250)
int sum3 = sum2 + sum2; // 800 (400 + 400)
Incearca-l tu insuti "
Java împarte operatorii în următoarele grupuri:
 Operatori aritmetici
 Operatori de atribuire
 Operatori de comparare
 Operatori logici
 Operatori pe biți

Operatori aritmetici
Operatorii aritmetici sunt utilizați pentru a efectua operații matematice comune.
Operator Name Description Example Try it

+ Addition Adds together two values x+y Try it »

- Subtraction Subtracts one value from another x-y Try it »

* Multiplication Multiplies two values x*y Try it »

/ Division Divides one value by another x/y Try it »

% Modulus Returns the division remainder x%y Try it »

++ Increment Increases the value of a variable by 1 ++x Try it »

-- Decrement Decreases the value of a variable by 1 --x Try it »


Operatori de atribuire Java
Operatorii de atribuire sunt utilizați pentru a atribui valori variabilelor.
În exemplul de mai jos, folosim operatorul de atribuire ( =) pentru a atribui
valoarea 10 unei variabile numite x :
Exemplu
int x = 10;
Incearca-l tu insuti "
Operatorul de atribuire de adăugare ( +=) adaugă o valoare unei variabile:
Exemplu
int x = 10;
x += 5;
Incearca-l tu insuti "
O listă cu toți operatorii de atribuire:
Operator Example Same As Try it

= x=5 x=5 Try it »

+= x += 3 x=x+3 Try it »

-= x -= 3 x=x-3 Try it »

*= x *= 3 x=x*3 Try it »

/= x /= 3 x=x/3 Try it »

%= x %= 3 x=x%3 Try it »

&= x &= 3 x=x&3 Try it »

|= x |= 3 x=x|3 Try it »

^= x ^= 3 x=x^3 Try it »

>>= x >>= 3 x = x >> 3 Try it »

<<= x <<= 3 x = x << 3 Try it »

Operatori de comparare Java


Operatorii de comparație sunt utilizați pentru a compara două valori:
Operator Name Example Try it

== Equal to x == y Try it »

!= Not equal x != y Try it »

> Greater than x>y Try it »

< Less than x<y Try it »


>= Greater than or equal to x >= y Try it »

<= Less than or equal to x <= y Try it »

Operatori logici Java


Operatorii logici sunt utilizați pentru a determina logica dintre variabile sau valori:
Operator Name Description Example Try it

&& Logical and Returns true if both statements are true x < 5 && x < 10 Try it »

|| Logical or Returns true if one of the statements is x < 5 || x < 4 Try it »

true

! Logical not Reverse the result, returns false if the !(x < 5 && x < 10) Try it »

result is true

cu exerciții
Exercițiu:
Înmulțiți 10cu 5și imprimați rezultatul.

System.out.println(10 5);

Șiruri Java
Șirurile sunt folosite pentru stocarea textului.
O Stringvariabilă conține o colecție de caractere înconjurate de ghilimele
duble:
Exemplu
Creați o variabilă de tip Stringși atribuiți-i o valoare:
String greeting = "Hello";
Lungimea șirului
Un String în Java este de fapt un obiect, care conține metode care pot
efectua anumite operații asupra șirurilor. De exemplu, lungimea unui șir
poate fi găsită cu length()metoda:
Exemplu
String txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println("The length of the txt string is: " +
txt.length());
Mai multe metode cu șiruri
Există multe metode de șir disponibile, de
exemplu toUpperCase()și toLowerCase():
Exemplu
String txt = "Hello World";
System.out.println(txt.toUpperCase()); // Outputs "HELLO WORLD"
System.out.println(txt.toLowerCase()); // Outputs "hello world"
Găsirea unui caracter într-un șir
Metoda indexOf()returnează indexul (poziția) primei apariții a unui text
specificat într-un șir (inclusiv spații albe):
Exemplu
String txt = "Please locate where 'locate' occurs!";
System.out.println(txt.indexOf("locate")); // Outputs 7

Java numără pozițiile de la zero.


0 este prima poziție dintr-un șir, 1 este a doua, 2 este a treia...

Concatenarea șirurilor
Operatorul +poate fi folosit între șiruri pentru a le combina. Aceasta se
numește concatenare :
Exemplu
String firstName = "John";
String lastName = "Doe";
System.out.println(firstName + " " + lastName);

Rețineți că am adăugat un text gol (" ") pentru a crea un spațiu între
prenume și prenume pe tipărire.
De asemenea, puteți utiliza concat()metoda pentru a concatena două șiruri
de caractere:
Exemplu
String firstName = "John ";
String lastName = "Doe";
System.out.println(firstName.concat(lastName));

Personaje speciale
Deoarece șirurile trebuie scrise între ghilimele, Java va înțelege greșit acest șir și va
genera o eroare:
String txt = "We are the so-called "Vikings" from the north.";
Soluția pentru a evita această problemă este utilizarea caracterului de escape
backslash .
Caracterul de escape backslash ( \) transformă caracterele speciale în caractere șir:
Escape character Result Description

\' ' Single quote

\" " Double quote

\\ \ Backslash
Secvența \" inserează ghilimele duble într-un șir:
Exemplu
String txt = "We are the so-called \"Vikings\" from the north.";
Secvența \' inserează un singur ghilimele într-un șir:
Exemplu
String txt = "It\'s alright.";
Secvența \\ inserează o singură bară oblică inversă într-un șir:
Exemplu
String txt = "The character \\ is called backslash.";
Alte șase secvențe de escape sunt valide în Java:
Code Result Try it

\n New Line Try it »

\r Carriage Return Try it »

\t Tab Try it »

\b Backspace Try it »

\f Form Feed

Adăugarea de numere și șiruri


AVERTIZARE!
Java folosește +operatorul atât pentru adăugare, cât și pentru concatenare.
Se adaugă numere. Șirurile sunt concatenate.
Dacă adăugați două numere, rezultatul va fi un număr:
Exemplu
int x = 10;
int y = 20;
int z = x + y; // z will be 30 (an integer/number)

Dacă adăugați două șiruri, rezultatul va fi o concatenare de șiruri:


Exemplu
String x = "10";
String y = "20";
String z = x + y; // z will be 1020 (a String)

Dacă adăugați un număr și un șir, rezultatul va fi o concatenare de șir:


Exemplu
String x = "10";
int y = 20;
String z = x + y; // z will be 1020 (a String)

Referință completă a șirurilor


Pentru o referință completă a metodelor String, accesați Referința noastră
Java String Methods .
Referința conține descrieri și exemple ale tuturor metodelor șirurilor.
-te cu exerciții
Exercițiu:
Completați partea care lipsește pentru a crea o greetingvariabilă de tip Stringși alocați-i valoarea Hello.

salut = ;

Clasa Java Math are multe metode care vă permit să efectuați sarcini matematice pe numere.

Math.max( x,y )
Metoda poate fi folosită pentru a găsi cea mai mare valoare a lui x și y :Math.max(x,y)

Exemplu
Math.max(5, 10);

Math.min( x,y )
Metoda poate fi folosită pentru a găsi cea mai mică valoare a lui x și y :Math.min(x,y)

Exemplu
Math.min(5, 10);

Math.sqrt( x )
Metoda returnează rădăcina pătrată a lui x :Math.sqrt(x)

Exemplu
Math.sqrt(64);

Math.abs( x )
Metoda returnează valoarea absolută (pozitivă) a lui x :Math.abs(x)

Exemplu
Math.abs(-4.7);

Numere aleatorii
Math.random()returnează un număr aleatoriu între 0,0 (inclusiv) și 1,0 (exclusiv):
Exemplu
Math.random();

Pentru a obține mai mult control asupra numărului aleator, de exemplu, doriți doar un
număr aleator între 0 și 100, puteți utiliza următoarea formulă:
Exemplu
int randomNum = (int)(Math.random() * 101); // 0 to 100
-te cu exerciții
Exercițiu:
Utilizați metoda corectă pentru a găsi cea mai mare valoare a xși y.
int x = 5;
int y = 10;

Matematică. (X y);

Booleenii Java
Foarte des, în programare, veți avea nevoie de un tip de date care poate avea doar
una dintre două valori, cum ar fi:
 DA NU
 ON / OFF
 ADEVARAT FALS
Pentru aceasta, Java are un booleantip de date, care poate lua
valorile truesau false.

Valori booleene
Un tip boolean este declarat cu booleancuvântul cheie și poate lua numai
valorile truesau false:
Exemplu
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println(isJavaFun); // Outputs true
System.out.println(isFishTasty); // Outputs false
Incearca-l tu insuti "
Cu toate acestea, este mai frecvent să returnați valori booleene din expresii
booleene, pentru testarea condiționată (vezi mai jos).

Expresie booleană
O expresie booleană este o expresie Java care returnează o valoare
booleană: truesau false.
Puteți utiliza un operator de comparație, cum ar fi operatorul mai mare decât ( >) pentru a
afla dacă o expresie (sau o variabilă) este adevărată:
Exemplu
int x = 10;
int y = 9;
System.out.println(x > y); // returns true, because 10 is higher than 9
Incearca-l tu insuti "
Sau chiar mai ușor:
Exemplu
System.out.println(10 > 9); // returns true, because 10 is higher than 9
Incearca-l tu insuti "
În exemplele de mai jos, folosim operatorul egal cu ( ==) pentru a evalua o expresie:
Exemplu
int x = 10;
System.out.println(x == 10); // returns true, because the value of x is equal to 10
Incearca-l tu insuti "
Exemplu
System.out.println(10 == 15); // returns false, because 10 is not equal to 15
Incearca-l tu insuti "
Valoarea booleană a unei expresii este baza pentru toate comparațiile și condițiile Java.
Veți afla mai multe despre condiții în capitolul următor.
exerciții
Exercițiu:
Completați părțile lipsă pentru a imprima valorile trueși false:
isJavaFun = adevărat;

isFishTasty = fals;
System.out.println(isJavaFun);
System.out.println(isFishTasty);

Java Dacă... Altfel


Condiții Java și declarații If
Java acceptă condițiile logice obișnuite din matematică:
 Mai mic decât: a < b
 Mai mic sau egal cu: a <= b
 Mai mare decât: a > b
 Mai mare sau egal cu: a >= b
 Egal cu a == b
 Nu este egal cu: a != b
Puteți folosi aceste condiții pentru a efectua diferite acțiuni pentru diferite decizii.
Java are următoarele instrucțiuni condiționale:
 Utilizați ifpentru a specifica un bloc de cod care urmează să fie executat,
dacă o condiție specificată este adevărată
 Utilizați elsepentru a specifica un bloc de cod care urmează să fie executat,
dacă aceeași condiție este falsă
 Utilizați else ifpentru a specifica o nouă condiție de testat, dacă prima
condiție este falsă
 Utilizați switchpentru a specifica multe blocuri alternative de cod care
urmează să fie executate
Declarația if
Utilizați ifinstrucțiunea pentru a specifica un bloc de cod Java care urmează să fie
executat dacă o condiție este true.
Sintaxă
if (condition) {
// block of code to be executed if the condition is true
}
Rețineți că ifeste cu litere mici. Literele mari (Dacă sau IF) vor genera o eroare.
În exemplul de mai jos, testăm două valori pentru a afla dacă 20 este mai mare
decât 18. Dacă condiția este true, imprimați un text:
Exemplu
if (20 > 18) {
System.out.println("20 is greater than 18");
}
De asemenea, putem testa variabile:
Exemplu
int x = 20;
int y = 18;
if (x > y) {
System.out.println("x is greater than y");
}
Exemplu explicat
În exemplul de mai sus folosim două variabile, x și y , pentru a testa dacă x este
mai mare decât y (folosind >operatorul). Deoarece x este 20 și y este 18 și știm că
20 este mai mare decât 18, imprimăm pe ecran că „x este mai mare decât y”.

Declarația else
Utilizați elseinstrucțiunea pentru a specifica un bloc de cod care trebuie executat
dacă condiția este false.
Sintaxă
if (condition) {
// block of code to be executed if the condition is true
} else {
// block of code to be executed if the condition is false
}
Exemplu
int time = 20;
if (time < 18) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
// Outputs "Good evening."

Exemplu explicat
În exemplul de mai sus, timpul (20) este mai mare decât 18, deci condiția
este false. Din această cauză, trecem la elsecondiția și imprimăm pe ecran „Bună
seara”. Dacă ora era mai mică de 18, programul ar tipări „Bună ziua”.

Declarația else if
Utilizați else ifinstrucțiunea pentru a specifica o nouă condiție dacă prima condiție
este false.
Sintaxă
if (condition1) {
// block of code to be executed if condition1 is true
} else if (condition2) {
// block of code to be executed if the condition1 is false and condition2
is true
} else {
// block of code to be executed if the condition1 is false and condition2
is false
}
Exemplu
int time = 22;
if (time < 10) {
System.out.println("Good morning.");
} else if (time < 20) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
// Outputs "Good evening."

Exemplu explicat
În exemplul de mai sus, timpul (22) este mai mare decât 10, deci prima
condiție este false. Următoarea condiție, din else ifinstrucțiune, este de
asemenea false, așa că trecem la else condiția
deoarece condiția1 și condiția2 sunt ambele false- și imprimăm pe ecran „Bună
seara”.
Totuși, dacă ora era 14, programul nostru ar tipări „Ziua bună”.

Mâna scurtă dacă... Altfel (operator ternar)


Există, de asemenea, o prescurtare if else, care este cunoscută sub numele
de operator ternar, deoarece constă din trei operanzi. Poate fi folosit
pentru a înlocui mai multe linii de cod cu o singură linie. Este adesea folosit
pentru a înlocui declarațiile simple if else:
Sintaxă
variable = (condition) ? expressionTrue : expressionFalse;
In loc sa scriu:
Exemplu
int time = 20;
if (time < 18) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
Puteți scrie pur și simplu:
Exemplu
int time = 20;
String result = (time < 18) ? "Good day." : "Good evening.";
System.out.println(result);

Testează-te cu exerciții
Exercițiu:
Tipăriți „Hello World” dacă xeste mai mare decât y.
int x = 50;
int y = 10;

(X y) {
System.out.println("Bună lume");
}
Comutator Java
Declarații Java Switch
Utilizați switchinstrucțiunea pentru a selecta unul dintre multele blocuri de cod care
urmează să fie executate.
Sintaxă
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
Asa functioneaza:
 Expresia switcheste evaluată o dată.
 Valoarea expresiei este comparată cu valorile fiecărei case.
 Dacă există o potrivire, blocul de cod asociat este executat.
 Cuvintele cheie breakși defaultsunt opționale și vor fi descrise mai târziu în
acest capitol
Exemplul de mai jos folosește numărul zilei lucrătoare pentru a calcula numele zilei
săptămânii:
Exemplu
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
}
// Outputs "Thursday" (day 4)

Cuvântul cheie pauză


Când Java ajunge la un break cuvânt cheie, acesta iese din blocul de comutare.
Acest lucru va opri execuția mai multor teste de cod și caz în interiorul blocului.
Când se găsește o potrivire și treaba este gata, este timpul pentru o pauză. Nu este
nevoie de mai multe teste.
O pauză poate economisi mult timp de execuție deoarece „ignoră” execuția
întregului cod din blocul de comutare.

Cuvântul cheie implicit


Cuvântul defaultcheie specifică un cod de rulat dacă nu există potrivire cu
majuscule și minuscule:
Exemplu
int day = 4;
switch (day) {
case 6:
System.out.println("Today is Saturday");
break;
case 7:
System.out.println("Today is Sunday");
break;
default:
System.out.println("Looking forward to the Weekend");
}
// Outputs "Looking forward to the Weekend"

Rețineți că, dacă defaultinstrucțiunea este folosită ca ultima instrucțiune într-un


bloc de comutare, nu are nevoie de o pauză.

Testează-te cu exerciții
Exercițiu:
Introduceți părțile lipsă pentru a completa următoarea switchafirmație.
int zi = 2;

intrerupator ( ) {

1:
System.out.println(„Sâmbătă”);
pauză;

2:
System.out.println("Duminică");

;
}
Java While Loop
Bucle
Buclele pot executa un bloc de cod atâta timp cât este atinsă o condiție specificată.
Buclele sunt utile deoarece economisesc timp, reduc erorile și fac codul mai ușor de
citit.

Java While Loop


Bucla whiletrece printr-un bloc de cod atâta timp cât o condiție specificată
este true:
Sintaxă
while (condition) {
// code block to be executed
}
În exemplul de mai jos, codul din buclă va rula, iar și iar, atâta timp cât o
variabilă (i) este mai mică de 5:
Exemplu
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
Notă: Nu uitați să măriți variabila utilizată în condiție, altfel bucla nu se va
termina niciodată!
Bucla Do/While
Bucla do/whileeste o variantă a whilebuclei. Această buclă va executa blocul
de cod o dată, înainte de a verifica dacă condiția este adevărată, apoi va
repeta bucla atâta timp cât condiția este adevărată.
Sintaxă
do {
// code block to be executed
}
while (condition);
Exemplul de mai jos folosește o do/whilebuclă. Bucla va fi întotdeauna
executată cel puțin o dată, chiar dacă condiția este falsă, deoarece blocul de
cod este executat înainte ca condiția să fie testată:
Exemplu
int i = 0;
do {
System.out.println(i);
i++;
}
while (i < 5);
Incearca-l tu insuti "
Nu uitați să măriți variabila folosită în condiție, altfel bucla nu se va termina
niciodată!
-te cu exerciții
Exercițiu:
Imprimați iatâta timp cât ieste mai puțin de 6.
int i = 1;

(i < 6) {
System.out.println(i);

;
}

Java For Loop


Când știți exact de câte ori doriți să treceți printr-un bloc de cod, utilizați forbucla
în loc de whilebuclă:
Sintaxă
for (statement 1; statement 2; statement 3) {
// code block to be executed
}
Instrucțiunea 1 este executată (o singură dată) înainte de execuția blocului de
cod.
Instrucțiunea 2 definește condiția pentru executarea blocului de cod.
Instrucțiunea 3 este executată (de fiecare dată) după ce blocul de cod a fost
executat.
Exemplul de mai jos va tipări numerele de la 0 la 4:
Exemplu
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
Exemplu explicat
Instrucțiunea 1 setează o variabilă înainte de începerea buclei (int i = 0).
Instrucțiunea 2 definește condiția pentru ca bucla să ruleze (i trebuie să fie mai mic
de 5). Dacă condiția este adevărată, bucla va începe din nou, dacă este falsă, bucla
se va termina.
Instrucțiunea 3 crește o valoare (i++) de fiecare dată când blocul de cod din buclă
a fost executat.

Alt exemplu
Acest exemplu va imprima numai valori pare între 0 și 10:
Exemplu
for (int i = 0; i <= 10; i = i + 2) {
System.out.println(i);
}
Pentru fiecare buclă
Există, de asemenea, o buclă „ for-each ”, care este folosită exclusiv pentru a
parcurge elementele dintr-o matrice :
Sintaxă
for (type variableName : arrayName) {
// code block to be executed
}
Următorul exemplu scoate toate elementele din matricea cars , folosind o buclă
„ for-each ”:
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String i : cars) {
System.out.println(i);
}
Notă: Nu vă faceți griji dacă nu înțelegeți exemplul de mai sus. Veți afla mai multe
despre Arrays în capitolul Java Arrays .

Testează-te cu exerciții
Exercițiu:
Folosiți o forbuclă pentru a imprima „Da” de 5 ori.

(int i = 0; i < 5; ) {

System.out.println( );
}

Java întrerupe și continuă


Pauza Java
Ați văzut deja breakdeclarația folosită într-un capitol anterior al acestui tutorial. A
fost folosit pentru a „sări” dintr-o switchdeclarație.
Declarația breakpoate fi folosită și pentru a ieși dintr-o buclă .
Acest exemplu oprește bucla când i este egal cu 4:
Exemplu
for (int i = 0; i < 10; i++) {
if (i == 4) {
break;
}
System.out.println(i);
}

Java Continuare
Declarația continueîntrerupe o iterație (în buclă), dacă apare o condiție specificată
și continuă cu următoarea iterație din buclă.
Acest exemplu omite valoarea 4:
Exemplu
for (int i = 0; i < 10; i++) {
if (i == 4) {
continue;
}
System.out.println(i);
}

Întrerupeți și continuați în bucla While


De asemenea, puteți utiliza breakși continueîn buclele while:
Exemplu de pauză
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
if (i == 4) {
break;
}
}
Continuare Exemplu
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
System.out.println(i);
i++;
}

Tesază-te cu exerciții
Exercițiu:
Opriți bucla dacă ieste 5.
pentru (int i = 0; i < 10; i++) {
dacă (i == 5) {

;
}
System.out.println(i);
}

Matrice Java
Matricele sunt folosite pentru a stoca mai multe valori într-o singură variabilă, în loc
să declare variabile separate pentru fiecare valoare.
Pentru a declara o matrice, definiți tipul de variabilă cu paranteze drepte :
String[] cars;
Acum am declarat o variabilă care deține o matrice de șiruri. Pentru a insera valori
în el, putem folosi un literal matrice - plasați valorile într-o listă separată prin
virgulă, în interiorul acolade:
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Pentru a crea o matrice de numere întregi, puteți scrie:
int[] myNum = {10, 20, 30, 40};

Accesați elementele unui tablou


Accesați un element de matrice referindu-vă la numărul de index.
Această declarație accesează valoarea primului element din mașini:
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
System.out.println(cars[0]);
// Outputs Volvo
Notă: Indicii de matrice încep cu 0: [0] este primul element. [1] este al doilea
element etc.

Schimbați un element de matrice


Pentru a modifica valoarea unui anumit element, consultați numărul de index:
Exemplu
cars[0] = "Opel";
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
System.out.println(cars[0]);
// Now outputs Opel instead of Volvo
Lungimea matricei
Pentru a afla câte elemente are o matrice, utilizați lengthproprietatea:
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
System.out.println(cars.length);
// Outputs 4
Buclă printr-o matrice
Puteți parcurge elementele matricei cu forbucla și puteți utiliza length proprietatea
pentru a specifica de câte ori ar trebui să ruleze bucla.
Următorul exemplu scoate toate elementele din matricea cars :
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.length; i++) {
System.out.println(cars[i]);
}
Buclă printr-o matrice cu For-Each
Există, de asemenea, o buclă „ for-each ”, care este folosită exclusiv pentru a
parcurge elementele din matrice:
Sintaxă
for (type variable : arrayname) {
...
}
Următorul exemplu scoate toate elementele din matricea cars , folosind o buclă
„ for-each ”:
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String i : cars) {
System.out.println(i);
}
Incearca-l tu insuti "
Exemplul de mai sus poate fi citit astfel: pentru fiecare String element (numit i -
ca în index ) din mașini , tipăriți valoarea lui i .
Dacă comparați forbucla și bucla for-each , veți vedea că metoda for-each este
mai ușor de scris, nu necesită un contor (folosind proprietatea length) și este mai
lizibilă.
Matrice multidimensionale
O matrice multidimensională este o matrice de matrice.
Pentru a crea o matrice bidimensională, adăugați fiecare matrice în propriul set
de acolade :
Exemplu
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
myNumbers este acum o matrice cu două matrice ca elemente.
Pentru a accesa elementele matricei myNumbers , specificați doi indecși: unul
pentru matrice și unul pentru elementul din interiorul matricei respective. Acest
exemplu accesează al treilea element (2) din a doua matrice (1) a myNumbers:
Exemplu
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
int x = myNumbers[1][2];
System.out.println(x); // Outputs 7
Incearca-l tu insuti "
Putem folosi, de asemenea, un for loopinterior al altuia for looppentru a obține
elementele unui tablou bidimensional (mai trebuie să indicăm către cei doi indici):
Exemplu
public class Main {
public static void main(String[] args) {
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
for (int i = 0; i < myNumbers.length; ++i) {
for(int j = 0; j < myNumbers[i].length; ++j) {
System.out.println(myNumbers[i][j]);
}
}
}
}
Testează-te cu exerciții
Exercițiu:
Creați o matrice de tip Stringnumit cars.

= {"Volvo", "BMW", "Ford"};

Metode Java
O metodă este un bloc de cod care rulează numai atunci când este apelat.
Puteți trece date, cunoscute ca parametri, într-o metodă.
Metodele sunt folosite pentru a efectua anumite acțiuni și sunt cunoscute și
ca funcții .
De ce să folosiți metode? Pentru a reutiliza codul: definiți codul o dată și utilizați-l
de mai multe ori.
Creați o metodă
O metodă trebuie să fie declarată în cadrul unei clase. Este definit cu numele
metodei, urmat de paranteze () . Java oferă câteva metode predefinite, cum ar
fi System.out.println(), dar vă puteți crea și propriile metode pentru a efectua
anumite acțiuni:
Exemplu
Creați o metodă în Main:
public class Main {
static void myMethod() {
// code to be executed
}
}

Exemplu explicat
 myMethod()este numele metodei
 staticînseamnă că metoda aparține clasei Main și nu un obiect al clasei
Main. Veți afla mai multe despre obiecte și despre cum să accesați metode
prin obiecte mai târziu în acest tutorial.
 voidînseamnă că această metodă nu are o valoare returnată. Veți afla mai
multe despre valorile returnate mai târziu în acest capitol

Apelați o metodă
Pentru a apela o metodă în Java, scrieți numele metodei urmat de două
paranteze () și punct și virgulă ;
În exemplul următor, myMethod()este folosit pentru a tipări un text (acțiunea),
atunci când este numit:
Exemplu
În interior main, apelați myMethod()metoda:
public class Main {
static void myMethod() {
System.out.println("I just got executed!");
}
public static void main(String[] args) {
myMethod();
}
}

// Outputs "I just got executed!"

O metodă poate fi, de asemenea, apelată de mai multe ori:


Exemplu
public class Main {
static void myMethod() {
System.out.println("I just got executed!");
}

public static void main(String[] args) {


myMethod();
myMethod();
myMethod();
}
}

// I just got executed!


// I just got executed!
// I just got executed!

În următorul capitol, Parametrii metodei , veți învăța cum să transmiteți date


(parametrii) într-o metodă.

Testează-te cu exerciții
Exercițiu:
Introduceți partea lipsă pentru a apela myMethodde la main.
static void metoda mea() {
System.out.println("Tocmai am fost executat!");
}

public static void main(String[] args) {


;
}

Parametrii metodei Java


Parametri și argumente
Informațiile pot fi transmise metodelor ca parametru. Parametrii acționează ca variabile în
interiorul metodei.
Parametrii sunt specificați după numele metodei, în interiorul parantezei. Puteți adăuga oricât de
mulți parametri doriți, doar separați-i cu o virgulă.
Următorul exemplu are o metodă care ia ca parametru un fnameString numit . Când metoda
este apelată, transmitem un prenume, care este folosit în interiorul metodei pentru a tipări numele
complet:
Exemplu
public class Main {
static void myMethod(String fname) {
System.out.println(fname + " Refsnes");
}

public static void main(String[] args) {


myMethod("Liam");
myMethod("Jenny");
myMethod("Anja");
}
}
// Liam Refsnes
// Jenny Refsnes
// Anja Refsnes
Când un parametru este transmis metodei, acesta se numește argument . Deci, din exemplul de mai
sus: fnameeste un parametru , while Liam, Jennyși Anjasunt argumente .
Parametri multipli
Puteți avea oricât de mulți parametri doriți:
Exemplu
public class Main {
static void myMethod(String fname, int age) {
System.out.println(fname + " is " + age);
}

public static void main(String[] args) {


myMethod("Liam", 5);
myMethod("Jenny", 8);
myMethod("Anja", 31);
}
}

// Liam is 5
// Jenny is 8
// Anja is 31

Rețineți că atunci când lucrați cu mai mulți parametri, apelul de metodă trebuie să aibă același număr de
argumente ca și parametrii, iar argumentele trebuie să fie transmise în aceeași ordine .
Valori returnate
Cuvântul voidcheie, folosit în exemplele de mai sus, indică faptul că metoda nu ar trebui să returneze o
valoare. Dacă doriți ca metoda să returneze o valoare, puteți utiliza un tip de date primitiv (cum ar
fi int, char, etc.) în loc de void, și puteți utiliza return cuvântul cheie în interiorul metodei:
Exemplu
public class Main {
static int myMethod(int x) {
return 5 + x;
}

public static void main(String[] args) {


System.out.println(myMethod(3));
}
}
// Outputs 8 (5 + 3)

Acest exemplu returnează suma celor doi parametri ai unei metode :


Exemplu
public class Main {
static int myMethod(int x, int y) {
return x + y;
}

public static void main(String[] args) {


System.out.println(myMethod(5, 3));
}
}
// Outputs 8 (5 + 3)
De asemenea, puteți stoca rezultatul într-o variabilă (recomandat, deoarece este mai ușor de citit și de
întreținut):
Exemplu
public class Main {
static int myMethod(int x, int y) {
return x + y;
}

public static void main(String[] args) {


int z = myMethod(5, 3);
System.out.println(z);
}
}
// Outputs 8 (5 + 3)
O metodă cu Dacă... Altfel
Este obișnuit să folosiți if...elseinstrucțiuni în cadrul metodelor:
Exemplu
public class Main {

// Create a checkAge() method with an integer variable called age


static void checkAge(int age) {
// If age is less than 18, print "access denied"
if (age < 18) {
System.out.println("Access denied - You are not old enough!");

// If age is greater than, or equal to, 18, print "access granted"


} else {
System.out.println("Access granted - You are old enough!");
}

public static void main(String[] args) {


checkAge(20); // Call the checkAge method and pass along an age of 20
}
}

// Outputs "Access granted - You are old enough!" cu exerciții


Exercițiu:
Adăugați un fnameparametru de tip Stringla myMethod, și scoateți „John Doe”:

static void metoda mea( ) {

System.out.println( + "Doe");
}

public static void main(String[] args) {


myMethod ("Ioan");
}

Supraîncărcarea metodei
Cu supraîncărcarea metodei , mai multe metode pot avea același nume cu
parametri diferiți:
Exemplu
int myMethod(int x)
float myMethod(float x)
double myMethod(double x, double y)
Luați în considerare următorul exemplu, care are două metode care adaugă numere
de tip diferit:
Exemplu
static int plusMethodInt(int x, int y) {
return x + y;
}

static double plusMethodDouble(double x, double y) {


return x + y;
}

public static void main(String[] args) {


int myNum1 = plusMethodInt(8, 5);
double myNum2 = plusMethodDouble(4.3, 6.26);
System.out.println("int: " + myNum1);
System.out.println("double: " + myNum2);
}
În loc să definiți două metode care ar trebui să facă același lucru, este mai bine să
supraîncărcați una.
În exemplul de mai jos, supraîncărcăm plusMethod metoda pentru a funcționa
atât int pentru double:
Exemplu
static int plusMethod(int x, int y) {
return x + y;
}

static double plusMethod(double x, double y) {


return x + y;
}

public static void main(String[] args) {


int myNum1 = plusMethod(8, 5);
double myNum2 = plusMethod(4.3, 6.26);
System.out.println("int: " + myNum1);
System.out.println("double: " + myNum2);
}
Notă: Mai multe metode pot avea același nume atâta timp cât numărul și/sau tipul
parametrilor sunt diferiți.
Domeniul Java
În Java, variabilele sunt accesibile numai în interiorul regiunii în care sunt
create. Aceasta se numește domeniul de aplicare
Domeniul de aplicare al metodei
Variabilele declarate direct în interiorul unei metode sunt disponibile oriunde în
metoda după linia de cod în care au fost declarate:
Exemplu
public class Main {
public static void main(String[] args) {

// Code here CANNOT use x

int x = 100;

// Code here can use x


System.out.println(x);
}
}
Domeniul de aplicare al blocului
Un bloc de cod se referă la tot codul dintre acolade {}. Variabilele declarate în
blocurile de cod sunt accesibile numai prin codul dintre acolade, care urmează linia
în care a fost declarată variabila:
Exemplu
public class Main {
public static void main(String[] args) {

// Code here CANNOT use x

{ // This is a block

// Code here CANNOT use x

int x = 100;

// Code here CAN use x


System.out.println(x);

} // The block ends here

// Code here CANNOT use x

}
}
Incearca-l tu insuti "
Un bloc de cod poate exista singur sau poate aparține unei
instrucțiuni if, whilesau for. În cazul forinstrucțiunilor, variabilele declarate în
instrucțiunea în sine sunt disponibile și în sfera blocului.
Recursiune Java
Recursiunea este tehnica de a efectua un apel de funcție în sine. Această tehnică
oferă o modalitate de a împărți problemele complicate în probleme simple, care
sunt mai ușor de rezolvat.
Recursiunea poate fi puțin greu de înțeles. Cel mai bun mod de a-ți da seama cum
funcționează este să experimentezi cu el.
Exemplu de recursivitate
Adunarea a două numere este ușor de făcut, dar adăugarea unui interval de
numere este mai complicată. În exemplul următor, recursiunea este utilizată pentru
a adăuga o serie de numere împreună, împărțind-o în sarcina simplă de a adăuga
două numere:
Exemplu
Utilizați recursiunea pentru a adăuga toate numerele până la 10.
public class Main {
public static void main(String[] args) {
int result = sum(10);
System.out.println(result);
} } } }
public static int sum(int k) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;

Exemplu explicat
Când sum()funcția este apelată, adaugă un parametru kla suma tuturor numerelor
mai mici decât kși returnează rezultatul. Când k devine 0, funcția returnează doar
0. Când rulează, programul urmează acești pași:
10 + suma(9)
10 + ( 9 + suma(8) )
10 + ( 9 + ( 8 + suma(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + suma(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
Deoarece funcția nu se numește singură când keste 0, programul se oprește acolo
și returnează rezultatul.
Condiție de oprire
La fel cum buclele se pot confrunta cu problema buclei infinite, funcțiile recursive se
pot confrunta cu problema recursiunii infinite. Recursiunea infinită este atunci când
funcția nu încetează să se autoapeleze. Fiecare funcție recursivă ar trebui să aibă o
condiție de oprire, care este condiția în care funcția încetează să se mai apeleze. În
exemplul anterior, condiția de oprire este atunci când parametrul kdevine 0.
Este util să vedeți o varietate de exemple diferite pentru a înțelege mai bine
conceptul. În acest exemplu, funcția adaugă un interval de numere între un început
și un sfârșit. Condiția de oprire pentru această funcție recursivă este atunci
când sfârșitul nu este mai mare decât începutul :
Exemplu
Utilizați recursiunea pentru a adăuga toate numerele între 5 și 10.
public class Main {
public static void main(String[] args) {
int result = sum(5, 10);
System.out.println(result);
}
public static int sum(int start, int end) {
if (end > start) {
return end + sum(start, end - 1);
} else {
return end;
}
}
}
Java OOP❮ AnteriorUrmătorul ❯
Java - Ce este OOP?
OOP înseamnă programare orientată pe obiecte .
Programarea procedurală se referă la scrierea de proceduri sau metode care
efectuează operații asupra datelor, în timp ce programarea orientată pe obiecte se
referă la crearea de obiecte care conțin atât date, cât și metode.
Programarea orientată pe obiecte are mai multe avantaje față de programarea
procedurală:
 OOP este mai rapid și mai ușor de executat
 OOP oferă o structură clară pentru programe
 OOP ajută la menținerea codului Java DRY „Don’t Repeat Yourself” și face
codul mai ușor de întreținut, modificat și depanat
 OOP face posibilă crearea de aplicații complet reutilizabile cu mai puțin cod și
timp de dezvoltare mai scurt
Sfat: Principiul „Nu te repeta” (DRY) se referă la reducerea repetiției codului. Ar
trebui să extrageți codurile care sunt comune pentru aplicație și să le plasați într-un
singur loc și să le refolosiți în loc să le repetați.
Java - Ce sunt clasele și obiectele?
Clasele și obiectele sunt cele două aspecte principale ale programării orientate pe
obiecte.
Priviți următoarea ilustrație pentru a vedea diferența dintre clasă și obiecte:
clasă
Fructe
obiecte
măr
Banană
Mango
Alt exemplu:
clasă
Mașină
obiecte
Volvo
Audi
Toyota
Deci, o clasă este un șablon pentru obiecte, iar un obiect este o instanță a unei
clase.
Când obiectele individuale sunt create, ele moștenesc toate variabilele și metodele
din clasă.
Veți afla mult mai multe despre clase și obiecte în capitolul următor.
Java Classes/Objects
Java is an object-oriented programming language.
Everything in Java is associated with classes and objects, along with its attributes
and methods. For example: in real life, a car is an object. The car has attributes,
such as weight and color, and methods, such as drive and brake.
A Class is like an object constructor, or a "blueprint" for creating objects.
Create a Class
To create a class, use the keyword class:
Main.java
Create a class named "Main" with a variable x:
public class Main {
int x = 5;
}
Remember from the Java Syntax chapter that a class should always start with an
uppercase first letter, and that the name of the java file should match the class
name.
Create an Object
In Java, an object is created from a class. We have already created the class
named Main, so now we can use this to create objects.
To create an object of Main, specify the class name, followed by the object name,
and use the keyword new:
Example
Create an object called "myObj" and print the value of x:
public class Main {
int x = 5;

public static void main(String[] args) {


Main myObj = new Main();
System.out.println(myObj.x);
}
}

Multiple Objects
You can create multiple objects of one class:
Example
Create two objects of Main:
public class Main {
int x = 5;

public static void main(String[] args) {


Main myObj1 = new Main(); // Object 1
Main myObj2 = new Main(); // Object 2
System.out.println(myObj1.x);
System.out.println(myObj2.x);
}
}
Using Multiple Classes
You can also create an object of a class and access it in another class. This is often
used for better organization of classes (one class has all the attributes and
methods, while the other class holds the main() method (code to be executed)).
Remember that the name of the java file should match the class name. In this
example, we have created two files in the same directory/folder:
 Main.java
 Second.java
Main.java
public class Main {
int x = 5;
}
Second.java
class Second {
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x);
}
}
When both files have been compiled:
C:\Users\Your Name>javac Main.java
C:\Users\Your Name>javac Second.java
Run the Second.java file:
C:\Users\Your Name>java Second
And the output will be:
5

Test Yourself With Exercises


Exercise:
Create an object of MyClass called myObj.

= new ();

Atributele clasei Java


În capitolul anterior, am folosit termenul „variabilă” pentru xîn exemplu (după cum
se arată mai jos). Este de fapt un atribut al clasei. Sau ați putea spune că
atributele clasei sunt variabile în cadrul unei clase:
Exemplu
Creați o clasă numită " Main" cu două atribute: xși y:
public class Main {
int x = 5;
int y = 3;
}
Accesarea atributelor
Puteți accesa atribute creând un obiect al clasei și folosind sintaxa punctului ( .):
Următorul exemplu va crea un obiect al Mainclasei, cu
numele myObj. Folosim x atributul de pe obiect pentru a-i imprima valoarea:
Exemplu
Creați un obiect numit " myObj" și imprimați valoarea x:
public class Main {
int x = 5;

public static void main(String[] args) {


Main myObj = new Main();
System.out.println(myObj.x);
}
}

Modificați atribute
De asemenea, puteți modifica valorile atributelor:
Exemplu
Setați valoarea xla 40:
public class Main {
int x;

public static void main(String[] args) {


Main myObj = new Main();
myObj.x = 40;
System.out.println(myObj.x);
}
}

Sau suprascrieți valorile existente:


Exemplu
Modificați valoarea xla 25:
public class Main {
int x = 10;

public static void main(String[] args) {


Main myObj = new Main();
myObj.x = 25; // x is now 25
System.out.println(myObj.x);
}
}

Dacă nu doriți posibilitatea de a suprascrie valorile existente, declarați atributul


ca final:
Exemplu
public class Main {
final int x = 10;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 25; // will generate an error: cannot assign a value to a final
variable
System.out.println(myObj.x);
}
}
Cuvântul finalcheie este util atunci când doriți ca o variabilă să stocheze
întotdeauna aceeași valoare, cum ar fi PI (3.14159...).
Cuvântul finalcheie se numește „modificator”. Veți afla mai multe despre acestea
în capitolul Modificatori Java .
Obiecte multiple
Dacă creați mai multe obiecte dintr-o clasă, puteți modifica valorile atributelor
dintr-un obiect, fără a afecta valorile atributelor din celălalt:
Exemplu
Schimbați valoarea xla 25 în și myObj2lăsați neschimbat:xmyObj1
public class Main {
int x = 5;

public static void main(String[] args) {


Main myObj1 = new Main(); // Object 1
Main myObj2 = new Main(); // Object 2
myObj2.x = 25;
System.out.println(myObj1.x); // Outputs 5
System.out.println(myObj2.x); // Outputs 25
}
}
Atribute multiple
Puteți specifica câte atribute doriți:
Exemplu
public class Main {
String fname = "John";
String lname = "Doe";
int age = 24;

public static void main(String[] args) {


Main myObj = new Main();
System.out.println("Name: " + myObj.fname + " " + myObj.lname);
System.out.println("Age: " + myObj.age);
}
}
Următorul capitol vă va învăța cum să creați metode de clasă și cum să le accesați
cu obiecte.
Metode de clasă Java
Ați învățat din capitolul Metode Java că metodele sunt declarate în cadrul unei clase
și că sunt folosite pentru a efectua anumite acțiuni:
Exemplu
Creați o metodă numită myMethod()în Main:
public class Main {
static void myMethod() {
System.out.println("Hello World!");
}
}

myMethod()tipărește un text (acțiunea), când este numit . Pentru a apela o metodă,


scrieți numele metodei urmat de două paranteze () și punct și virgulă ;
Exemplu
Înăuntru main, sunați myMethod():
public class Main {
static void myMethod() {
System.out.println("Hello World!");
}

public static void main(String[] args) {


myMethod();
}
}

// Outputs "Hello World!"

Static vs non-static
Veți vedea adesea programe Java care au atribute și metode static.public
În exemplul de mai sus, am creat o static metodă, ceea ce înseamnă că poate fi
accesată fără a crea un obiect al clasei, spre deosebire de public, care poate fi
accesat doar de obiecte:
Exemplu
Un exemplu pentru a demonstra diferențele dintre staticși public metode :
public class Main {
// Static method
static void myStaticMethod() {
System.out.println("Static methods can be called without creating
objects");
}

// Public method
public void myPublicMethod() {
System.out.println("Public methods must be called by creating objects");
}

// Main method
public static void main(String[] args) {
myStaticMethod(); // Call the static method
// myPublicMethod(); This would compile an error
Main myObj = new Main(); // Create an object of Main
myObj.myPublicMethod(); // Call the public method on the object
}
}

Notă: Veți afla mai multe despre aceste cuvinte cheie (numite modificatori)
în capitolul Modificatori Java .
Metode de acces cu un obiect
Exemplu
Creați un obiect Car numit myCar. Apelați metodele fullThrottle()și pe obiect și
rulați programul:speed()myCar
// Create a Main class
public class Main {

// Create a fullThrottle() method


public void fullThrottle() {
System.out.println("The car is going as fast as it can!");
}

// Create a speed() method and add a parameter


public void speed(int maxSpeed) {
System.out.println("Max speed is: " + maxSpeed);
}

// Inside main, call the methods on the myCar object


public static void main(String[] args) {
Main myCar = new Main(); // Create a myCar object
myCar.fullThrottle(); // Call the fullThrottle() method
myCar.speed(200); // Call the speed() method
}
}

// The car is going as fast as it can!


// Max speed is: 200
Exemplu explicat
1) Am creat o Mainclasă personalizată cu classcuvântul cheie.
2) Am creat metodele fullThrottle()și în clasă. speed()Main
3) fullThrottle()Metoda și speed() metoda vor tipări ceva text, atunci când sunt
apelate.
4) speed() Metoda acceptă un intparametru numit maxSpeed- îl vom folosi în 8) .
5) Pentru a folosi Mainclasa și metodele acesteia, trebuie să creăm
un obiect al Mainclasei.
6) Apoi, accesați main()metoda, despre care știți că este o metodă Java încorporată
care rulează programul dvs. (orice cod din main este executat).
7) Folosind newcuvântul cheie am creat un obiect cu numele myCar.
8) Apoi, apelăm metodele fullThrottle()și pe obiect și rulăm programul folosind
numele obiectului ( ), urmat de un punct ( ), urmat de numele metodei
( și ). Observați că adăugăm un parametru de 200 în
interiorul metodei.speed() myCarmyCar.fullThrottle(); speed(200);int speed()
Sa nu uiti asta..
Punctul ( .) este folosit pentru a accesa atributele și metodele obiectului.
Pentru a apela o metodă în Java, scrieți numele metodei urmat de un set de
paranteze () , urmat de un punct și virgulă ( ;).
O clasă trebuie să aibă un nume de fișier care se potrivește ( Mainși Main.java ).

Utilizarea mai multor clase


După cum am specificat în capitolul Clase , este o practică bună să creați un obiect
al unei clase și să îl accesați într-o altă clasă.
Amintiți-vă că numele fișierului java ar trebui să se potrivească cu numele clasei. În
acest exemplu, am creat două fișiere în același director:
 Main.java
 În al doilea rând.java
Main.java
public class Main {
public void fullThrottle() {
System.out.println("The car is going as fast as it can!");
}

public void speed(int maxSpeed) {


System.out.println("Max speed is: " + maxSpeed);
}
}
În al doilea rând.java
class Second {
public static void main(String[] args) {
Main myCar = new Main(); // Create a myCar object
myCar.fullThrottle(); // Call the fullThrottle() method
myCar.speed(200); // Call the speed() method
}
}
Când ambele fișiere au fost compilate:
C:\Users\Your Name>javac Main.java
C:\Users\Your Name>javac Second.java
Rulați fișierul Second.java:
C:\Users\Your Name>java Second
Și rezultatul va fi:
The car is going as fast as it can!
Max speed is: 200
Constructori Java
Un constructor în Java este o metodă specială care este folosită pentru a inițializa
obiecte. Constructorul este apelat atunci când este creat un obiect al unei
clase. Poate fi folosit pentru a seta valori inițiale pentru atributele obiectului:
Exemplu
Creați un constructor:
// Create a Main class
public class Main {
int x; // Create a class attribute

// Create a class constructor for the Main class


public Main() {
x = 5; // Set the initial value for the class attribute x
}

public static void main(String[] args) {


Main myObj = new Main(); // Create an object of class Main (This will
call the constructor)
System.out.println(myObj.x); // Print the value of x
}
}

// Outputs 5

Rețineți că numele constructorului trebuie să se potrivească cu numele clasei și


nu poate avea un tip de returnare (cum ar fi void).
De asemenea, rețineți că constructorul este apelat atunci când obiectul este creat.
Toate clasele au constructori implicit: dacă nu creați singur un constructor de clasă,
Java creează unul pentru dvs. Cu toate acestea, atunci nu puteți seta valori inițiale
pentru atributele obiectului.

Parametrii constructorului
Constructorii pot lua, de asemenea, parametri, care sunt utilizați pentru a inițializa atribute.
Următorul exemplu adaugă un int yparametru la constructor. În interiorul constructorului setăm x la y (x=y). Când apelăm
constructorul, trecem un parametru constructorului (5), care va seta valoarea lui x la 5:
Exemplu
public class Main {
int x;

public Main(int y) {
x = y;
}

public static void main(String[] args) {


Main myObj = new Main(5);
System.out.println(myObj.x);
}
}

// Outputs 5

Incearca-l tu insuti "


Puteți avea oricât de mulți parametri doriți:
Exemplu
public class Main {
int modelYear;
String modelName;

public Main(int year, String name) {


modelYear = year;
modelName = name;
}

public static void main(String[] args) {


Main myCar = new Main(1969, "Mustang");
System.out.println(myCar.modelYear + " " + myCar.modelName);
}
}

// Outputs 1969 Mustang

Modificatori
Până acum, sunteți destul de familiar cu publiccuvântul cheie care apare în
aproape toate exemplele noastre:
public class Main
Cuvântul publiccheie este un modificator de acces , ceea ce înseamnă că este
folosit pentru a seta nivelul de acces pentru clase, atribute, metode și constructori.
Împărțim modificatorii în două grupuri:
 Modificatori de acces - controlează nivelul de acces
 Modificatori non-acces - nu controlează nivelul de acces, dar oferă alte
funcționalități

Modificatori de acces
Pentru clase , puteți utiliza oricare publicsau implicit :
Modifier Description Try it

public The class is accessible by any other class Try it


»

default The class is only accessible by classes in the same package. This is used when you Try it
don't specify a modifier. You will learn more about packages in the Packages »
chapter
Pentru atribute, metode și constructori , puteți utiliza unul dintre următoarele:
Modifier Description Try it

public The code is accessible for all classes Try it


»
private The code is only accessible within the declared class Try it
»

default The code is only accessible in the same package. This is used when you don't Try it
specify a modifier. You will learn more about packages in the Packages chapter »

protected The code is accessible in the same package and subclasses. You will learn more Try it
about subclasses and superclasses in the Inheritance chapter »
Modificatori de non-acces
Pentru cursuri , puteți folosi finalfie abstract:
Modifier Description Try
it

final The class cannot be inherited by other classes (You will learn more about Try
inheritance in the Inheritance chapter) it »

abstract The class cannot be used to create objects (To access an abstract class, it must be Try
inherited from another class. You will learn more about inheritance and abstraction it »
in the Inheritance and Abstraction chapters)
Pentru atribute și metode , puteți utiliza una dintre următoarele:
Modifier Description

final Attributes and methods cannot be overridden/modified

static Attributes and methods belongs to the class, rather than an object

abstract Can only be used in an abstract class, and can only be used on methods. The method
does not have a body, for example abstract void run();. The body is provided by the
subclass (inherited from). You will learn more about inheritance and abstraction in
the Inheritance and Abstraction chapters

transient Attributes and methods are skipped when serializing the object containing them

synchronized Methods can only be accessed by one thread at a time

volatile The value of an attribute is not cached thread-locally, and is always read from the
"main memory"

Final
Dacă nu doriți posibilitatea de a suprascrie valorile atributelor existente, declarați
atributele ca final:
Exemplu
public class Main {
final int x = 10;
final double PI = 3.14;

public static void main(String[] args) {


Main myObj = new Main();
myObj.x = 50; // will generate an error: cannot assign a value to a final
variable
myObj.PI = 25; // will generate an error: cannot assign a value to a
final variable
System.out.println(myObj.x);
}
}
Static
O staticmetodă înseamnă că poate fi accesată fără a crea un obiect al clasei, spre
deosebire de public:
Exemplu
Un exemplu pentru a demonstra diferențele dintre staticși publicmetode:
public class Main {
// Static method
static void myStaticMethod() {
System.out.println("Static methods can be called without creating
objects");
}

// Public method
public void myPublicMethod() {
System.out.println("Public methods must be called by creating objects");
}

// Main method
public static void main(String[ ] args) {
myStaticMethod(); // Call the static method
// myPublicMethod(); This would output an error

Main myObj = new Main(); // Create an object of Main


myObj.myPublicMethod(); // Call the public method
}
}

Abstract
O abstractmetodă aparține unei abstractclase și nu are un corp. Corpul este
furnizat de subclasa:
Exemplu
// Code from filename: Main.java
// abstract class
abstract class Main {
public String fname = "John";
public int age = 24;
public abstract void study(); // abstract method
}

// Subclass (inherit from Main)


class Student extends Main {
public int graduationYear = 2018;
public void study() { // the body of the abstract method is provided here
System.out.println("Studying all day long");
}
}
// End code from filename: Main.java

// Code from filename: Second.java


class Second {
public static void main(String[] args) {
// create an object of the Student class (which inherits attributes and
methods from Main)
Student myObj = new Student();

System.out.println("Name: " + myObj.fname);


System.out.println("Age: " + myObj.age);
System.out.println("Graduation Year: " + myObj.graduationYear);
myObj.study(); // call abstract method
}
}

Încapsulare
Sensul încapsulării este de a vă asigura că datele „sensibile” sunt ascunse de
utilizatori. Pentru a realiza acest lucru, trebuie să:
 declara variabilele/atributele clasei caprivate
 furnizează metode publice get și set pentru a accesa și actualiza valoarea
unei private variabile
Obțineți și setați
Ați învățat din capitolul anterior că privatevariabilele pot fi accesate numai în cadrul
aceleiași clase (o clasă din afara nu are acces la ea). Cu toate acestea, este posibil
să le accesăm dacă oferim metode publice de obținere și setare .
Metoda getreturnează valoarea variabilei, iar setmetoda setează valoarea.
Sintaxa pentru ambele este că încep cu oricare getsau set, urmată de numele
variabilei, cu prima literă în majuscule:
Exemplu
public class Person {
private String name; // private = restricted access

// Getter
public String getName() {
return name;
}

// Setter
public void setName(String newName) {
this.name = newName;
}
}
Exemplu explicat
Metoda getreturnează valoarea variabilei name.
Metoda setia un parametru ( newName) și îl
atribuie namevariabilei. Cuvântul thischeie este folosit pentru a se referi la obiectul
curent.
Cu toate acestea, deoarece namevariabila este declarată ca private, nu
o putem accesa din afara acestei clase:
Exemplu
public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.name = "John"; // error
System.out.println(myObj.name); // error
}
}
Dacă variabila a fost declarată ca public, ne-am aștepta la următoarea ieșire:
John
Cu toate acestea, pe măsură ce încercăm să accesăm o privatevariabilă, obținem o
eroare:
MyClass.java:4: error: name has private access in Person
myObj.name = "John";
^
MyClass.java:5: error: name has private access in Person
System.out.println(myObj.name);
^
2 errors
În schimb, folosim metodele getName()și setName()pentru a accesa și actualiza
variabila:
Exemplu
public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.setName("John"); // Set the value of the name variable to "John"
System.out.println(myObj.getName());
}
}

// Outputs "John"

De ce încapsulare?
 Control mai bun al atributelor și metodelor clasei
 Atributele clasei pot fi făcute doar în citire (dacă utilizați numai getmetoda)
sau numai în scris (dacă utilizați numai setmetoda)
 Flexibil: programatorul poate schimba o parte a codului fără a afecta alte
părți
 Securitate crescută a datelor

Pachete Java și API


Un pachet în Java este folosit pentru a grupa clase înrudite. Gândiți-vă la el ca
la un folder într-un director de fișiere . Folosim pachete pentru a evita
conflictele de nume și pentru a scrie un cod mai bine întreținut. Pachetele sunt
împărțite în două categorii:
 Pachete încorporate (pachete din API-ul Java)
 Pachete definite de utilizator (creați-vă propriile pachete)

Pachete încorporate
API-ul Java este o bibliotecă de clase prescrise, care sunt libere de utilizat, incluse
în mediul de dezvoltare Java.
Biblioteca conține componente pentru gestionarea intrărilor, programarea bazei de
date și multe altele. Lista completă poate fi găsită pe site-ul
Oracles: https://docs.oracle.com/javase/8/docs/api/ .
Biblioteca este împărțită în pachete și clase . Adică puteți importa fie o singură
clasă (împreună cu metodele și atributele sale), fie un pachet întreg care conține
toate clasele care aparțin pachetului specificat.
Pentru a utiliza o clasă sau un pachet din bibliotecă, trebuie să
utilizați import cuvântul cheie:
Sintaxă
import package.name.Class; // Import a single class
import package.name.*; // Import the whole package
Importă o clasă
Dacă găsiți o clasă pe care doriți să o utilizați, de exemplu, Scannerclasa, care este
folosită pentru a obține intrarea utilizatorului , scrieți următorul cod:
Exemplu
import java.util.Scanner;
În exemplul de mai sus, java.utileste un pachet, în timp ce Scannereste o clasă
a java.utilpachetului.
Pentru a utiliza Scannerclasa, creați un obiect al clasei și utilizați oricare dintre
metodele disponibile găsite în Scannerdocumentația clasei. În exemplul nostru, vom
folosi nextLine()metoda, care este folosită pentru a citi o linie completă:
Exemplu
Folosind Scannerclasa pentru a obține intrarea utilizatorului:
import java.util.Scanner;

class MyClass {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter username");

String userName = myObj.nextLine();


System.out.println("Username is: " + userName);
}
}

Importați un pachet
Există multe pachete din care să alegeți. În exemplul anterior, am
folosit Scannerclasa din java.utilpachet. Acest pachet conține, de asemenea,
facilități de dată și oră, generator de numere aleatoare și alte clase de utilitate.
Pentru a importa un pachet întreg, încheiați propoziția cu un semn asterisc
( *). Următorul exemplu va importa TOATE clasele din java.utilpachet:
Exemplu
import java.util.*;
Pachete definite de utilizator
Pentru a vă crea propriul pachet, trebuie să înțelegeți că Java folosește un director
de sistem de fișiere pentru a le stoca. La fel ca folderele de pe computer:
Exemplu
└── root
└── mypack
└── MyPackageClass.java
Pentru a crea un pachet, utilizați packagecuvântul cheie:
MyPackageClass.java
package mypack;
class MyPackageClass {
public static void main(String[] args) {
System.out.println("This is my package!");
}
}
Salvați fișierul ca MyPackageClass.java și compilați-l:
C:\Users\Your Name>javac MyPackageClass.java
Apoi compilați pachetul:
C:\Users\Your Name>javac -d . MyPackageClass.java
Acest lucru forțează compilatorul să creeze pachetul „mypack”.
Cuvântul -dcheie specifică destinația unde să salveze fișierul de clasă. Puteți folosi
orice nume de director, cum ar fi c:/user (windows) sau, dacă doriți să păstrați
pachetul în același director, puteți utiliza semnul punct „ .”, ca în exemplul de mai
sus.
Notă: Numele pachetului trebuie scris cu litere mici pentru a evita conflictul cu
numele claselor.
Când am compilat pachetul din exemplul de mai sus, a fost creat un folder nou,
numit „mypack”.
Pentru a rula fișierul MyPackageClass.java , scrieți următoarele:
C:\Users\Your Name>java mypack.MyPackageClass
Ieșirea va fi:
This is my package!

Moștenirea Java (subclasă și superclasă)


În Java, este posibil să moșteniți atribute și metode de la o clasă la alta. Grupăm
„conceptul de moștenire” în două categorii:
 subclasa (copil) - clasa care moștenește de la o altă clasă
 superclasă (părinte) - clasa de la care se moștenește
Pentru a moșteni dintr-o clasă, utilizați extends cuvântul cheie.
În exemplul de mai jos, Carclasa (subclasa) moștenește atributele și metodele
din Vehicleclasă (superclasa):
Exemplu
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}

class Car extends Vehicle {


private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {

// Create a myCar object


Car myCar = new Car();

// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();

// Display the value of the brand attribute (from the Vehicle class) and
the value of the modelName from the Car class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}

Incearca-l tu insuti "


Ați observat protectedmodificatorul din Vehicul?
Am setat atributul mărcii din Vehicul la un protected modificator de acces . Dacă
ar fi setat la private, clasa Car nu ar putea să o acceseze.
De ce și când să folosiți „moștenirea”?
- Este util pentru reutilizarea codului: reutilizați atributele și metodele unei clase
existente atunci când creați o clasă nouă.
Sfat: aruncați o privire și la capitolul următor, Polimorfism , care folosește metode
moștenite pentru a efectua diferite sarcini.
Cuvântul cheie final
Dacă nu doriți ca alte clase să moștenească dintr-o clasă, utilizați finalcuvântul
cheie:
Dacă încercați să accesați o finalclasă, Java va genera o eroare:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
Ieșirea va fi cam așa:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
^
1 error)

Polimorfismul Java
Polimorfismul înseamnă „multe forme” și apare atunci când avem multe clase care
sunt legate între ele prin moștenire.
După cum am specificat în capitolul anterior; Moștenirea ne permite să moștenim
atribute și metode din altă clasă. Polimorfismul folosește acele metode pentru a
îndeplini diferite sarcini. Acest lucru ne permite să efectuăm o singură acțiune în
moduri diferite.
De exemplu, gândiți-vă la o superclasă numită Animalcare are o metodă
numită animalSound(). Subclasele de animale ar putea fi Porci, Pisici, Câini, Păsări -
Și au, de asemenea, propria lor implementare a unui sunet de animal (porcul
ușoară și pisica miaună etc.):
Exemplu
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}

class Pig extends Animal {


public void animalSound() {
System.out.println("The pig says: wee wee");
}
}

class Dog extends Animal {


public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
Amintiți-vă din capitolul Moștenire că folosim extendscuvântul cheie pentru a
moșteni dintr-o clasă.
Acum putem crea Pigși Dogobiecte și apelăm animalSound()metoda pe ambele:
Exemplu
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}

class Dog extends Animal {


public void animalSound() {
System.out.println("The dog says: bow wow");
}
}

class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Create a Animal object
Animal myPig = new Pig(); // Create a Pig object
Animal myDog = new Dog(); // Create a Dog object
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
De ce și când să folosiți „moștenirea” și „polimorfismul”?
- Este util pentru reutilizarea codului: reutilizați atributele și metodele unei clase
existente atunci când creați o clasă nouă.

Clasele interne Java


În Java, este, de asemenea, posibil să imbricați clase (o clasă în cadrul unei
clase). Scopul claselor imbricate este de a grupa clase care aparțin împreună, ceea
ce face codul mai ușor de citit și mai ușor de întreținut.
Pentru a accesa clasa interioară, creați un obiect din clasa exterioară, apoi creați un
obiect din clasa interioară:
Exemplu
class OuterClass {
int x = 10;

class InnerClass {
int y = 5;
}
}

public class Main {


public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.y + myOuter.x);
}
}

// Outputs 15 (5 + 10)

Clasa interioară privată


Spre deosebire de o clasă „obișnuită”, o clasă interioară poate
fi privatesau protected. Dacă nu doriți ca obiectele din exterior să acceseze clasa
interioară, declarați clasa ca private:
Exemplu
class OuterClass {
int x = 10;

private class InnerClass {


int y = 5;
}
}

public class Main {


public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.y + myOuter.x);
}
}

Dacă încercați să accesați o clasă interioară privată dintr-o clasă exterioară, apare o
eroare:
Main.java:13: error: OuterClass.InnerClass has private access in
OuterClass
OuterClass.InnerClass myInner = myOuter.new InnerClass();
^

Clasa interioară statică


O clasă interioară poate fi și static, ceea ce înseamnă că o puteți accesa fără a
crea un obiect din clasa exterioară:
Exemplu
class OuterClass {
int x = 10;

static class InnerClass {


int y = 5;
}
}

public class Main {


public static void main(String[] args) {
OuterClass.InnerClass myInner = new OuterClass.InnerClass();
System.out.println(myInner.y);
}
}

// Outputs 5

Notă: la fel ca staticatributele și metodele, o staticclasă interioară nu are acces


la membrii clasei exterioare.
Accesați clasa exterioară din clasa interioară
Un avantaj al claselor interioare este că pot accesa atributele și metodele clasei exterioare:
Exemplu
class OuterClass {
int x = 10;

class InnerClass {
public int myInnerMethod() {
return x;
}
}
}

public class Main {


public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.myInnerMethod());
}
}

// Outputs 10

Abstracția Java
Clase și metode abstracte
Abstracția datelor este procesul prin care se ascunde anumite detalii și se afișează
utilizatorului doar informații esențiale.
Abstracția poate fi realizată fie cu clase abstracte, fie cu interfețe (despre care
veți afla mai multe în capitolul următor).
Cuvântul abstractcheie este un modificator fără acces, folosit pentru clase și
metode:
 Clasa abstracta: este o clasa restrictionata care nu poate fi folosita pentru a
crea obiecte (pentru a o accesa, trebuie mostenita de la o alta clasa).

Metoda abstractă: poate fi folosită doar într-o clasă abstractă și nu are



corp. Corpul este furnizat de subclasa (moștenit de la).
O clasă abstractă poate avea atât metode abstracte, cât și obișnuite:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}

Din exemplul de mai sus, nu este posibil să se creeze un obiect din clasa Animal:
Animal myObj = new Animal(); // will generate an error
Pentru a accesa clasa abstractă, aceasta trebuie să fie moștenită de la o altă
clasă. Să convertim clasa Animal pe care am folosit-o în capitolul Polimorfism într-o
clasă abstractă:
Amintiți-vă din capitolul Moștenire că folosim extendscuvântul cheie pentru a
moșteni dintr-o clasă.
Exemplu
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}

// Subclass (inherit from Animal)


class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}

class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}

De ce și când să folosiți clase și metode abstracte?


Pentru a obține securitate - ascunde anumite detalii și arată doar detaliile
importante ale unui obiect.
Notă: Abstracția poate fi realizată și cu Interfețe , despre care veți afla mai
multe în capitolul următor.

Interfețe
O altă modalitate de a realiza abstractizarea în Java este cu interfețe.
An interfaceeste o „ clasă abstractă ” complet care este folosită pentru a grupa
metode înrudite cu corpuri goale:
Exemplu
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void run(); // interface method (does not have a body)
}

Pentru a accesa metodele de interfață, interfața trebuie să fie „implementată” (cum


ar fi moștenită) de o altă clasă cu implements cuvântul cheie (în loc
de extends). Corpul metodei interfeței este furnizat de clasa „implement”:
Exemplu
// Interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface


class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}

class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Note despre interfețe:
 Ca și clasele abstracte , interfețele nu pot fi folosite pentru a crea obiecte
(în exemplul de mai sus, nu este posibil să se creeze un obiect „Animal” în
MyMainClass)
 Metodele de interfață nu au un corp - corpul este furnizat de clasa
„implementare”.
 La implementarea unei interfețe, trebuie să suprascrieți toate metodele
acesteia
 Metodele de interfață sunt implicite abstractși public
 Atributele interfeței sunt implicite publicși staticfinal
 O interfață nu poate conține un constructor (deoarece nu poate fi folosită
pentru a crea obiecte)
De ce și când să folosiți interfețele?
1) Pentru a obține securitate - ascunde anumite detalii și arată doar detaliile
importante ale unui obiect (interfață).
2) Java nu acceptă „moștenirea multiplă” (o clasă poate moșteni doar de la o
superclasă). Cu toate acestea, se poate realiza cu interfețe, deoarece clasa
poate implementa mai multe interfețe. Notă: Pentru a implementa mai multe
interfețe, separați-le cu o virgulă (vezi exemplul de mai jos).

Interfețe multiple
Pentru a implementa mai multe interfețe, separați-le cu o virgulă:
Exemplu
interface FirstInterface {
public void myMethod(); // interface method
}

interface SecondInterface {
public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {


public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}

class Main {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}

Enumări
An enumeste o „clasă” specială care reprezintă un grup
de constante (variabile neschimbabile, precum finalvariabilele).
Pentru a crea un enum, utilizați enumcuvântul cheie (în loc de clasă sau
interfață) și separați constantele cu o virgulă. Rețineți că acestea ar trebui
să fie cu litere mari:
Exemplu
enum Level {
LOW,
MEDIUM,
HIGH
}
Puteți accesa enumconstante cu sintaxa punctului :
Level myVar = Level.MEDIUM;
Incearca-l tu insuti "
Enum este prescurtarea pentru „enumerări”, care înseamnă „enumerate în
mod specific”.

Enum în interiorul unei clase


Incearca-l tu insuti " De asemenea, puteți avea enumo clasă în interiorul clasei:
Exemplu
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}

public static void main(String[] args) {


Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
Ieșirea va fi:
MEDIUM

Enum într-o declarație Switch


Enumerările sunt adesea folosite în switchinstrucțiuni pentru a verifica valorile
corespunzătoare:
Exemplu
enum Level {
LOW,
MEDIUM,
HIGH
}

public class Main {


public static void main(String[] args) {
Level myVar = Level.MEDIUM;

switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
Ieșirea va fi:
Medium level
Buclă printr-o enumerare
Tipul enum are o values()metodă, care returnează o matrice cu toate constantele
enumerare. Această metodă este utilă atunci când doriți să parcurgeți constantele
unei enumerari:
Exemplu
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
Ieșirea va fi:
LOW
MEDIUM
HIGH
Incearca-l tu insuti "
Diferența dintre enumerari și clase
O enumcutie, la fel ca o class, are atribute și metode. Singura diferență este că
constantele enumerare sunt public, staticși final (neschimbabile - nu pot fi
suprascrise).
An enumnu poate fi folosit pentru a crea obiecte și nu poate extinde alte clase (dar
poate implementa interfețe).
De ce și când să folosiți enumerarea?
Folosiți enumări atunci când aveți valori despre care știți că nu se vor schimba, cum
ar fi zilele lunii, zilele, culorile, pachetul de cărți etc.
Intrarea utilizatorului Java
Clasa Scannereste folosită pentru a obține intrarea utilizatorului și se găsește
în java.utilpachet.
Pentru a utiliza Scannerclasa, creați un obiect al clasei și utilizați oricare dintre
metodele disponibile găsite în Scannerdocumentația clasei. În exemplul nostru, vom
folosi nextLine()metoda, care este folosită pentru a citi șirurile de caractere:
Exemplu
import java.util.Scanner; // Import the Scanner class

class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter username");

String userName = myObj.nextLine(); // Read user input


System.out.println("Username is: " + userName); // Output user input
}
}.
Tipuri de intrare
În exemplul de mai sus, am folosit nextLine()metoda, care este folosită pentru a
citi șiruri. Pentru a citi alte tipuri, consultați tabelul de mai jos:
Method Description

nextBoolean() Reads a boolean value from the user

nextByte() Reads a byte value from the user

nextDouble() Reads a double value from the user

nextFloat() Reads a float value from the user

nextInt() Reads a int value from the user

nextLine() Reads a String value from the user

nextLong() Reads a long value from the user

nextShort() Reads a short value from the user


În exemplul de mai jos, folosim diferite metode pentru a citi date de diferite tipuri:
Exemplu
import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);

System.out.println("Enter name, age and salary:");

// String input
String name = myObj.nextLine();

// Numerical input
int age = myObj.nextInt();
double salary = myObj.nextDouble();

// Output input by user


System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Salary: " + salary);
}
}
Notă: Dacă introduceți o introducere greșită (de exemplu, text într-o introducere
numerică), veți primi un mesaj de excepție/eroare (cum ar fi
„InputMismatchException”).
Puteți citi mai multe despre excepții și despre cum să gestionați erorile în capitolul
Excepții .
Java Date and Time
Java Dates
Java does not have a built-in Date class, but we can import the java.time package to work with the date and time API. The
package includes many date and time classes. For example:

Date Java
Java nu are o clasă Date încorporată, dar putem importa pachetul java.time pentru a
lucra cu API-ul de dată și oră. Pachetul include multe clase de dată și oră. De
exemplu:
Class Description
LocalDate
Represents a date (year, month, day (yyyy-MM-dd))
LocalTime
Represents a time (hour, minute, second and nanoseconds (HH-mm-ss-ns))
LocalDateTime
Represents both a date and a time (yyyy-MM-dd-HH-mm-ss-ns)
DateTimeFormatter
Formatter for displaying and parsing date-time objects

Display Current Date


Pentru a afișa data
To display the current date, import the java.time.LocalDate class, and use its now() method:

curentă, importați clasa java.time.LocalDate și utilizați metoda sa now():


Example
import java.time.LocalDate; // import the LocalDate class

public class Main {


public static void main(String[] args) {
LocalDate myObj = LocalDate.now(); // Create a date object
System.out.println(myObj); // Display the current date
}
}
The output will be:
2022-02-13
Try it Yourself »

Display Current Time


To display the current time (hour, minute, second, and nanoseconds), import the java.time.LocalTime class, and use

Pentru a afișa ora curentă (oră, minut, secundă și nanosecunde), importați


its now() method:

clasa java.time.LocalTime și utilizați metoda sa now():


Example
import java.time.LocalTime; // import the LocalTime class

public class Main {


public static void main(String[] args) {
LocalTime myObj = LocalTime.now();
System.out.println(myObj);
}
}
The output will be:
10:52:46.430692
Try it Yourself »
ADVERTISEMENT

Display Current Date and Time


Pentru a afișa
To display the current date and time, import the java.time.LocalDateTime class, and use its now() method:

data și ora curente, importați clasa java.time.LocalDateTime și utilizați metoda sa


now():
Example
import java.time.LocalDateTime; // import the LocalDateTime class

public class Main {


public static void main(String[] args) {
LocalDateTime myObj = LocalDateTime.now();
System.out.println(myObj);
}
}
The output will be:
2022-02-13T10:52:46.478171

Formatting Date and Time


The "T" in the example above is used to separate the date from the time. You can use the DateTimeFormatter class with

the ofPattern() method in the same package to format or parse date-time objects. The following example will remove both the "T"

Formatarea datei și orei


and nanoseconds from the date-time:

„T” din exemplul de mai sus este folosit pentru a separa data de ora. Puteți utiliza
clasa DateTimeFormatter cu metoda ofPattern() în același pachet pentru a formata sau
a analiza obiecte dată-oră. Următorul exemplu va elimina atât „T” cât și
nanosecundele din data-oră:
Example
import java.time.LocalDateTime; // Import the LocalDateTime class
import java.time.format.DateTimeFormatter; // Import the DateTimeFormatter class

public class Main {


public static void main(String[] args) {
LocalDateTime myDateObj = LocalDateTime.now();
System.out.println("Before formatting: " + myDateObj);
DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");

String formattedDate = myDateObj.format(myFormatObj);


System.out.println("After formatting: " + formattedDate);
}
}
The output will be:
Before Formatting: 2022-02-13T10:52:46.485356
After Formatting: 13-02-2022 10:52:46
Try it Yourself »
The ofPattern() method accepts all sorts of values, if you want to display the date and time in a different format. For example:

Value Example Tryit

yyyy-MM-dd "1988-09-29" Try it »

dd/MM/yyyy "29/09/1988" Try it »

dd-MMM-yyyy "29-Sep-1988" Try it »

E, MMM dd yyyy "Thu, Sep 29 1988" Try it »


Java ArrayList
The ArrayList class is a resizable array, which can be found in the java.util package.

The difference between a built-in array and an ArrayList in Java, is that the size of an array cannot be modified (if you want to

add or remove elements to/from an array, you have to create a new one). While elements can be added and removed from

Clasa ArrayList este o matrice


an ArrayList whenever you want. The syntax is also slightly different:

redimensionabilă, care poate fi găsită în pachetul java.util.


Diferența dintre o matrice încorporată și un ArrayList în Java este că dimensiunea
unei matrice nu poate fi modificată (dacă doriți să adăugați sau să eliminați elemente
la/din matrice, trebuie să creați unul nou). În timp ce elementele pot fi adăugate și
eliminate dintr-o ArrayList oricând doriți. Sintaxa este, de asemenea, ușor diferită:
Example
Create an ArrayList object called cars that will store strings:
import java.util.ArrayList; // import the ArrayList class

ArrayList<String> cars = new ArrayList<String>(); // Create an ArrayList object


If you don't know what a package is, read our Java Packages Tutorial.

Add Items
Clasa
The ArrayList class has many useful methods. For example, to add elements to the ArrayList, use the add() method:

ArrayList are multe metode utile. De exemplu, pentru a adăuga elemente la ArrayList,
utilizați metoda add():
Example
import java.util.ArrayList;

public class Main {


public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}

Access an Item
Pentru a accesa un
To access an element in the ArrayList, use the get() method and refer to the index number:

element din ArrayList, utilizați metoda get() și consultați numărul de index:


Example
cars.get(0);
Try it Yourself »
Amintiți-vă: Indicii de
Remember: Array indexes start with 0: [0] is the first element. [1] is the second element, etc.

matrice încep cu 0: [0] este primul element. [1] este al doilea element et
Change an Item
Pentru a modifica un element,
To modify an element, use the set() method and refer to the index number:

utilizați metoda set() și consultați numărul de index:


Example
cars.set(0, "Opel");
Try it Yourself »
Remove an Item
Pentru a elimina un element,
To remove an element, use the remove() method and refer to the index number:

utilizați metoda remove() și consultați numărul de index:


Example
cars.remove(0);

To remove all the elements in the ArrayList, use the clear() method: Pentru a elimina toate elementele din
ArrayList, utilizați metoda clear():
Example
cars.clear();

ArrayList Size
To find out how many elements an ArrayList have, use the size method: Pentru a elimina toate elementele din
ArrayList, utilizați metoda clear():
Example
cars.size();

Loop Through an ArrayList


Loop through the elements of an ArrayList with a for loop, and use the size() method to specify how many times the loop should

Circulați prin elementele unui ArrayList cu o buclă for și utilizați metoda size()
run:

pentru a specifica de câte ori ar trebui să ruleze bucla:


Example
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
for (int i = 0; i < cars.size(); i++) {
System.out.println(cars.get(i));
}
}
}
You can also loop through an ArrayList with the for-each loop:

Example
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
for (String i : cars) {
System.out.println(i);
}
}
}

Other Types
Elements in an ArrayList are actually objects. In the examples above, we created elements (objects) of type "String". Remember

that a String in Java is an object (not a primitive type). To use other types, such as int, you must specify an equivalent wrapper

Elementele
class: Integer. For other primitive types, use: Boolean for boolean, Character for char, Double for double, etc:

dintr-o ArrayList sunt de fapt obiecte. În exemplele de mai sus, am creat elemente
(obiecte) de tip „String”. Amintiți-vă că un șir în Java este un obiect (nu un tip
primitiv). Pentru a utiliza alte tipuri, cum ar fi int, trebuie să specificați o clasă
wrapper echivalentă: Integer. Pentru alte tipuri primitive, utilizați: Boolean pentru
boolean, Character pentru char, Double pentru dublu etc.:
Example
Create an ArrayList to store numbers (add elements of type Integer):
import java.util.ArrayList;

public class Main {


public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(10);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(25);
for (int i : myNumbers) {
System.out.println(i);
}
}
}
Try it Yourself »

Sort an ArrayList
Another useful class in the java.util package is the Collections class, which include the sort() method for sorting lists

O altă clasă utilă din pachetul java.util este clasa Collections, care
alphabetically or numerically:

include metoda sort() pentru sortarea listelor alfabetic sau numeric:


Example
Sort an ArrayList of Strings:
import java.util.ArrayList;
import java.util.Collections; // Import the Collections class

public class Main {


public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
Collections.sort(cars); // Sort cars
for (String i : cars) {
System.out.println(i);
}
}
}

Example
Sort an ArrayList of Integers:
import java.util.ArrayList;
import java.util.Collections; // Import the Collections class

public class Main {


public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(33);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(34);
myNumbers.add(8);
myNumbers.add(12);

Collections.sort(myNumbers); // Sort myNumbers

for (int i : myNumbers) {


System.out.println(i);
}
}
}

Java LinkedList
În capitolul anterior, ați aflat despre ArrayListclasă. Clasa LinkedListeste aproape
identică cu ArrayList:
Exemplu
// Import the LinkedList class
import java.util.LinkedList;

public class Main {


public static void main(String[] args) {
LinkedList<String> cars = new LinkedList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}

ArrayList vs. LinkedList


Clasa LinkedListeste o colecție care poate conține multe obiecte de același tip, la
fel ca ArrayList.
Clasa LinkedListare toate aceleași metode ca și ArrayListclasa, deoarece ambele
implementează Listinterfața. Aceasta înseamnă că puteți adăuga articole, schimba
elemente, elimina articole și șterge lista în același mod.
Cu toate acestea, în timp ce ArrayListclasa și LinkedListclasa pot fi utilizate în
același mod, ele sunt construite foarte diferit.
Cum funcționează ArrayList
Clasa ArrayListare o matrice obișnuită în interiorul ei. Când un element este
adăugat, acesta este plasat în matrice. Dacă matricea nu este suficient de mare, se
creează o matrice nouă, mai mare, pentru a o înlocui pe cea veche, iar cea veche
este eliminată.
Cum funcționează LinkedList
Își LinkedListdepozitează articolele în „containere”. Lista are o legătură către
primul container și fiecare container are o legătură către următorul container din
listă. Pentru a adăuga un element în listă, elementul este plasat într-un nou
container și acel container este legat de unul dintre celelalte containere din listă.
Când să utilizați
Utilizați un ArrayListpentru stocarea și accesarea datelor și LinkedList pentru
manipularea datelor.
Metode LinkedList
În multe cazuri, ArrayListeste mai eficient, deoarece este obișnuit să aveți nevoie
de acces la elemente aleatorii din listă, dar LinkedListoferă mai multe metode
pentru a face anumite operațiuni mai eficient:
Method Description Try it

addFirst() Adds an item to the beginning of the list. Try it »

addLast() Add an item to the end of the list Try it »


removeFirst() Remove an item from the beginning of the list. Try it »

removeLast() Remove an item from the end of the list Try it »

getFirst() Get the item at the beginning of the list Try it »

getLast() Get the item at the end of the list Try it »

Java HashMap
În acest ArrayListcapitol, ați învățat că Arrays stochează articole ca o colecție
comandată și trebuie să le accesați cu un număr de index ( inttip). A HashMap,
totuși, stocați articolele în perechi „ cheie / valoare ” și le puteți accesa printr-un
index de alt tip (de exemplu, un String).
Un obiect este folosit ca cheie (index) pentru un alt obiect (valoare). Poate stoca
diferite tipuri: Stringchei și Integervalori, sau același tip, cum ar fi: Stringchei
și Stringvalori:
Exemplu
Creați un HashMapobiect numit capitalCities care va
stoca String chei și String valori :
import java.util.HashMap; // import the HashMap class

HashMap<String, String> capitalCities = new HashMap<String, String>();

Adăugați articole
Clasa HashMapare multe metode utile. De exemplu, pentru a adăuga elemente la
acesta, utilizați put()metoda:
Exemplu
// Import the HashMap class
import java.util.HashMap;

public class Main {


public static void main(String[] args) {
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();

// Add keys and values (Country, City)


capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Accesați un articol
Pentru a accesa o valoare din HashMap, utilizați get()metoda și consultați cheia
acesteia:
Exemplu
capitalCities.get("England");

Eliminați un articol
Pentru a elimina un element, utilizați remove()metoda și consultați cheia:
Exemplu
capitalCities.remove("England");
Pentru a elimina toate elementele, utilizați clear()metoda:
Exemplu
capitalCities.clear();
Dimensiunea HashMap
Pentru a afla câte articole există, utilizați size()metoda:
Exemplu
capitalCities.size();

Buclă printr-un HashMap


Buclă prin elementele unui HashMapcu o buclă pentru fiecare .
Notă: Folosiți keySet()metoda dacă doriți doar cheile și utilizați values()metoda
dacă doriți doar valorile:
Exemplu
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
Incearca-l tu insuti "
Exemplu
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
Incearca-l tu insuti "
Exemplu
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
Incearca-l tu insuti "

Alte Tipuri
Cheile și valorile dintr-un HashMap sunt de fapt obiecte. În exemplele de mai sus,
am folosit obiecte de tip „String”. Amintiți-vă că un șir în Java este un obiect (nu un
tip primitiv). Pentru a utiliza alte tipuri, cum ar fi int, trebuie să specificați o clasă
wrapper echivalentă : Integer. Pentru alte tipuri primitive, utilizați: Booleanpentru
boolean, Characterpentru char, Doublepentru dublu etc.:
Exemplu
Creați un HashMapobiect numit oameni care va
stoca String chei și Integer valori :
// Import the HashMap class
import java.util.HashMap;

public class Main {


public static void main(String[] args) {

// Create a HashMap object called people


HashMap<String, Integer> people = new HashMap<String, Integer>();

// Add keys and values (Name, Age)


people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);

for (String i : people.keySet()) {


System.out.println("key: " + i + " value: " + people.get(i));
}
}
}
Java HashSet
A HashSet is a collection of items where every item is unique, and it is found in
the java.util package:
Example
Create a HashSet object called cars that will store strings:
import java.util.HashSet; // Import the HashSet class

HashSet<String> cars = new HashSet<String>();


Add Items
The HashSet class has many useful methods. For example, to add items to it, use
the add() method:
Example
// Import the HashSet class
import java.util.HashSet;

public class Main {


public static void main(String[] args) {
HashSet<String> cars = new HashSet<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("BMW");
cars.add("Mazda");
System.out.println(cars);
}
}
Note: In the example above, even though BMW is added twice it only appears once in the set because every item in a set has to be
unique.
Check If an Item Exists
To check whether an item exists in a HashSet, use the contains() method:

Example
cars.contains("Mazda");

Remove an Item
To remove an item, use the remove() method:

Example
cars.remove("Volvo");
To remove all items, use the clear() method:

Example
cars.clear();

Pentru a verifica dacă un element există într-un HashSet, utilizați metoda contains():
Exemplu
cars.contains(„Mazda”);
Eliminați un articol
Pentru a elimina un articol, utilizați metoda remove():
Exemplu
cars.remove("Volvo");
Pentru a elimina toate elementele, utilizați metoda clear():
Exemplu
cars.clear()
HashSet Size
To find out how many items there are, use the size method: Pentru a afla câte articole există, utilizați
metoda mărimii:
Example
cars.size();

Loop Through a HashSet


Loop through the items of an HashSet with a for-each loop: Buclă prin elementele unui HashSet cu o
buclă pentru fiecare:
Example
for (String i : cars) {
System.out.println(i);
}

Other Types
Items in an HashSet are actually objects. In the examples above, we created items (objects) of type "String". Remember that a

String in Java is an object (not a primitive type). To use other types, such as int, you must specify an equivalent wrapper

Elementele
class: Integer. For other primitive types, use: Boolean for boolean, Character for char, Double for double, etc:

dintr-un HashSet sunt de fapt obiecte. În exemplele de mai sus, am creat elemente
(obiecte) de tip „String”. Amintiți-vă că un șir în Java este un obiect (nu un tip
primitiv). Pentru a utiliza alte tipuri, cum ar fi int, trebuie să specificați o clasă
wrapper echivalentă: Integer. Pentru alte tipuri primitive, utilizați: Boolean pentru
boolean, Character pentru char, Double pentru dublu etc.:
Example
Use a HashSet that stores Integer objects:
import java.util.HashSet;

public class Main {


public static void main(String[] args) {

// Create a HashSet object called numbers


HashSet<Integer> numbers = new HashSet<Integer>();

// Add values to the set


numbers.add(4);
numbers.add(7);
numbers.add(8);

// Show which numbers between 1 and 10 are in the set


for(int i = 1; i <= 10; i++) {
if(numbers.contains(i)) {
System.out.println(i + " was found in the set.");
} else {
System.out.println(i + " was not found in the set.");
}
}
}
}

Iterator Java
An Iteratoreste un obiect care poate fi folosit pentru a parcurge colecții, cum ar
fi ArrayList și HashSet . Se numește „iterator” deoarece „iterare” este termenul
tehnic pentru buclă.
Pentru a utiliza un Iterator, trebuie să îl importați din java.utilpachet.
Obținerea unui Iterator
Metoda iterator()poate fi folosită pentru a obține un Iteratorpentru orice colecție:
Exemplu
// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;

public class Main {


public static void main(String[] args) {

// Make a collection
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");

// Get the iterator


Iterator<String> it = cars.iterator();

// Print the first item


System.out.println(it.next());
}
}
Buclă printr-o colecție
Pentru a parcurge o colecție, utilizați metodele hasNext()și ale :next()Iterator
Exemplu
while(it.hasNext()) {
System.out.println(it.next());
}
Eliminarea articolelor dintr-o colecție
Iteratoarele sunt proiectate pentru a schimba cu ușurință colecțiile prin care
parcurg. Metoda remove()poate elimina articole dintr-o colecție în timp ce se
realizează bucla.
Exemplu
Utilizați un iterator pentru a elimina numerele mai mici de 10 dintr-o colecție:
import java.util.ArrayList;
import java.util.Iterator;

public class Main {


public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove();
}
}
System.out.println(numbers);
}
}
Notă: Încercarea de a elimina elemente folosind o buclă for sau o buclă for-
each nu ar funcționa corect, deoarece colecția își schimbă dimensiunea în același
timp în care codul încearcă să facă bucla.
Clasele Java Wrapper
Clasele Wrapper oferă o modalitate de a utiliza tipurile de date primitive
( int, boolean, etc.) ca obiecte.
Tabelul de mai jos arată tipul primitiv și clasa wrapper echivalentă:
Primitive Data Type Wrapper Class

byte Byte

short Short
int Integer

long Long

float Float

double Double

boolean Boolean

char Character
Uneori trebuie să utilizați clase wrapper, de exemplu atunci când lucrați cu obiecte
Collection, cum ar fi ArrayList, unde tipurile primitive nu pot fi utilizate (lista poate
stoca doar obiecte):
Exemplu
ArrayList<int> myNumbers = new ArrayList<int>(); // Invalid
ArrayList<Integer> myNumbers = new ArrayList<Integer>(); // Valid
Crearea obiectelor Wrapper
Pentru a crea un obiect wrapper, utilizați clasa wrapper în loc de tipul
primitiv. Pentru a obține valoarea, puteți doar să tipăriți obiectul:
Exemplu
public class Main {
public static void main(String[] args) {
Integer myInt = 5;
Double myDouble = 5.99;
Character myChar = 'A';
System.out.println(myInt);
System.out.println(myDouble);
System.out.println(myChar);
}
}

Deoarece acum lucrați cu obiecte, puteți utiliza anumite metode pentru a obține
informații despre obiectul specific.
De exemplu, următoarele metode sunt utilizate pentru a obține valoarea asociată cu
obiectul wrapper
corespunzător: intValue(), byteValue(), shortValue(), longValue(), floatValue(),
doubleValue(), charValue(), booleanValue().
Acest exemplu va scoate același rezultat ca exemplul de mai sus:
Exemplu
public class Main {
public static void main(String[] args) {
Integer myInt = 5;
Double myDouble = 5.99;
Character myChar = 'A';
System.out.println(myInt.intValue());
System.out.println(myDouble.doubleValue());
System.out.println(myChar.charValue());
}
}
O altă metodă utilă este toString()metoda, care este folosită pentru a converti
obiectele wrapper în șiruri.
În exemplul următor, convertim an Integerîn a Stringși
folosim length()metoda Stringclasei pentru a afișa lungimea „șirului”:
Exemplu
public class Main {
public static void main(String[] args) {
Integer myInt = 100;
String myString = myInt.toString();
System.out.println(myString.length());
}
}

Excepții Java
La executarea codului Java pot apărea diferite erori: erori de codare făcute de
programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.
Când apare o eroare, Java se va opri în mod normal și va genera un mesaj de
eroare. Termenul tehnic pentru aceasta este: Java va arunca o excepție (aruncă o
eroare).
Java încearcă și prinde
Instrucțiunea tryvă permite să definiți un bloc de cod pentru a fi testat pentru erori
în timp ce acesta este executat.
Instrucțiunea catchvă permite să definiți un bloc de cod care urmează să fie
executat, dacă apare o eroare în blocul try.
Cuvintele cheie tryși vin în perechi:catch
Sintaxă
try {
// Block of code to try
}
catch(Exception e) {
// Block of code to handle errors
}
Luați în considerare următorul exemplu:
Aceasta va genera o eroare, deoarece myNumbers[10] nu există.
public class Main {
public static void main(String[ ] args) {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]); // error!
}
}
Ieșirea va fi cam așa:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
10
at Main.main(Main.java:4)
Dacă apare o eroare, putem folosi try...catchpentru a detecta eroarea și a executa
un cod pentru a o gestiona:
Exemplu
public class Main {
public static void main(String[ ] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}
}

Ieșirea va fi:
Something went wrong.

In cele din urma


Instrucțiunea finallyvă permite să executați cod, după try...catch, indiferent de
rezultat:
Exemplu
public class Main {
public static void main(String[] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
} finally {
System.out.println("The 'try catch' is finished.");
}
}
}

Ieșirea va fi:
Something went wrong.
The 'try catch' is finished.

Cuvântul cheie arunc


Declarația throwvă permite să creați o eroare personalizată.
Declarația throweste utilizată împreună cu un tip de excepție . Există multe tipuri
de excepții disponibile în
Java: ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsExceptio
n, SecurityExceptionetc:
Exemplu
Aruncă o excepție dacă vârsta este sub 18 ani (tipăriți „Acces refuzat”). Dacă
vârsta are 18 ani sau mai mult, tipăriți „Acces acordat”:
public class Main {
static void checkAge(int age) {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18
years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}

public static void main(String[] args) {


checkAge(15); // Set age to 15 (which is below 18...)
}
}

Ieșirea va fi:
Exception in thread "main" java.lang.ArithmeticException: Access
denied - You must be at least 18 years old.
at Main.checkAge(Main.java:4)
at Main.main(Main.java:12)
Dacă vârsta ar fi 20 de ani, nu ați primi o excepție:
Exemplu
checkAge(20);
Ieșirea va fi:
Access granted - You are old enough!

Testează-te cu exerciții
Exercițiu:
Introduceți părțile lipsă pentru a gestiona eroarea din codul de mai jos.
{
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} (Excepție e) {
System.out.println(„Ceva a mers prost.”);
}

Expresii regulate Java


Ce este o expresie regulată?
O expresie regulată este o secvență de caractere care formează un model de
căutare. Când căutați date într-un text, puteți utiliza acest model de căutare pentru
a descrie ceea ce căutați.
O expresie regulată poate fi un singur caracter sau un model mai complicat.
Expresiile regulate pot fi folosite pentru a efectua toate tipurile de operații
de căutare și înlocuire a textului.
Java nu are încorporată o clasă Regular Expression, dar putem
importa java.util.regex pachetul pentru a lucra cu expresii regulate. Pachetul
include următoarele clase:
 PatternClasă - Definește un model (pentru a fi utilizat într-o căutare)
 MatcherClass - Folosit pentru a căuta modelul
 PatternSyntaxExceptionClasă - Indică o eroare de sintaxă într-un model de
expresie regulată
Exemplu
Aflați dacă există apariții ale cuvântului „w3schools” într-o propoziție:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {


public static void main(String[] args) {
Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Visit W3Schools!");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
}
}
// Outputs Match found
Exemplu explicat
În acest exemplu, cuvântul „w3schools” este căutat într-o propoziție.
În primul rând, modelul este creat folosind Pattern.compile()metoda. Primul
parametru indică ce model este căutat, iar al doilea parametru are un flag care
indică faptul că căutarea ar trebui să nu țină seama de majuscule. Al doilea
parametru este opțional.
Metoda matcher()este folosită pentru a căuta modelul într-un șir. Returnează un
obiect Matcher care conține informații despre căutarea care a fost efectuată.
Metoda find()returnează true dacă modelul a fost găsit în șir și false dacă nu a fost
găsit.
Steaguri
Indicatoarele din compile()metodă modifică modul în care se efectuează căutarea. Iată câteva dintre ele:
 Pattern.CASE_INSENSITIVE- Cazul literelor va fi ignorat la efectuarea unei căutări.
 Pattern.LITERAL- Caracterele speciale din model nu vor avea nicio semnificație specială și vor fi tratate ca caractere
obișnuite atunci când se efectuează o căutare.
 Pattern.UNICODE_CASE- Folosiți-l împreună cu CASE_INSENSITIVEsteagul pentru a ignora și cazul literelor din afara
alfabetului englez

Modele de expresie regulată


Primul parametru al Pattern.compile()metodei este modelul. Descrie ceea ce se caută.
Parantezele sunt folosite pentru a găsi o serie de caractere:
Expression Description

[abc] Find one character from the options between the brackets

[^abc] Find one character NOT between the brackets

[0-9] Find one character from the range 0 to 9

Metacaracterele
Metacaracterele sunt personaje cu o semnificație specială:
Metacharacter Description

| Find a match for any one of the patterns separated by | as in: cat|dog|fish

. Find just one instance of any character

^ Finds a match as the beginning of a string as in: ^Hello

$ Finds a match at the end of the string as in: World$

\d Find a digit

\s Find a whitespace character

\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b

\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

Cuantificatori
Cuantificatorii definesc cantitățile:
Quantifier Description

n+ Matches any string that contains at least one n

n* Matches any string that contains zero or more occurrences of n

n? Matches any string that contains zero or one occurrences of n

n{x} Matches any string that contains a sequence of X n's

n{x,y} Matches any string that contains a sequence of X to Y n's

n{x,} Matches any string that contains a sequence of at least X n's

Notă: Dacă expresia dvs. trebuie să caute unul dintre caracterele speciale, puteți
utiliza o bară oblică inversă ( \ ) pentru a le scăpa. În Java, barele oblice inverse
din șiruri de caractere trebuie să fie scăpate, așa că sunt necesare două bare oblice
inverse pentru a scăpa de caractere speciale. De exemplu, pentru a căuta unul sau
mai multe semne de întrebare, puteți folosi următoarea expresie: „\\?”
Fire Java
Threads permite unui program să funcționeze mai eficient făcând mai multe lucruri
în același timp.
Threadurile pot fi folosite pentru a efectua sarcini complicate în fundal fără a
întrerupe programul principal.
Crearea unui thread
Există două moduri de a crea un fir.
Poate fi creat prin extinderea Threadclasei și suprascriind run() metoda acesteia:
Extindeți sintaxa
public class Main extends Thread {
public void run() {
System.out.println("This code is running in a thread");
}
}
O altă modalitate de a crea un fir este de a implementa Runnableinterfața:
Implementați Sintaxa
public class Main implements Runnable {
public void run() {
System.out.println("This code is running in a thread");
}
}
Fire de rulare
Dacă clasa extinde Threadclasa, firul de execuție poate fi rulat prin crearea unei
instanțe a clasei și apelând start()metoda acesteia:
Extindeți Exemplul
public class Main extends Thread {
public static void main(String[] args) {
Main thread = new Main();
thread.start();
System.out.println("This code is outside of the thread");
}
public void run() {
System.out.println("This code is running in a thread");
}
}
Incearca-l tu insuti "
Dacă clasa implementează Runnableinterfața, firul de execuție poate fi rulat prin
trecerea unei instanțe a clasei către Threadconstructorul unui obiect și apoi
apelând start()metoda firului de execuție:
Exemplu de implementare
public class Main implements Runnable {
public static void main(String[] args) {
Main obj = new Main();
Thread thread = new Thread(obj);
thread.start();
System.out.println("This code is outside of the thread");
}
public void run() {
System.out.println("This code is running in a thread");
}
}
Incearca-l tu insuti "
Diferențele dintre „extinderea” și „implementarea” Threads
Diferența majoră este că atunci când o clasă extinde clasa Thread, nu puteți extinde
nicio altă clasă, dar prin implementarea interfeței Runnable, este posibil să vă
extindeți și de la o altă clasă, cum ar fi: class MyClass extends OtherClass
implements Runnable.
Probleme de concurență
Deoarece firele rulează în același timp cu alte părți ale programului, nu există nicio
modalitate de a ști în ce ordine va rula codul. Când firele și programul principal
citesc și scriu aceleași variabile, valorile sunt imprevizibile. Problemele care rezultă
din aceasta se numesc probleme de concurență.
Exemplu
Un exemplu de cod în care valoarea sumei variabile este imprevizibilă:
public class Main extends Thread {
public static int amount = 0;

public static void main(String[] args) {


Main thread = new Main();
thread.start();
System.out.println(amount);
amount++;
System.out.println(amount);
} } }

public void run() {


amount++;

Pentru a evita problemele de concurență, cel mai bine este să partajați cât mai
puține atribute între fire. Dacă atributele trebuie partajate, o soluție posibilă este să
utilizați isAlive() metoda firului de execuție pentru a verifica dacă firul de execuție
s-a terminat de rulat înainte de a utiliza orice atribute pe care firul de execuție le
poate modifica.
Exemplu
Utilizați isAlive()pentru a preveni problemele de concurență:
public class Main extends Thread {
public static int amount = 0;

public static void main(String[] args) {


Main thread = new Main();
thread.start();
// Wait for the thread to finish
while(thread.isAlive()) {
System.out.println("Waiting...");
} } } }
// Update amount and print its value
System.out.println("Main: " + amount);
amount++;
System.out.println("Main: " + amount);

public void run() {


amount++;

Expresii Java Lambda


Expresiile Lambda au fost adăugate în Java 8.
O expresie lambda este un bloc scurt de cod care preia parametrii și returnează o
valoare. Expresiile Lambda sunt similare cu metodele, dar nu au nevoie de un nume
și pot fi implementate chiar în corpul unei metode.

Sintaxă
Cea mai simplă expresie lambda conține un singur parametru și o expresie:
parameter -> expression
Pentru a utiliza mai mult de un parametru, includeți-i în paranteze:
(parameter1, parameter2) -> expression
Expresiile sunt limitate. Acestea trebuie să returneze imediat o valoare și nu pot
conține variabile, atribuiri sau instrucțiuni precum ifsau for. Pentru a face operații
mai complexe, un bloc de cod poate fi folosit cu acolade. Dacă expresia lambda
trebuie să returneze o valoare, atunci blocul de cod ar trebui să aibă
o returninstrucțiune.
(parameter1, parameter2) -> { code block }
Utilizarea expresiilor Lambda
Expresiile Lambda sunt de obicei transmise ca parametri unei funcții:
Exemplu
Utilizați o expresie lamba în metoda ArrayListlui forEach()pentru a imprima fiecare
articol din listă:
import java.util.ArrayList;

public class Main {


public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
numbers.forEach( (n) -> { System.out.println(n); } );
}
}
Expresiile Lambda pot fi stocate în variabile dacă tipul variabilei este o interfață
care are o singură metodă. Expresia lambda ar trebui să aibă același număr de
parametri și același tip de returnare ca acea metodă. Java are multe dintre aceste
tipuri de interfețe încorporate, cum ar fi Consumerinterfața (care se găsește
în java.utilpachet) folosită de liste.
Exemplu
Utilizați Consumerinterfața Java pentru a stoca o expresie lambda într-o variabilă:
import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {


public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
Consumer<Integer> method = (n) -> { System.out.println(n); };
numbers.forEach( method );
}
}
Pentru a utiliza o expresie lambda într-o metodă, metoda ar trebui să aibă un
parametru cu o interfață cu o singură metodă ca tip. Apelarea metodei interfeței va
rula expresia lambda:
Exemplu
Creați o metodă care ia o expresie lambda ca parametru:
interface StringFunction {
String run(String str);
} } } }

public class Main {


public static void main(String[] args) {
StringFunction exclaim = (s) -> s + "!";
StringFunction ask = (s) -> s + "?";
printFormatted("Hello", exclaim);
printFormatted("Hello", ask);

public static void printFormatted(String str, StringFunction format) {


String result = format.run(str);
System.out.println(result);

Fișiere Java
Gestionarea fișierelor este o parte importantă a oricărei aplicații.
Java are mai multe metode pentru crearea, citirea, actualizarea și ștergerea fișierelor.

Gestionarea fișierelor Java


Clasa Filedin java.iopachet, ne permite să lucrăm cu fișiere.
Pentru a utiliza Fileclasa, creați un obiect al clasei și specificați numele fișierului
sau numele directorului:
Exemplu
import java.io.File; // Import the File class

File myObj = new File("filename.txt"); // Specify the filename


Dacă nu știți ce este un pachet, citiți Tutorialul nostru de pachete Java .
Clasa Fileare multe metode utile pentru crearea și obținerea de informații despre
fișiere. De exemplu:
Method Type Description
canRead()
Boolean Tests whether the file is readable or not
canWrite()
Boolean Tests whether the file is writable or not
createNewFile()
Boolean Creates an empty file
delete()
Boolean Deletes a file
exists()
Boolean Tests whether the file exists
getName()
String Returns the name of the file
getAbsolutePath()
String Returns the absolute pathname of the file
length()
Long Returns the size of the file in bytes
list()
String[] Returns an array of the files in the directory
mkdir()
Boolean Creates a directory
Veți învăța cum să creați, să scrieți, să citiți și să ștergeți fișiere în următoarele capitole:
Creați/Scrieți fișiere »Citiți fișiere »Sterge fisierele "

Java Creare și scriere în fișiere


Creați un fișier
Pentru a crea un fișier în Java, puteți utiliza createNewFile()metoda. Această
metodă returnează o valoare booleană: truedacă fișierul a fost creat cu succes
și falsedacă fișierul există deja. Rețineți că metoda este inclusă într-
un try...catch bloc. Acest lucru este necesar deoarece IOExceptionafișează o
eroare dacă (dacă fișierul nu poate fi creat dintr-un motiv oarecare):
Exemplu
import java.io.File; // Import the File class
import java.io.IOException; // Import the IOException class to handle errors

public class CreateFile {


public static void main(String[] args) {
try {
File myObj = new File("filename.txt");
if (myObj.createNewFile()) {
System.out.println("File created: " + myObj.getName());
} else {
System.out.println("File already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
Ieșirea va fi:
File created: filename.txt
Pentru a crea un fișier într-un anumit director (necesită permisiune), specificați
calea fișierului și utilizați barele oblice inverse duble pentru a scăpa de \caracterul "
" (pentru Windows). Pe Mac și Linux puteți scrie calea, cum ar fi:
/Users/name/filename.txt
Exemplu
File myObj = new File("C:\\Users\\MyName\\filename.txt");
Scrie într-un fișier
În exemplul următor, folosim FileWriterclasa împreună cu write()metoda ei
pentru a scrie ceva text în fișierul creat în exemplul de mai sus. Rețineți că, când ați
terminat de scris în fișier, ar trebui să îl închideți cu close()metoda:
Exemplu
import java.io.FileWriter; // Import the FileWriter class
import java.io.IOException; // Import the IOException class to handle errors

public class WriteToFile {


public static void main(String[] args) {
try {
FileWriter myWriter = new FileWriter("filename.txt");
myWriter.write("Files in Java might be tricky, but it is fun enough!");
myWriter.close();
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
Ieșirea va fi:
Successfully wrote to the file.

Fișiere de citire Java


Citiți un fișier
În capitolul anterior, ați învățat cum să creați și să scrieți într-un fișier.
În exemplul următor, folosim Scannerclasa pentru a citi conținutul fișierului text
creat în capitolul anterior:
Exemplu
import java.io.File; // Import the File class
import java.io.FileNotFoundException; // Import this class to handle errors
import java.util.Scanner; // Import the Scanner class to read text files

public class ReadFile {


public static void main(String[] args) {
try {
File myObj = new File("filename.txt");
Scanner myReader = new Scanner(myObj);
while (myReader.hasNextLine()) {
String data = myReader.nextLine();
System.out.println(data);
}
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
Ieșirea va fi:
Files in Java might be tricky, but it is fun enough!
Obțineți informații despre fișier
Pentru a obține mai multe informații despre un fișier, utilizați oricare
dintre Filemetodele:
Exemplu
import java.io.File; // Import the File class

public class GetFileInfo {


public static void main(String[] args) {
File myObj = new File("filename.txt");
if (myObj.exists()) {
System.out.println("File name: " + myObj.getName());
System.out.println("Absolute path: " + myObj.getAbsolutePath());
System.out.println("Writeable: " + myObj.canWrite());
System.out.println("Readable " + myObj.canRead());
System.out.println("File size in bytes " + myObj.length());
} else {
System.out.println("The file does not exist.");
}
}
}
Ieșirea va fi:
File name: filename.txt
Absolute path: C:\Users\MyName\filename.txt
Writeable: true
Readable: true
File size in bytes: 0
Notă: Există multe clase disponibile în API-ul Java care pot fi folosite pentru a citi și
scrie fișiere în Java: FileReader, BufferedReader, Files, Scanner,
FileInputStream, FileWriter, BufferedWriter, FileOutputStream, etc. Care să
utilizați depinde de versiunea Java cu care lucrați și dacă trebuie să citiți octeți sau
caractere, și dimensiunea fișierului/liniilor etc.
Sfat: Pentru a șterge un fișier, citiți capitolul Java Delete Files .
Java Șterge fișiere
Ștergeți un fișier
Pentru a șterge un fișier în Java, utilizați delete()metoda:
Exemplu
import java.io.File; // Import the File class

public class DeleteFile {


public static void main(String[] args) {
File myObj = new File("filename.txt");
if (myObj.delete()) {
System.out.println("Deleted the file: " + myObj.getName());
} else {
System.out.println("Failed to delete the file.");
}
}
}
Ieșirea va fi:
Deleted the file: filename.txt
Ștergeți un dosar
De asemenea, puteți șterge un folder. Cu toate acestea, trebuie să fie gol:
Exemplu
import java.io.File;

public class DeleteFolder {


public static void main(String[] args) {
File myObj = new File("C:\\Users\\MyName\\Test");
if (myObj.delete()) {
System.out.println("Deleted the folder: " + myObj.getName());
} else {
System.out.println("Failed to delete the folder.");
}
}
}
Ieșirea va fi:
Deleted the folder: Test

Java Cum se adaugă două numere


Adăugați două numere
Aflați cum să adăugați două numere în Java:
Exemplu
int x = 5;
int y = 6;
int sum = x + y;
System.out.println(sum); // Print the sum of x + y

Adăugați două numere cu introducerea utilizatorului


Aflați cum să adăugați două numere cu introducerea utilizatorului:
Exemplu
import java.util.Scanner; // Import the Scanner class

class MyClass {
public static void main(String[] args) {
int x, y, sum;
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Type a number:");
x = myObj.nextInt(); // Read user input

System.out.println("Type another number:");


y = myObj.nextInt(); // Read user input

sum = x + y; // Calculate the sum of x + y


System.out.println("Sum is: " + sum); // Print the sum
}
}
Cuvinte cheie Java❮ AnteriorUrmătorul ❯
Cuvinte cheie rezervate Java
Java are un set de cuvinte cheie care sunt cuvinte rezervate care nu pot fi folosite
ca variabile, metode, clase sau orice alți identificatori:
Keyword Description
abstract A non-access modifier. Used for classes and methods: An abstract
class cannot be used to create objects (to access it, it must be
inherited from another class). An abstract method can only be used
in an abstract class, and it does not have a body. The body is
provided by the subclass (inherited from)
assert For debugging
boolean A data type that can only store true and false values
break Breaks out of a loop or a switch block
byte A data type that can store whole numbers from -128 and 127
case Marks a block of code in switch statements
catch Catches exceptions generated by try statements
char A data type that is used to store a single character
class Defines a class
continue Continues to the next iteration of a loop
const Defines a constant. Not in use - use final instead
default Specifies the default block of code in a switch statement
do Used together with while to create a do-while loop
double A data type that can store whole numbers from 1.7e−308 to
1.7e+308
else Used in conditional statements
enum Declares an enumerated (unchangeable) type
exports Exports a package with a module. New in Java 9
extends Extends a class (indicates that a class is inherited from another
class)
final A non-access modifier used for classes, attributes and methods,
which makes them non-changeable (impossible to inherit or
override)
finally Used with exceptions, a block of code that will be executed no
matter if there is an exception or not
float A data type that can store whole numbers from 3.4e−038 to
3.4e+038
for Create a for loop
goto Not in use, and has no function
if Makes a conditional statement
implements Implements an interface
import Used to import a package, class or interface
instanceof Checks whether an object is an instance of a specific class or an
interface
int A data type that can store whole numbers from -2147483648 to
2147483647
interface Used to declare a special type of class that only contains abstract
methods
long A data type that can store whole numbers from -
9223372036854775808 to 9223372036854775808
module Declares a module. New in Java 9
native Specifies that a method is not implemented in the same Java source
file (but in another language)
new Creates new objects
package Declares a package
private An access modifier used for attributes, methods and constructors,
making them only accessible within the declared class
protected An access modifier used for attributes, methods and constructors,
making them accessible in the same package and subclasses
public An access modifier used for classes, attributes, methods and
constructors, making them accessible by any other class
requires Specifies required libraries inside a module. New in Java 9
return Finished the execution of a method, and can be used to return a
value from a method
short A data type that can store whole numbers from -32768 to 32767
static A non-access modifier used for methods and attributes. Static
methods/attributes can be accessed without creating an object of a
class
strictfp Restrict the precision and rounding of floating point calculations
super Refers to superclass (parent) objects
switch Selects one of many code blocks to be executed
synchronized A non-access modifier, which specifies that methods can only be
accessed by one thread at a time
this Refers to the current object in a method or constructor
throw Creates a custom error
throws Indicates what exceptions may be thrown by a method
transient A non-accesss modifier, which specifies that an attribute is not part
of an object's persistent state
try Creates a try...catch statement
var Declares a variable. New in Java 10
void Specifies that a method should not have a return value
volatile Indicates that an attribute is not cached thread-locally, and is
always read from the "main memory"
while Creates a while loop
Notă: true , false, și nullnu sunt cuvinte cheie, dar sunt literale și cuvinte
rezervate care nu pot fi folosite ca identificatori.
Cuvânt cheie abstract Java
Exemplu
O abstractmetodă aparține unei abstractclase și nu are un corp. Corpul este
furnizat de subclasa:
// Code from filename: Main.java
// abstract class
abstract class Main {
public String fname = "John";
public int age = 24;
public abstract void study(); // abstract method
}

// Subclass (inherit from Main)


class Student extends Main {
public int graduationYear = 2018;
public void study() { // the body of the abstract method is provided here
System.out.println("Studying all day long");
}
}
// End code from filename: Main.java

// Code from filename: Second.java


class Second {
public static void main(String[] args) {
// create an object of the Student class (which inherits attributes and
methods from Main)
Student myObj = new Student();

System.out.println("Name: " + myObj.fname);


System.out.println("Age: " + myObj.age);
System.out.println("Graduation Year: " + myObj.graduationYear);
myObj.study(); // call abstract method
}
}
Definiție și utilizare
Cuvântul abstractcheie este un modificator fără acces, folosit pentru clase și
metode.
Clasa: O clasa abstracta este o clasa restrictionata care nu poate fi folosita pentru
a crea obiecte (pentru a o accesa, trebuie sa fie mostenita de la o alta clasa).
Metodă: O metodă abstractă poate fi utilizată numai într-o clasă abstractă și nu
are un corp. Corpul este furnizat de subclasa (moștenit de la).
Cuvânt cheie Java break
Exemplu
Încheiați bucla când ieste egal cu 4:
for (int i = 0; i < 10; i++) {
if (i == 4) {
break;
}
System.out.println(i);
}

Definiție și utilizare
Cuvântul breakcheie este folosit pentru a sparge o forbuclă, o while buclă
sau un switchbloc.
Mai multe exemple
Exemplu
Ieși dintr-o buclă while:
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
if (i == 4) {
break;
}
}

Cuvânt cheie Java octet


Exemplu
byte myNum = 100;
System.out.println(myNum);

Definiție și utilizare
Cuvântul bytecheie este un tip de date care poate stoca numere întregi de la -128
la 127.
Cuvânt cheie Java caz
Exemplu
Calculați numele zilei săptămânii:
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
}
// Outputs "Thursday" (day 4)
Definiție și utilizare
Cuvântul casecheie marchează un bloc de cod într-o switchinstrucțiune.

Java catch Keyword


Example
If an error occur, use try...catch to catch the error and execute some code to handle it:
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
}

Definiție și utilizare
Cuvântul cheie catch captează excepțiile generate de instrucțiunile try.
Instrucțiunea catch vă permite să definiți un bloc de cod care să fie executat, dacă
apare o eroare în blocul try.
Java char Keyword
Example
char myGrade = 'B';
System.out.println(myGrade);
Definiție și utilizare
Cuvântul cheie char este un tip de date care este folosit pentru a stoca un singur caracter.
O valoare char trebuie să fie înconjurată de ghilimele simple, cum ar fi „A” sau „c”.

Clasa Java Cuvânt cheie


Exemplu
Creați o clasă numită „Main”:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

Definiție și utilizare
Cuvântul classcheie este folosit pentru a crea o clasă.
Fiecare linie de cod care rulează în Java trebuie să fie în interiorul unei clase. O
clasă ar trebui să înceapă întotdeauna cu o primă literă majusculă, iar numele
fișierului java trebuie să se potrivească cu numele clasei.
O clasă este ca un constructor de obiecte. Vezi exemplul de mai jos pentru a vedea
cum îl putem folosi pentru a crea un obiect.
Mai multe exemple
Exemplu
Creați un obiect Mainnumit " myObj" și imprimați valoarea lui x:
public class Main {
int x = 5;

public static void main(String[] args) {


Main myObj = new Main();
System.out.println(myObj.x);
}
}

Java continua cuvânt cheie


Exemplu
Omiteți iterația dacă variabila ieste 4, dar continuați cu următoarea iterație:
for (int i = 0; i < 10; i++) {
if (i == 4) {
continue;
}
System.out.println(i);
}

Definiție și utilizare
Cuvântul continuecheie este folosit pentru a termina iterația curentă într-o forbuclă
(sau o whilebuclă) și continuă până la următoarea iterație.
Mai multe exemple
Exemplu
Utilizați cuvântul cheie continue într-o buclă while
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
System.out.println(i);
i++;
}
Cuvânt cheie implicit Java

Exemplu
Specificați un cod de rulat dacă nu există potrivire cu majuscule într-un bloc de comutare:
int day = 4;
switch (day) {
case 6:
System.out.println("Today is Saturday");
break;
case 7:
System.out.println("Today is Sunday");
break;
default:
System.out.println("Looking forward to the Weekend");
}
/ Outputs "Looking forward to the Weekend"

Definiție și utilizare
Cuvântul defaultcheie blocul implicit de cod dintr-o switchinstrucțiune.
Cuvântul defaultcheie specifică un cod de rulat dacă nu există potrivire cu
majuscule în comutator.
Notă: dacă defaultcuvântul cheie este folosit ca ultima instrucțiune într-un bloc de
comutare, nu are nevoie de un break.
Java face Keyword
Exemplu
Următoarea buclă va fi întotdeauna executată cel puțin o dată, chiar dacă condiția este falsă, deoarece blocul de cod este executat
înainte ca condiția să fie testată:
int i = 0;
do {
System.out.println(i);
i++;
}
while (i < 5);
Incearca-l tu insuti "

Definiție și utilizare
Cuvântul docheie este folosit împreună cu whilepentru a crea o buclă do-while.
Bucla whiletrece printr-un bloc de cod atâta timp cât o condiție specificată este true:
Bucla do/whileeste o variantă a whilebuclei. Această buclă va executa blocul de cod o dată, înainte de a verifica dacă condiția este
adevărată, apoi va repeta bucla atâta timp cât condiția este adevărată.
Notă: Nu uitați să măriți variabila utilizată în condiție, altfel bucla nu se va termina niciodată!

Java double Keyword


Example
double myNum = 19.99d;
System.out.println(myNum);

Definiție și utilizare
Cuvântul cheie dublu este un tip de date care poate stoca numere fracționale de la
1.7e−308 la 1.7e+308.
Rețineți că ar trebui să încheiați valoarea cu un „d”:
Java alt cuvânt cheie
Exemplu
Utilizați elseinstrucțiunea pentru a specifica un bloc de cod care trebuie executat
dacă condiția este false.
int time = 20;
if (time < 18) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
// Outputs "Good evening."
Definiție și utilizare
Instrucțiunea elsespecifică un bloc de cod Java care trebuie executat dacă o
condiție este falseîntr-o ifinstrucțiune.
Java are următoarele instrucțiuni condiționale:
 Utilizați ifpentru a specifica un bloc de cod care urmează să fie executat,
dacă o condiție specificată este adevărată
 Utilizați elsepentru a specifica un bloc de cod care urmează să fie executat,
dacă aceeași condiție este falsă
 Utilizați else ifpentru a specifica o nouă condiție de testat, dacă prima
condiție este falsă
 Utilizați switchpentru a specifica multe blocuri alternative de cod care
urmează să fie executate

Mai multe exemple


Exemplu
Utilizați else ifinstrucțiunea pentru a specifica o nouă condiție dacă prima condiție este false.
int time = 22;
if (time < 10) {
System.out.println("Good morning.");
} else if (time < 20) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
// Outputs "Good evening."

Java Enum Cuvânt cheie


Exemplu
Creați un enumcu constante (variabile neschimbabile):
enum Level {
LOW,
MEDIUM,
HIGH
}
Puteți accesa enumconstante cu sintaxa punctului :
Level myVar = Level.MEDIUM;

Definiție și utilizare
Cuvântul enumcheie declară un tip enumerat (neschimbabil).
O enumerare este o „clasă” specială care reprezintă un grup de constante (variabile
neschimbabile, precum variabilele finale).
Pentru a crea o enumerare, utilizați enumcuvântul cheie (în loc de clasă sau
interfață) și separați constantele cu o virgulă. Rețineți că acestea ar trebui să fie cu
litere mari.
Diferența dintre enumerari și clase
O enumcutie, la fel ca o class, are atribute și metode. Singura diferență este că
constantele enumerare sunt public, staticși final (neschimbabile - nu pot fi
suprascrise).
An enumnu poate fi folosit pentru a crea obiecte și nu poate extinde alte clase (dar
poate implementa interfețe).
Folosiți enumări atunci când aveți valori despre care știți că nu se vor schimba, cum
ar fi zilele lunii, zilele, culorile, pachetul de cărți etc.
Java extinde cuvântul cheie
Exemplu
Clasa Car(subclasa) moștenește atributele și metodele din Vehicleclasă (superclasa):
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}

class Car extends Vehicle {


private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {

// Create a myCar object


Car myCar = new Car();

// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();

// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car
class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
Definiție și utilizare
Cuvântul extendscheie extinde o clasă (indică faptul că o clasă este moștenită de la
o altă clasă).
În Java, este posibil să moșteniți atribute și metode de la o clasă la alta. Grupăm
„conceptul de moștenire” în două categorii:
 subclasa (copil) - clasa care moștenește de la o altă clasă
 superclasă (părinte) - clasa de la care se moștenește
Pentru a moșteni dintr-o clasă, utilizați extends cuvântul cheie.
Cuvânt cheie final Java
Exemplu
Setați o variabilă la final, pentru a preveni înlocuirea/modificarea acesteia:
public class Main {
final int x = 10;

public static void main(String[] args) {


Main myObj = new Main();
myObj.x = 25; // will generate an error: cannot assign a value to a final
variable
System.out.println(myObj.x);
}
}
Definiție și utilizare
Cuvântul finalcheie este un modificator de non-acces folosit pentru clase, atribute
și metode, ceea ce le face neschimbabile (imposibil de moștenit sau de suprascris).
Cuvântul finalcheie este util atunci când doriți ca o variabilă să stocheze
întotdeauna aceeași valoare, cum ar fi PI (3.14159...).
Cuvântul finalcheie se numește „modificator”. Veți afla mai multe despre acestea
în capitolul Modificatori Java .
Java în sfârșit cuvânt cheie
Exemplu
Executați codul, după try...catch, indiferent de rezultat:
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
} finally {
System.out.println("The 'try catch' is finished.");
}
Definiție și utilizare
Cuvântul finallycheie este folosit pentru a executa cod (folosit cu excepții -
instrucțiuni try..catch) indiferent dacă există sau nu o excepție.

Cuvânt cheie Java float


Exemplu
float myNum = 5.75f;
System.out.println(myNum);
Definiție și utilizare
Cuvântul floatcheie este un tip de date care poate stoca numere fracționale de la
3.4e−038 la 3.4e+038.
Rețineți că ar trebui să încheiați valoarea cu un „f”:
Java pentru cuvinte cheie
Exemplu
Tipăriți numerele de la 0 la 4:
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
Definiție și utilizare
Bucla fortrece printr-un bloc de cod de mai multe ori.
Din exemplul de mai sus:
 Instrucțiunea 1 setează o variabilă înainte de începerea buclei (int i = 0).
 Instrucțiunea 2 definește condiția pentru ca bucla să ruleze (i trebuie să fie
mai mic de 5). Dacă condiția este adevărată, bucla va începe din nou, dacă
este falsă, bucla se va termina.
 Instrucțiunea 3 crește o valoare (i++) de fiecare dată când blocul de cod din
buclă a fost executat.

Mai multe exemple


Există, de asemenea, o buclă „ for-each ”, care este folosită exclusiv pentru a
parcurge elementele dintr-o matrice :
Următorul exemplu scoate toate elementele din matricea cars , folosind o buclă
„ for-each ”:
Exemplu
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String i : cars) {
System.out.println(i);
}
Java dacă cuvânt cheie
Exemplu
Testați două valori pentru a afla dacă 20 este mai mare decât 18. Dacă condiția
este true, imprimați un text:
if (20 > 18) {
System.out.println("20 is greater than 18");
}
Definiție și utilizare
Declarația ifspecifică un bloc de cod Java care trebuie executat dacă o condiție
este true.
Java are următoarele instrucțiuni condiționale:
 Utilizați ifpentru a specifica un bloc de cod care urmează să fie executat,
dacă o condiție specificată este adevărată
 Utilizați elsepentru a specifica un bloc de cod care urmează să fie executat,
dacă aceeași condiție este falsă
 Utilizați else ifpentru a specifica o nouă condiție de testat, dacă prima
condiție este falsă
 Utilizați switchpentru a specifica multe blocuri alternative de cod care
urmează să fie executate
Mai multe exemple
Exemplu
Utilizați ifinstrucțiunea pentru a testa variabile:
int x = 20;
int y = 18;
if (x > y) {
System.out.println("x is greater than y");
}
Exemplu
Utilizați elseinstrucțiunea pentru a specifica un bloc de cod care trebuie executat
dacă condiția este false.
int time = 20;
if (time < 18) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
// Outputs "Good evening."
Exemplu
Utilizați else ifinstrucțiunea pentru a specifica o nouă condiție dacă prima condiție
este false.
int time = 22;
if (time < 10) {
System.out.println("Good morning.");
} else if (time < 20) {
System.out.println("Good day.");
} else {
System.out.println("Good evening.");
}
// Outputs "Good evening."
Java implementează Keyword
Exemplu
An interfaceeste o „clasă” abstractă care este folosită pentru a grupa metode
înrudite cu corpuri „goale”:
Pentru a accesa metodele de interfață, interfața trebuie să fie „implementată” (cum
ar fi moștenită) de o altă clasă cu implements cuvântul cheie (în loc
de extends). Corpul metodei interfeței este furnizat de clasa „implement”:
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface


class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}

class MyMainClass {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Definiție și utilizare
Cuvântul implementscheie este folosit pentru a implementa un interface.
Cuvântul interfacecheie este folosit pentru a declara un tip special de clasă care
conține doar metode abstracte.
Pentru a accesa metodele de interfață, interfața trebuie să fie „implementată” (cum
ar fi moștenită) de o altă clasă cu implements cuvântul cheie (în loc
de extends). Corpul metodei interfeței este furnizat de clasa „implementare”.
Note despre interfețe:
 Nu poate fi folosit pentru a crea obiecte (în exemplul de mai sus, nu este
posibil să creați un obiect „Animal” în MyMainClass)
 Metodele de interfață nu au un corp - corpul este furnizat de clasa
„implementare”.
 La implementarea unei interfețe, trebuie să suprascrieți toate metodele
acesteia
 Metodele de interfață sunt implicite abstractși public
 Atributele interfeței sunt implicite publicși staticfinal
 O interfață nu poate conține un constructor (deoarece nu poate fi folosită
pentru a crea obiecte)
De ce și când să folosiți interfețele?
Pentru a obține securitate - ascunde anumite detalii și arată doar detaliile
importante ale unui obiect (interfață).
Java nu acceptă „moștenirea multiplă” (o clasă poate moșteni doar de la o
superclasă). Cu toate acestea, se poate realiza cu interfețe, deoarece clasa
poate implementa mai multe interfețe. Notă: Pentru a implementa mai multe
interfețe, separați-le cu o virgulă (vezi exemplul de mai jos).
Interfețe multiple
Pentru a implementa mai multe interfețe, separați-le cu o virgulă:
Exemplu
interface FirstInterface {
public void myMethod(); // interface method
}

interface SecondInterface {
public void myOtherMethod(); // interface method
}

// DemoClass "implements" FirstInterface and SecondInterface


class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}

class MyMainClass {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
Cuvânt cheie de import Java
Exemplu
Importați Scannerclasa din API-ul Java:
import java.util.Scanner;

class MyClass {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter username");

String userName = myObj.nextLine();


System.out.println("Username is: " + userName);
}
}
Definiție și utilizare
Cuvântul importcheie este folosit pentru a importa un pachet, o clasă sau o
interfață.
Instanță Java a cuvântului cheie
Exemplu
Verificați dacă un obiect este o instanță a unei clase specifice:
public class Main {
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj instanceof Main); // returns true
}
}
Definiție și utilizare
Cuvântul instanceofcheie verifică dacă un obiect este o instanță a unei clase
specifice sau a unei interfețe.
Cuvântul cheie instanceof compară instanța cu tipul. Valoarea returnată este
fie truesau false.
Java int cuvânt cheie
Exemplu
int myNum = 100000;
System.out.println(myNum);
Incearca-l tu insuti "

Definiție și utilizare
Cuvântul intcheie este un tip de date care poate stoca numere întregi de la -
2147483648 la 2147483647.
Cuvânt cheie interfață Java
Exemplu
An interfaceeste o „clasă” abstractă care este folosită pentru a grupa metode
înrudite cu corpuri „goale”:
Pentru a accesa metodele de interfață, interfața trebuie să fie „implementată” (cum
ar fi moștenită) de o altă clasă cu implements cuvântul cheie (în loc
de extends). Corpul metodei interfeței este furnizat de clasa „implement”:
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface


class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}

class MyMainClass {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Definiție și utilizare
Cuvântul interfacecheie este folosit pentru a declara un tip special de clasă care
conține doar metode abstracte.
Pentru a accesa metodele de interfață, interfața trebuie să fie „implementată” (cum
ar fi moștenită) de o altă clasă cu implements cuvântul cheie (în loc
de extends). Corpul metodei interfeței este furnizat de clasa „implementare”.
Note despre interfețe:
 Nu poate fi folosit pentru a crea obiecte (în exemplul de mai sus, nu este
posibil să creați un obiect „Animal” în MyMainClass)
 Metodele de interfață nu au un corp - corpul este furnizat de clasa
„implementare”.
 La implementarea unei interfețe, trebuie să suprascrieți toate metodele
acesteia
 Metodele de interfață sunt implicite abstractși public
 Atributele interfeței sunt implicite publicși staticfinal
 O interfață nu poate conține un constructor (deoarece nu poate fi folosită
pentru a crea obiecte)
De ce și când să folosiți interfețele?
Pentru a obține securitate - ascunde anumite detalii și arată doar detaliile
importante ale unui obiect (interfață).
Java nu acceptă „moștenirea multiplă” (o clasă poate moșteni doar de la o
superclasă). Cu toate acestea, se poate realiza cu interfețe, deoarece clasa
poate implementa mai multe interfețe. Notă: Pentru a implementa mai multe
interfețe, separați-le cu o virgulă (vezi exemplul de mai jos)
Interfețe multiple
Pentru a implementa mai multe interfețe, separați-le cu o virgulă:
Exemplu
interface FirstInterface {
public void myMethod(); // interface method
}

interface SecondInterface {
public void myOtherMethod(); // interface method
}

// DemoClass "implements" FirstInterface and SecondInterface


class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}

class MyMainClass {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
Cuvânt cheie Java lung
Exemplu
long myNum = 15000000000L;
System.out.println(myNum);
Definiție și utilizare
Cuvântul longcheie este un tip de date care poate stoca numere întregi de la -
9223372036854775808 la 9223372036854775808.
Rețineți că ar trebui să încheiați valoarea cu un „L”:
Cuvânt cheie Java nou
Exemplu
Creați un obiect numit " myObj" și imprimați valoarea lui x:
public class Main {
int x = 5;

public static void main(String[] args) {


Main myObj = new Main();
System.out.println(myObj.x);
}
}
Definiție și utilizare
Cuvântul newcheie creează noi obiecte.
Cuvânt cheie pachet Java
MyPackageClass.java
package mypack;

class MyPackageClass {
public static void main(String[] args) {
System.out.println("This is my package!");
}
}
Definiție și utilizare
Cuvântul packagecheie creează un pachet.
Cuvânt cheie privat Java
Exemplu
O clasă cu privateatribute:
public class Main {
private String fname = "John";
private String lname = "Doe";
private String email = "john@doe.com";
private int age = 24;

public static void main(String[] args) {


Main myObj = new Main();
System.out.println("Name: " + myObj.fname + " " + myObj.lname);
System.out.println("Email: " + myObj.email);
System.out.println("Age: " + myObj.age);
}
}
Definiție și utilizare
Cuvântul privatecheie este un modificator de acces folosit pentru atribute, metode
și constructori, făcându-le accesibile numai în cadrul clasei declarate.

Cuvânt cheie protejat Java


Exemplu
Subclasa Studentaccesează o Personclasă cu protectedatribute:
class Person {
protected String fname = "John";
protected String lname = "Doe";
protected String email = "john@doe.com";
protected int age = 24;
}

class Student extends Person {


private int graduationYear = 2018;
public static void main(String[] args) {
Student myObj = new Student();
System.out.println("Name: " + myObj.fname + " " + myObj.lname);
System.out.println("Email: " + myObj.email);
System.out.println("Age: " + myObj.age);
System.out.println("Graduation Year: " + myObj.graduationYear);
}
}
Definiție și utilizare
Cuvântul protectedcheie este un modificator de acces folosit pentru atribute,
metode și constructori, făcându-le accesibile în același pachet și subclase.

Cuvânt cheie public Java


Exemplu
Secondaccesează o public Mainclasă cu publicatribute:
/* Code from filename: Main.java
public class Main {
public String fname = "John";
public String lname = "Doe";
public String email = "john@doe.com";
public int age = 24;
}
*/

class Second {
public static void main(String[] args) {
Main myObj = new Main();
System.out.println("Name: " + myObj.fname + " " + myObj.lname);
System.out.println("Email: " + myObj.email);
System.out.println("Age: " + myObj.age);
}
}
Definiție și utilizare
Cuvântul publiccheie este un modificator de acces folosit pentru clase, atribute,
metode și constructori, făcându-le accesibile de către orice altă clasă.
Cuvânt cheie de returnare Java
Exemplu
O metodă cu o valoare returnată:
public class Main {
static int myMethod(int x) {
return 5 + x;
}
public static void main(String[] args) {
System.out.println(myMethod(3));
}
}
// Outputs 8 (5 + 3)
Definiție și utilizare
Cuvântul returncheie a încheiat execuția unei metode și poate fi folosit pentru a
returna o valoare dintr-o metodă.
Mai multe exemple
Sfat: utilizați voidcuvântul cheie pentru a specifica că o metodă nu trebuie să aibă
o valoare returnată:
Exemplu
O metodă fără valori returnate:
public class Main {
static void myMethod() {
System.out.println("I just got executed!");
}

public static void main(String[] args) {


myMethod();
}
}
Cuvânt cheie scurt Java
Exemplu
short myNum = 5000;
System.out.println(myNum);
Definiție și utilizare
Cuvântul shortcheie este un tip de date care poate stoca numere întregi de la -
32768 la 32767.
Cuvânt cheie static Java
Exemplu
O staticmetodă poate fi accesată fără a crea mai întâi un obiect al clasei:
public class Main {
// Static method
static void myStaticMethod() {
System.out.println("Static methods can be called without creating
objects");
}

// Public method
public void myPublicMethod() {
System.out.println("Public methods must be called by creating objects");
}

// Main method
public static void main(String[ ] args) {
myStaticMethod(); // Call the static method
// myPublicMethod(); This would output an error

Main myObj = new Main(); // Create an object of Main


myObj.myPublicMethod(); // Call the public method
}
}
Definiție și utilizare
Cuvântul staticcheie este un modificator de non-acces folosit pentru metode și
atribute. Metodele/atributele statice pot fi accesate fără a crea un obiect al unei
clase.
Java super cuvânt cheie
Exemplu
Folosind superpentru a apela superclasa a Dog (subclasei):
class Animal { // Superclass (parent)
public void animalSound() {
System.out.println("The animal makes a sound");
}
}

class Dog extends Animal { // Subclass (child)


public void animalSound() {
super.animalSound(); // Call the superclass method
System.out.println("The dog says: bow wow");
}
}

public class Main {


public static void main(String args[]) {
Animal myDog = new Dog(); // Create a Dog object
myDog.animalSound(); // Call the method on the Dog object
}
}
Definiție și utilizare
Cuvântul supercheie se referă la obiecte superclase (părinte).
Este folosit pentru a apela metode de superclasă și pentru a accesa constructorul de
superclasă.
Cea mai frecventă utilizare a supercuvântului cheie este eliminarea confuziei dintre
superclase și subclase care au metode cu același nume.
Pentru a înțelege supercuvântul cheie, ar trebui să aveți o înțelegere de bază
a moștenirii și polimorfismului .

Cuvânt cheie comutator Java


Exemplu
Utilizați instrucțiunea switch pentru a calcula numele zilei lucrătoare:
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
}
// Outputs "Thursday" (day 4)
Definiție și utilizare
Cuvântul switchcheie selectează unul dintre multele blocuri de cod care urmează să
fie executate.
Din exemplul de mai sus, funcționează astfel:
 Expresia switcheste evaluată o dată.
 Valoarea expresiei este comparată cu valorile fiecărei case.
 Dacă există o potrivire, blocul de cod asociat este executat.
 Cuvântul breakcheie este folosit pentru a ieși din blocul de comutare atunci
când este găsită o potrivire
Java acest cuvânt cheie
Exemplu
Folosind thiscu un atribut de clasă (x):
public class Main {
int x;

// Constructor with a parameter


public Main(int x) {
this.x = x;
}

// Call the constructor


public static void main(String[] args) {
Main myObj = new Main(5);
System.out.println("Value of x = " + myObj.x);
}
}
Definiție și utilizare
Cuvântul thischeie se referă la obiectul curent dintr-o metodă sau un constructor.
Cea mai frecventă utilizare a thiscuvântului cheie este eliminarea confuziei dintre
atributele de clasă și parametrii cu același nume (deoarece un atribut de clasă este
umbrit de o metodă sau de un parametru constructor). Dacă omiteți cuvântul cheie
din exemplul de mai sus, rezultatul va fi „0” în loc de „5”.
thispoate fi folosit si pentru:
 Invocați constructorul de clasă curent
 Invocați metoda clasei curente
 Returnează obiectul clasei curente
 Transmite un argument în apelul de metodă
 Transmite un argument în apelul constructorului
Java throw Keyword
Exemplu
Aruncă o excepție dacă vârsta este sub 18 ani (tipăriți „Acces refuzat”). Dacă
vârsta are 18 ani sau mai mult, tipăriți „Acces acordat”:
public class Main {
static void checkAge(int age) {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18
years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}

public static void main(String[] args) {


checkAge(15); // Set age to 15 (which is below 18...)
}
}
Definiție și utilizare
Cuvântul throwcheie este folosit pentru a crea o eroare personalizată.
Declarația throweste utilizată împreună cu un tip de excepție . Există multe tipuri
de excepții disponibile în
Java: ArithmeticException, ClassNotFoundException, ArrayIndexOutOfBoundsExcepti
on, SecurityExceptionetc.
Tipul de excepție este adesea folosit împreună cu o metodă personalizată , ca în
exemplul de mai sus.
Diferențele între throwși throws:
throw throws

Used to throw an exception for a Used to indicate what exception type may be
method thrown by a method

Cannot throw multiple exceptions Can declare multiple exceptions


Syntax: Syntax:
 throw is followed by an object  throws is followed by a class
(new type)  and used with the method signature
 used inside the method

Java aruncă cuvinte cheie


Exemplu
Aruncă o excepție dacă vârsta este sub 18 ani (tipăriți „Acces refuzat”). Dacă
vârsta are 18 ani sau mai mult, tipăriți „Acces acordat”:
public class Main {
static void checkAge(int age) throws ArithmeticException {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18
years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}

public static void main(String[] args) {


checkAge(15); // Set age to 15 (which is below 18...)
}
Definiție și utilizare
Cuvântul throwscheie indică ce tip de excepție poate fi aruncat de o metodă.
Există multe tipuri de excepții disponibile în
Java: ArithmeticException, ClassNotFoundException, ArrayIndexOutOfBoundsExcepti
on, SecurityExceptionetc.
Diferențele între throwși throws:
throw throws

Used to throw an exception for a Used to indicate what exception type may be
method thrown by a method

Cannot throw multiple exceptions Can declare multiple exceptions

Syntax: Syntax:
 throw is followed by an object  throws is followed by a class
(new type)  and used with the method signature
 used inside the method

Java try Keyword


Exemplu
Dacă apare o eroare, utilizați try...catch pentru a detecta eroarea și executați un
cod pentru a o gestiona:
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
}
Definiție și utilizare
Cuvântul trycheie creează o instrucțiune try...catch.
Instrucțiunea tryvă permite să definiți un bloc de cod pentru a fi testat pentru erori
în timp ce acesta este executat.
Instrucțiunea catchvă permite să definiți un bloc de cod care urmează să fie
executat, dacă apare o eroare în blocul try.
Cuvânt cheie Java void
Exemplu
O metodă fără valori returnate:
public class Main {
static void myMethod() {
System.out.println("I just got executed!");
}

public static void main(String[] args) {


myMethod();
}
}
Definiție și utilizare
Cuvântul voidcheie specifică faptul că o metodă nu trebuie să aibă o valoare
returnată.
Mai multe exemple
Sfat: Dacă doriți ca o metodă să returneze o valoare, puteți utiliza un tip de date
primitiv (cum ar fi int, charetc.) în loc de void, și puteți utiliza return cuvântul
cheie în interiorul metodei:
Exemplu
public class Main {
static int myMethod(int x) {
return 5 + x;
}

public static void main(String[] args) {


System.out.println(myMethod(3));
}
}
// Outputs 8 (5 + 3)
Java în timp ce Cuvânt cheie
Exemplu
În exemplul de mai jos, codul din buclă va rula, iar și iar, atâta timp cât o
variabilă ieste mai mică de 5:
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
Definiție și utilizare
Bucla whiletrece printr-un bloc de cod atâta timp cât o condiție specificată
este true.
Notă: Nu uitați să măriți variabila utilizată în condiție, altfel bucla nu se va termina
niciodată!

Mai multe exemple


Bucla do/whileeste o variantă a whilebuclei. Această buclă va executa blocul de cod
o dată, înainte de a verifica dacă condiția este adevărată, apoi va repeta bucla atâta
timp cât condiția este adevărată:
Exemplu
int i = 0;
do {
System.out.println(i);
i++;
}
while (i < 5);
Metode de șiruri Java❮ AnteriorUrmătorul ❯
Toate metodele cu șiruri
Clasa String are un set de metode încorporate pe care le puteți utiliza pe șiruri.
Method Description Return Type
charAt() Returns the character at the specified index char
(position)
codePointAt() Returns the Unicode of the character at the int
specified index
codePointBefore() Returns the Unicode of the character before int
the specified index
codePointCount() Returns the number of Unicode values int
found in a string.
compareTo() Compares two strings lexicographically int
compareToIgnoreCase() Compares two strings lexicographically, int
ignoring case differences
concat() Appends a string to the end of another String
string
contains() Checks whether a string contains a boolean
sequence of characters
contentEquals() Checks whether a string contains the exact boolean
same sequence of characters of the
specified CharSequence or StringBuffer
copyValueOf() Returns a String that represents the String
characters of the character array
endsWith() Checks whether a string ends with the boolean
specified character(s)
equals() Compares two strings. Returns true if the boolean
strings are equal, and false if not
equalsIgnoreCase() Compares two strings, ignoring case boolean
considerations
format() Returns a formatted string using the String
specified locale, format string, and
arguments
getBytes() Encodes this String into a sequence of byte[]
bytes using the named charset, storing the
result into a new byte array
getChars() Copies characters from a string to an array void
of chars
hashCode() Returns the hash code of a string int
indexOf() Returns the position of the first found int
occurrence of specified characters in a
string
intern() Returns the canonical representation for String
the string object
isEmpty() Checks whether a string is empty or not boolean
lastIndexOf() Returns the position of the last found int
occurrence of specified characters in a
string
length() Returns the length of a specified string int
matches() Searches a string for a match against a boolean
regular expression, and returns the
matches
offsetByCodePoints() Returns the index within this String that is int
offset from the given index by
codePointOffset code points
regionMatches() Tests if two string regions are equal boolean
replace() Searches a string for a specified value, and String
returns a new string where the specified
values are replaced
replaceFirst() Replaces the first occurrence of a substring String
that matches the given regular expression
with the given replacement
replaceAll() Replaces each substring of this string that String
matches the given regular expression with
the given replacement
split() Splits a string into an array of substrings String[]
startsWith() Checks whether a string starts with boolean
specified characters
subSequence() Returns a new character sequence that is a CharSequence
subsequence of this sequence
substring() Returns a new string which is the substring String
of a specified string
toCharArray() Converts this string to a new character char[]
array
toLowerCase() Converts a string to lower case letters String
toString() Returns the value of a String object String
toUpperCase() Converts a string to upper case letters String
trim() Removes whitespace from both ends of a String
string
valueOf() Returns the string representation of the String
specified value
Următorul ❯

Metode matematice Java


❮ AnteriorUrmătorul ❯
Clasa Java Math are multe metode care vă permit să efectuați sarcini matematice
pe numere.

Toate metodele matematice


O listă a tuturor metodelor matematice poate fi găsită în tabelul de mai jos:
Method Description Return Type
abs(x) Returns the absolute value of x double|float|int|long
acos(x) Returns the arccosine of x, in radians double
asin(x) Returns the arcsine of x, in radians double
atan(x) Returns the arctangent of x as a numeric value between -PI/2 double
and PI/2 radians
atan2(y,x) Returns the angle theta from the conversion of rectangular double
coordinates (x, y) to polar coordinates (r, theta).
cbrt(x) Returns the cube root of x double
ceil(x) Returns the value of x rounded up to its nearest integer double
copySign(x, y) Returns the first floating point x with the sign of the second double
floating point y
cos(x) Returns the cosine of x (x is in radians) double
cosh(x) Returns the hyperbolic cosine of a double value double
exp(x) Returns the value of Ex double
expm1(x) Returns ex -1 double
floor(x) Returns the value of x rounded down to its nearest integer double
getExponent(x) Returns the unbiased exponent used in x int
hypot(x, y) Returns sqrt(x2 +y2) without intermediate overflow or double
underflow
IEEEremainder(x, Computes the remainder operation on x and y as prescribed by double
y) the IEEE 754 standard
log(x) Returns the natural logarithm (base E) of x double
log10(x) Returns the base 10 logarithm of x double
log1p(x) Returns the natural logarithm (base E) of the sum of x and 1 double
max(x, y) Returns the number with the highest value double|float|int|long
min(x, y) Returns the number with the lowest value double|float|int|long
nextAfter(x, y) Returns the floating point number adjacent to x in the direction double|float
of y
nextUp(x) Returns the floating point value adjacent to x in the direction double|float
of positive infinity
pow(x, y) Returns the value of x to the power of y double
random() Returns a random number between 0 and 1 double
round(x) Returns the value of x rounded to its nearest integer int
rint() Returns the double value that is closest to x and equal to a double
mathematical integer
signum(x) Returns the sign of x double
sin(x) Returns the sine of x (x is in radians) double
sinh(x) Returns the hyperbolic sine of a double value double
sqrt(x) Returns the square root of x double
tan(x) Returns the tangent of an angle double
tanh(x) Returns the hyperbolic tangent of a double value double
toDegrees(x) Converts an angle measured in radians to an approx. double
equivalent angle measured in degrees
toRadians(x) Converts an angle measured in degrees to an approx. angle double
measured in radians
ulp(x) Returns the size of the unit of least precision (ulp) of x double|float
Notă: Toate metodele matematice sunt static.

❮ AnteriorUrmătorul ❯

S-ar putea să vă placă și