Java Application
Java Application
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.
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);
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);
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;
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)
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
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);
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;
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
+= 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 »
== Equal to x == y Try it »
&& Logical and Returns true if both statements are true x < 5 && x < 10 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
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
\\ \ 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
\t Tab Try it »
\b Backspace Try it »
\f Form Feed
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);
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ă”.
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)
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.
(i < 6) {
System.out.println(i);
;
}
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 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);
}
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};
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();
}
}
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!");
}
// 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;
}
System.out.println( + "Doe");
}
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;
}
int x = 100;
{ // This is a block
int x = 100;
}
}
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;
Multiple Objects
You can create multiple objects of one class:
Example
Create two objects of Main:
public class Main {
int x = 5;
= new ();
Modificați atribute
De asemenea, puteți modifica valorile atributelor:
Exemplu
Setați valoarea xla 40:
public class Main {
int x;
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 {
// Outputs 5
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;
}
// Outputs 5
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
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
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
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
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 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
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
}
Î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 î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");
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!
// 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);
}
}
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 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ă.
class InnerClass {
int y = 5;
}
}
// Outputs 15 (5 + 10)
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();
^
// Outputs 5
class InnerClass {
public int myInnerMethod() {
return x;
}
}
}
// 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).
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");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
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)
}
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 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”.
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");
class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
// String input
String name = myObj.nextLine();
// Numerical input
int age = myObj.nextInt();
double salary = myObj.nextDouble();
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
the ofPattern() method in the same package to format or parse date-time objects. The following example will remove both the "T"
„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
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
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;
Access an Item
Pentru a accesa un
To access an element in the ArrayList, use the get() method and refer to the index number:
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:
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();
Circulați prin elementele unui ArrayList cu o buclă for și utilizați metoda size()
run:
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;
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:
Example
Sort an ArrayList of Integers:
import java.util.ArrayList;
import java.util.Collections; // Import the Collections class
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;
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
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;
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();
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;
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();
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;
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;
// Make a collection
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
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.
Ieșirea va fi:
Something went wrong.
The 'try catch' is finished.
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.”);
}
[abc] Find one character from the options between the brackets
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
\d Find a digit
\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
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;
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;
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;
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.
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
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;
}
}
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.
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”.
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;
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ă!
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
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!");
}
}
// 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;
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
}
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");
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)
}
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
}
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;
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 = "[email protected]";
private 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 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
Used to throw an exception for a Used to indicate what exception type may be
method thrown by a method
Used to throw an exception for a Used to indicate what exception type may be
method thrown by a method
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
❮ AnteriorUrmătorul ❯