Se afișează postările cu eticheta java. Afișați toate postările
Se afișează postările cu eticheta java. Afișați toate postările

luni, 29 septembrie 2025

Lecție practică. Instructiunea If


1. Votare. Se citește de la tastatură vârsta unei persoane. Elaborați un program care va afișa:
- „Are drept de vot”, dacă persoana are 18 ani sau mai mult;
- „Nu are drept de vot”, în caz contrar.

2. Admitere la facultate. Se citește de la tastatură nota unui candidat la examen.
Elaborați un program care va afișa:Elaborați un program care va afișa:
- „Admis”, dacă nota este mai mare sau egală cu 5;
- „Respins”, dacă nota este mai mică decât 5.

3. Reducere la magazin. Un client cumpără produse în valoare de X lei. Dacă suma depășește 500 lei, se acordă o reducere de 10%. Elaborați un program care va permite citirea de la tastatură a sumei de bani cheltuită după care va afișa mărimea reducerii aplicată urmată de suma finală de plată.

4. Temperatura camerei. Se citește de la tastatură temperatura camerei. Elaborați un program care:
- dacă temperatura este sub 18°C va afișa mesajul „Pornește încălzirea”.
- dacă temperatura este peste 28°C va afișa mesajul „Pornește aerul condiționat”.
- va afișa „Temperatura este confortabilă” pentru oricare altă valoare a temperaturii.

5. Semafor pietonal. Se citește de la tastatură culoarea semaforului (roșu, galben, verde).
Elaborați un program care va afișa:Elaborați un program care va afișa:
- „Așteaptă”, dacă semaforul este roșu;
- „Fii atent, urmează schimbarea”, dacă semaforul este galben;
- „Traversează strada”, dacă semaforul este verde.

6. Factura la energie electrică. Se citește de la tastatură consumul de energie electrică al unei gospodării (în kWh). Elaborați un program care va calcula și afișa costul facturii după următoarele reguli:
- Dacă consumul este până la 100 kWh, prețul unui kWh este 2 lei;
- Dacă consumul este între 101 și 300 kWh, prețul unui kWh este 3 lei;
- Dacă consumul este mai mare de 300 kWh, prețul unui kWh este 4 lei.
Programul va afișa: consumul, tariful aplicat și suma finală de plată.

7. Nota finală la un curs. Se citesc de la tastatură 3 note ale unui elev: nota la test, nota la proiect și nota la examen. Media finală se calculează astfel: 30% testul, 30% proiectul, 40% examenul. Dacă media finală este:
- ≥ 8, afișați mesajul „Rezultat excelent”;
- între 5 și 7.99, afișați mesajul „Rezultat satisfăcător”;
- < 5, afișați mesajul „Rezultat nesatisfăcător”.

8. Impozitul pe venit. Se citește de la tastatură venitul anual al unei persoane.
Impozitul se calculează progresiv, după cum urmează:
- pentru venituri de până la 20.000 lei → se aplică o taxă de 5%;
- pentru venituri între 20.001 și 50.000 lei → pentru primii 20.000 se aplică 5%, iar pentru restul 10%;
- pentru venituri de peste 50.000 lei → pentru primii 20.000 se aplică 5%, pentru următorii 30.000 se aplică 10%, iar pentru restul 15%.
Programul va afișa: venitul, valoarea impozitului și venitul net după impozitare.

9. Determinarea celei mai bune oferte de transport. O persoană dorește să cumpere un bilet de transport pentru o lună. Se citesc de la tastatură:
- prețul unui bilet per călătorie,
- numărul de călătorii planificate într-o lună,
- prețul unui abonament lunar.
Elaborați un program care va calcula costul total pentru bilete individuale și îl va compara cu abonamentul lunar. Programul va afișa:
- „Mai avantajos este abonamentul lunar”, dacă acesta e mai ieftin;
- „Mai avantajoase sunt biletele individuale”, în caz contrar;
- „Costurile sunt egale”, dacă cele două variante au același preț.

10. Sistem de notare pentru permis auto. Se citește de la tastatură viteza cu care circulă o mașină și limita de viteză pe sectorul de drum. Se calculează depășirea vitezei și se acordă penalizări astfel:
- dacă viteza este până la limita legală, afișează „Conduci regulamentar”;
- dacă depășirea este de până la 10 km/h, afișează „Avertisment”;
- dacă depășirea este între 11 și 30 km/h, afișează „Amendă 500 lei”;
- dacă depășirea este de peste 30 km/h, afișează „Suspendarea permisului pentru 30 de zile”.

11. Calculator pentru bilete la cinema. Se citesc de la tastatură vârsta spectatorului și ziua săptămânii (ex.: Luni, Marți, etc.). Prețul biletului se stabilește după reguli:
- Bilet standard = 100 lei;
- Dacă spectatorul are sub 12 ani, are reducere de 50%;
- Dacă spectatorul are peste 60 de ani, are reducere de 30%;
Programul va calcula și afișa prețul final al biletului.

Succes! ❤️

Instrucțiuni de decizie în Limbajul Java

 Instrucțiunea if-else

Sintaxă:                                    

if (expresie) {

... lista instrucțiuni }

else  {

... lista instrucțiuni }

Semantică:

Se evaluează expresia dintre paranteze care trebuie sa returneze o valoare booleană. Dacă ea returnează true atunci se execută lista de instrucțiuni din corpul if. Dacă ea returnează false se execută lista de instrucțiuni else.

 

Exemplu:

int x = 4;

if( x % 2 == 0 )

x = 100;

else

x = 1000;             

Instrucțiunea if  poate avea mai multe forme:






Instrucțiunea switch-case

Sintaxă:

switch (expresie) {

   case valoare_particulara1 : < expresie 1 >    break;

   case valoare_particulara2 : < expresie 2 >    break;

    …

   default : < expresie >

  }

Semantică:

Execuţia instrucțiunii switch începe întotdeauna prin evaluarea expresiei dintre parantezele rotunde. Această expresie trebuie să fie de tipul caracter, octet, întreg scurt sau întreg. Selectorul instrucțiunii switch poate fi și de tip String începând cu versiunea Java 7.

 După evaluarea expresiei se trece la compararea valorii rezultate cu valorile particulare specificate în etichetele case din interiorul blocului de instrucțiuni. Dacă una dintre valorile particulare este egală cu valoarea expresiei, se execută instrucțiunile începând de la eticheta case corespunzătoare acelei valori în jos, până la capătul blocului. Dacă nici una dintre valorile particulare specificate nu este egală cu valoarea expresiei, se execută instrucțiunile care încep cu eticheta default, dacă aceasta există.

Este important ca fiecare expresie de tip case să fie terminată cu instrucțiunea break deoarece aceasta asigura ieșirea din structură.

Notă!

1.     Constantele case trebuie să fie de același tip ca și selectorul.

2.     Nu pot exista 2 constante case cu același nume.

3.     Cel mult o constantă poate fi asociată unui selector.

 

Exemplu switch cu selector de tip int:


public class Main{

  public static void main(String[] args) {

   int selector = 2;

    switch(selector){

     case 1:

       System.out.println("Valoarea este egala cu 1");

     break;

     case 2:

       System.out.println("Valoarea este egala cu 2");

     break;

     case 3:

       System.out.println("Valoarea este egala cu 3");

     break;

     case 4:

       System.out.println("Valoarea este egala cu 4");

     break;

   default:

      System.out.println("Valoarea nu aparține intervalului");

    }

}}



Rezultat: 


Exemplu switch cu break omis:


public class Main{

  public static void main(String[] args) {

   int selector = 6;

    switch(selector){

     case 2:

     case 4:

     case 6:

     case 8:

       System.out.println("Numar par");

     break;

   default:

      System.out.println("Numar impar");

    }

}}


Rezultat: 


Notă! Într-un switch, dacă nu pui break, programul continuă să execute și instrucțiunile din cazurile următoare. Acest comportament se numește fall-through.

Poate fi util pentru a grupa cazuri similare, dar dacă uiți break din greșeală, programul poate produce rezultate neașteptate. 



Exemplu switch cu selector de tip String:


public class Main{

  public static void main(String[] args) {

  String luna = "Iunie";

  switch (luna) {

    case "Iunie":

    case "Iulie":

    case "August":

       System.out.println("E vară");

    break;

   default:

    System.out.println("Nu e vară");

}

}} 




Exemplu de expresie cu switch: Începând cu Java 12, instrucțiunea switch a fost extinsă și poate fi folosită nu doar ca o structură de control, ci și ca o expresie care returnează o valoare. 
Asta înseamnă că putem atribui direct rezultatul unui switch unei variabile. 

public class Main{
  public static void main(String[] args) {
   int valoare = 3;
   String rezultat = switch (valoare) {
    case 1 -> "unu";
    case 2 -> "doi";
    case 3, 4 -> "trei sau patru";
    default -> "alt număr";
     };
System.out.println(rezultat);
}}



Să aveți o zi deosebită!
❤️

duminică, 21 septembrie 2025

Tipuri de date enumerare


În Java, un tip de date enumerare (numit și enum) este un tip de date special utilizat pentru a defini o colecție de constante cu nume.

 Enum-urile sunt introduse în Java începând cu versiunea 5 și sunt utilizate pentru a reprezintă un set fix de valori, cum ar fi zilele săptămânii, lunile anului, stările unui obiect etc. 

Ele oferă o modalitate sigură și clară de a lucra cu un grup de constante înrudite.

Reguli:
  1. Un tip de date enumerare este definit folosind cuvântul cheie enum.
  2. Valorile definite într-un enum sunt constante și nu pot fi modificate.
  3. O variabilă de tip enumerare poate lua doar valorile specificate în cadrul enumerării, adică doar simbolurile definite la momentul declarării acesteia.
  4. Enum-urile oferă siguranță la tip, reducând erorile cauzate de utilizarea unor valori nevalide.
  5. Enum-urile pot avea constructori, metode și câmpuri, ceea ce le face foarte flexibile.
  6. Enum-urile extind implicit clasa java.lang.Enum și nu pot extinde alte clase, dar pot implementa interfețe.

Exemplu:

enum Zi {
LUNI, MARTI, MIERCURI, JOI, VINERI, SAMBATA, DUMINICA
}


public class Main{
public static void main(String[] args) {
     Zi azi = Zi.LUNI;
     System.out.println("Astăzi este: " + azi);
}}


De asemenea, putem crea variabile de tipuri de enumerare și pot fi utilizate în cadrul altor instrucțiuni Java cum ar fi switch.

De exemplu:

enum ZileLucratoare {
    LUNI, MARTI, MIERCURI, JOI, VINERI
}

class EnumerareSwitch{
    ZileLucratoare  zi;
    public EnumerareSwitch(ZileLucratoare  zi) {
        this.zi = zi;
    }
    public void afisareTask() {
        switch(zi) {
            case LUNI:
              System.out.println("Analiza specificului companiei");
                break;
            case MARTI:
                System.out.println("Analiza sarcinii.");
                break;
            default:
                System.out.println("Nu mai avem task-uri");
                break;
  }    }}


class TestEnumerareSwitch{
    public static void main(String[] args) {
      EnumerareSwitch ob = new EnumerareSwitch(ZileLucratoare.LUNI);
      ob.afisareTask();
    }
}

 




luni, 15 septembrie 2025

Tipuri de date. Variabile și constante


În Java există 2 tipuri generale de date:

  • primitive (byte, short, int, long, float, double, char, boolean)
  • referință (obiectele , vectorii, String)
Tipurile primitive sunt tipuri de date fundamentale ce nu mai pot fi descompuse în alte subtipuri. 
În Java există 8 tipuri de date primitive: 

Variabilele reprezintă un spațiu de memorie în care se poate stoca o valoare care poate fi schimbată pe parcursul programului. 
Se declară specificând tipul de date și numele variabilei. Poate fi inițializată imediat sau mai târziu.

Variabilele în Java sunt de 3 tipuri:
  • locale, declarate în interiorul unei metode
  • de instanță, declarată în interiorul clasei dar înafara metodei. Nu este declarată folosind cuvântul rezervat static.
  • de clasă (statice), declarată ca static, nu poate fi locală.
Pentru a defini o variabila se folosește sintaxa:

tip_variabila nume_variabila;

unde:

tip_variabila – unul din cele 8 tipuri primitive sau un tip definit de programator prin clase;

nume_variabila – numele variabilei definit de programator;



❗ Reguli importante!

  • numele variabilei trebuie sa înceapă cu o literă, linie de subliniere (_) sau cu simbolul dolar ($);
  • numele de variabilă NU poate începe cu o cifră, după primul caracter se pot folosi cifre;
  • numele de variabila NU poate fi un cuvânt Java rezervat;
  • variabila trebuie definită oriunde în program înainte de a fi folosită;
Pot fi definite mai multe variabile în același timp;

De exemplu:

int a; double c, d, e; boolean $c; short _x;
int varsta = 20;  double media = 9.5; 
boolean esteActiv = true; char initiala = 'A';    

La inițializarea unei variabile trebuie să se țină cont de tipul acesteia, deoarece în Java NU este posibil atribuirea de valori de tip diferit decât cel al variabilei. De exemplu, instrucțiunile următoare generează eroare de compilare de tipul possible loss of precision:

int x = 34.5; float c = 23.6;

În cazul variabilei de tip float, c, eroare este generată deoarece valorile reale constante sunt considerate de tip double. Corect este sa pui f la sfârșitul valorii, adică 23.5f.

Reguli!
  • tipul valorii trebuie sa fie identic cu tipul variabilei;
  • pot fi inițializate mai multe variabile în același timp;
  • în Java singurele valori posibile pentru variabile booleene sunt true sau false (în C sau C++, orice valoare numerică diferită de 0 este considerată true);
  • valorile constante de tip float se definesc cu simbolul f la final deoarece, implicit, constantele reale sunt considerate de tip double;
  • simbolurile de tip caracter se definesc între ' '(apostrof) și nu între " " (ghilimele);

Constantele reprezintă un spațiu de memorie al cărui conținut nu se schimbă după inițializare. Se declară folosind cuvântul cheie final. Este o valoare fixă, de obicei scrisă cu litere mari, pentru claritate.

Pentru a defini o constantă se va folosi cuvântul cheie final: 
final tip NUME_CONSTANTA = valoare;

De exemplu: 
final int D=3; 
final double PI = 3.14159;
final int MAX_ELEV = 30; 

Dacă încerci să schimbi valoarea unei constante, Java va genera eroare de compilare: 

PI = 3.14; // Eroare!



Să aveți o zi deosebită!


💝

duminică, 7 septembrie 2025

Clase și obiecte. Sintaxă și semantică

Clasa stă de fapt la baza programării orientate e obiecte, pe ea este construit întregul limbaj Java, deoarece clasa definește obiectul.


O clasă reprezintă un șablon sau un tip de bază pentru crearea obiectelor. Este un tip abstract de date definit de programator. Atunci când definim o clasă nouă creăm un nou tip de date.

O clasă descrie un set de caracteristici (date, atribute sau variabile de instanță) și comportamente (funcționalitate, metode sau funcții) pe care obiectele create din acea clasă le vor avea. Clasa în POO întrunește toate obiectele de una şi aceeași natură, ceea ce înseamnă că obiectele care aparțin uneia și aceleiași clase au una şi aceeași structură şi comportament.

Sintaxa de definire a unei clase este: 

Prima parte din declarația unei clase o constituie modificatorii de acces care sunt opționali. După numele clasei putem specifica, dacă este cazul, faptul că respectiva clasă este subclasă a unei alte clase cu numele nume_super_clasă, sau/şi că implementează una sau mai multe interfeţe ale căror nume trebuie separate prin virgulă.


Corpul unei clase este cuprins între { } şi are ca conţinut:
  • declararea şi inițializarea variabilelor de instanţă şi de clasă;
  • declararea şi implementarea constructorilor;
  • declararea şi implementarea metodelor de instanţă şi de clasă;
  • declararea unor clase interne.
Reţineţi!
  • într-un fișier Java pot fi definite mai multe clase;
  • într-un fișier Java numai o clasă poate avea modificatorul public;
  • fișierul Java ce conține o clasă publică trebuie să fie cu același nume ca și clasa publică.
O clasă poate avea unul din următoarele cuvinte rezervate în declarația acestora:

Exemplu de declarație de clasă: 


În Java orice clasă conţine 2 tipuri de elemente : atribute (variabilele) şi metode






Programarea Orientată spre Obiecte

Ca urmare a dezvoltării aplicațiilor software se impune o organizare cât mai eficientă a codului sursă astfel încât acesta să fie mai ușor de întreținut și înțeles.

Dea lungul timpului au fost dezvoltate mai multe tehnici de organizare a codului sursă:

a) Programarea nestructurată
  • Date și instrucțiunile se găsesc în programul principal, într-o unitate de compilare;
  • Implică utilizarea excesivă a instrucțiunilor "goto" pentru a transfera controlul de la o secțiune a codului la alta. Aceasta poate duce la crearea unor structuri de control dificil de urmărit și de înțeles.
  • Lipsesc structuri de control clare, precum bucle și condiții, care sunt fundamentale în tehnicile noi de organizare a codului;
  • Cu cât codul devine mai lung cu atât mai greu este de întreținut;
  • Mult cod duplicat;
Exemple: Assembler, Fortran, Basic, Cobol, ș.a

❗ Este important să subliniem că aceste limbaje nu erau neapărat proiectate pentru a încuraja programarea nestructurată, ci mai degrabă reflectau practicile de dezvoltare din perioadele timpurii ale informaticii, când conceptele de programare structurată nu erau încă pe deplin înțelese și adoptate. Cu timpul, oamenii au recunoscut avantajele programării structurate și au dezvoltat limbaje și practici care să promoveze o abordare mai clară și ușor de înțeles a dezvoltării software.

b) Programarea structurată

  • Utilizarea instrucțiunilor de control de flux precum bucle (for, while), condiționale (if, else), și structuri de selecție (switch) pentru a organiza logica programului.
  • Minimizarea utilizării instrucțiunilor de salt necontrolate ("goto") pentru a preveni crearea de fluxuri de control haotice și greu de urmărit.
  • Își propune să creeze programe mai ușor de înțeles, de întreținut și de extins, contribuind astfel la eficiența și calitatea dezvoltării software.
Exemple: C, C++, Pascal, Modula-2, Phyton, ș.a

c) Programarea procedurală
  • Se bazează pe noțiunea de subprogram ( proceduri, funcții) ;
  • Codul este mai bine organizat cu o funcționalitate mai bine precizată;
  • Codul devine mai complicat însă poate fi reutilizat;
  • Modificarea subprogramelor nu afectează restul programului;
Exemple: C, C++, Pascal, Fortran, Algol, ș.a

d) Programarea modulară
  • A apărut în urma creșterii dimensiunilor programelor, iar simpla organizare a codului sub formă de proceduri nu mai era eficientă;
  • Implică împărțirea unui sistem software mare și complex în module mai mici și independente ce permit rezolvarea problemelor dintr-un anumit domeniu;
  • Fiecare modul are o interfață bine definită care specifică cum poate fi utilizat de către alte module. Aceasta include declarații de funcții, tipuri de date și alte detalii necesare pentru a interacționa cu modulul.
  • Îmbunătățește lucrul cu reutilizarea codului;
  • Echipele de dezvoltare pot lucra independent la diferite module, reducând dependențele și facilitând dezvoltarea paralelă.
  • Testarea modulelor în mod separat este mai ușor de realizat, ceea ce contribuie la identificarea și remedierea erorilor mai rapid.
Exemple: C, C++, Pascal, Python, Modula2, Ada, ș.a

e) Programarea orientată spre obiecte
  • Tendință nouă de programare;
  • Modelează obiecte din lumea reală;
  • Programele sunt organizate ca colecții de obiecte ce cooperează între ele;
  • Detaliile și comportamentul obiectelor sunt păstrate în clase;
  • Programele sunt mult mai complexe și ușor de întreținut și modificat;
  • Simplifică lucrul în echipă la un program;
  • Se bazează pe 4 principii: încapsulare, moștenire, polimorfism, abstractizare;
Exemple: C++, Simula, Smalltalk, Java, ș.a


Deci, POO este un stil de programare în care programele sunt organizate ca şi colecții de obiecte cooperante, fiecare dintre ele reprezentând o instanță a unei clase, iar clasele sunt membre ale unei ierarhii de clase între care există relații de moștenire și respectă principiile POO.

sâmbătă, 6 septembrie 2025

Lecție practică Noțiuni fundamentale ale limbajului Java. Structura lexicală.


Exemplu rezolvat. Elaborați o aplicație în limbajul de programare Java care va afișa textul ,,Salut din Java!”.

Algoritm:

a) Lansați în execuție aplicația IntelliJ IDEA.
 
b) Selectați meniul File|New |Project


c) În câmpul Name indicați numele proiectului, specificați limbajul de programare – Java, Build system – IntelliJ, după care acționați butonul Create:

d) În rezultat în Package Explorer a fost creat un folder cu datele introduse. Iar în fereastra de lucru editorul de cod a creat o clasă nouă. Eliminați codul din interiorul metodei main():


- >


Notă! Editorul a creat o clasă nouă cu text deoarece la crearea proiectului am ales varianta New Project, varianta Empty Project va crea un proiect fără clasă: 

e) În interiorul metodei main() scrieți instrucțiunea care va afișa a ecran textul dorit:

f) Lansați la execuție proiectul prin activarea butonului Run din bara de butoane rapide sau activați combinația de taste Shift+F10:

g) Ați primit următorul rezultat:


Felicitări! 👏🏼

Ați creat prima aplicație consolă Java !👨🏼‍💻

Iar dacă ai întâmpinat careva greutăți îți recomand acest spot video: 






Probleme de elaborat individual

  1. Elaborați un program care afișează 3 informații esențiale despre limbajul Java.
  2. Elaborați un program care afișează 3 editoare/IDE-uri folosite pentru Java și câte un avantaj al fiecăruia.Elaborați un program care afișează: litere, cifre și câteva simboluri speciale (+, -, *, /).
  3. Elaborați un program care va afișa la ecran 4 operații asupra a două numere.
  4. Elaborați un program care va afișa la ecran 3 numere separate prin virgulă.
  5. Scrieți un program Java care va afișa numele , vârsta și adresa dvs.
  6. O bibliotecă are trei tipuri de cărți: romane, manuale și reviste. Numărul romanelor se specifică direct în cod. Numărul manualelor este cu 3 mai mare decât numărul romanelor. Numărul revistelor este mai mic cu 2 decât totalul romanelor și manualelor. 
  7. Elaborați un program care să determine numărul total de cărți din bibliotecă. 
  8. Într-o grădină sunt trandafiri, lalele și crizanteme. Numărul trandafirilor se indică direct în codul programului. Numărul lalelelor este cu 4 mai mic decât trandafirii, iar crizantemele sunt egale cu suma dintre trandafiri și lalele. Elaborați un program care va afișa totalul florilor din grădină?
  9. Elaborați un program care va afișa definiții scurte pentru următoarele concepte: alfabetul limbajului, vocabularul limbajului, cuvinte cheie, identificatori, simboluri speciale.
  10. Lansați la execuție următorul program Java: public class Main{ public static void main(String[] args) { System.out.println("Salut "acest program" este realizat de mine.");}} Ce observați? Înlocuiți apelul metodei println() cu apelul println("Salut \"acest program\" este realiat de mine."). Executați programul. Analizați rezultatul. Testați secvențele Escape: \n, \r, \t, \b.
  11. Elaborați un program care va afișa la ecran valoarea expresiei: (𝑥+𝑦)∗(𝑥−𝑦). Unde valorile pentru necunoscute sunt atribuite direct în codul sursă.

vineri, 5 septembrie 2025

Editoare de cod performante

Un editor de cod este o aplicație folosită de programatori pentru a scrie, edita, compila și executa codul sursă pentru un limbaj de programare.

Editoarele performante oferă funcții avansate care ajută la creșterea productivității:
  • evidențierea sintaxei,
  • completare automată,
  • sugestii inteligente,
  • integrare cu sisteme de control al versiunilor (Git),
  • depanare și testare rapidă,
  • extensii și personalizare.
Editoare recomandate pentru Java

1. IntelliJ IDEA – Community Edition (gratuit)
Este practic cel mai popular IDE profesional pentru Java (și Kotlin). Există și o versiune comercială (Ultimate), însă pentru Java simplu, ediția gratuită este excelentă. Poate fi descărcat aici: https://www.jetbrains.com/idea/download/?section=windows

2. Apache NetBeans
Este un IDE open-source complet, ideal pentru dezvoltare Java SE, Java EE, JavaFX și altele. Vine cu suport integrat pentru Maven, Ant, controlul versiunilor (Git, CVS etc.) și refactorizare. Poate fi descărcat aici: https://netbeans.apache.org/front/main/download/

3. Eclipse IDE
Este un IDE robust și flexibil, cu extensii numeroase din Eclipse Marketplace. Oferă completare automată, debugging, integrare cu Maven, ș.a. 
Poate fi descărcat aici:  https://eclipseide.org/

4. Visual Studio Code (VS Code) + Java Extension Pack
Este un editor ușor, cu multe extensii utile pentru Java (Language Support by Red Hat, Debugger for Java etc.). Ideal pentru proiecte mai mici sau pentru cei care preferă ceva rapid și multi-lateral. 
Poate fi descărcat aici: https://code.visualstudio.com/docs/java/extensions

5. BlueJ
Este un IDE educațional pentru Java, excelent pentru învățare și proiecte mici. Vizualizează structura claselor în stil UML și permite interacțiune directă cu obiectele – util în predare și pentru înțelegerea conceptelor OOP. 
Poate fi descărcat aici: https://www.bluej.org/



luni, 1 septembrie 2025

Structura lexicală a limbajului Java

Alfabetul limbajului de programare

Reprezintă totalitatea caracterelor din care se pot forma instrucțiunile unui limbaj. Include:
litere (A–Z, a–z),cifre (0–9),simboluri speciale (+, -, *, /, =, <, >, etc.),caractere de control (spațiu, tab, enter),semne de punctuație (;, ,, ., : etc.).

Vocabularul limbajului

Este mulțimea de cuvinte și simboluri pe care limbajul le recunoaște și le folosește pentru a forma programe.
Din vocabular fac parte unitățile lexicale: cuvintele cheie, identificatorii, numerele, șirurile de caractere, simbolurile speciale și separatorii.

Unități lexicale ale limbajului

Setul de caractere

Limbajului Java folosește setul de caractere Unicode. Acesta fiind un standard internațional care înlocuiește vechiul set de caractere ASCII, deoarece a apărut necesitatea de a reprezenta mai mult de 256 de caractere. Setul de caractere Unicode, fiind reprezentat pe 16 biți oferă posibilități mult mai mari. Ceea ce înseamnă că pot fi folosite caractere în limbile chineză, japoneză și alte limbi. La citirea fişierului sursa, compilatorul Java folosește secvențele escape Unicode. Acestea sunt secvențe de caractere ASCII care încep cu caracterul backslash (\), după care urmează al doilea caracter din secvență care trebuie să fie u sau U, urmate de o combinație de patru cifre hexazecimale care formează împreună doi octeți de memorie reprezentând un caracter Unicode. De exemplu, cifrele de la 0 la 9 sunt reprezentate prin secvențe escape Unicode de la \u0030 la \u0039 și sunt interpretate ca cifre ISO-LATIN-1.

Unele caractere speciale nu pot fi scrise direct în text și sunt reprezentate prin așa-numitele secvențe escape:
\n - linie noua
\b - backspace
\t - tab
\\ - backslash
\” - ghilimele
\’ - apostrof
Adăugător despre secvențele Escape:
 https://www.geeksforgeeks.org/java/escape-sequences-in-java/


Identificatori

Reprezintă șiruri de caractere care sunt de fapt denumirile date unei variabile, clase sau unei funcții. Condiții:

  • şirul începe cu o literă, caracterul underscore (_) sau semnul dolarului ($);
  • şirul este diferit de orice cuvânt cheie sau rezervat;
  • şirul este diferit de null, false, true.
  • șirul este case-sensitive, astfel identificatorii suma și Suma sunt considerați identificatori diferiți.

Deși nu există o regulă obligatorie pentru scrierea identificatorilor, există anumite convenții utilizate:
  • identificatorii numelor de clase încep cu majusculă, fiecare cuvânt distinct din identificator începe cu majuscula (ex. MijloaceDeTransport);
  • identificatorii de variabila și metode încep cu litera mică, fiecare cuvânt care urmează începe cu majusculă (ex. setezCuloare());
  • identificatorii de constante se scriu cu majuscule (ex. PI_VALOARE);
Menținerea unei convenții clare și respectarea regulilor de denumire a identificatorilor nu doar facilitează înțelegerea codului, dar și îmbunătățește claritatea și întreținerea acestuia.


Cuvinte cheie

Limbajul de programare Java conține 50 cuvinte rezervate ce au o semnificație specială pentru compilator și nu pot fi utilizate în calitate de identificatori pentru variabile. Acestea sunt prezentate în tabelul de mai jos în ordine alfabetică



În tabelul următor vom prezenta o listă a cuvintelor rezervate grupate după categorie:


După cum am menționat cuvintele rezervate au semnificație specială pentru compilatorul Java, de aceea la folosirea lor se va ține cont de următoarele reguli:

  • const și goto sunt cuvinte rezervate ce nu se mai folosesc;
  • true, false și null sunt literali nu cuvinte rezervate;
  • toate cuvintele rezervate sunt compuse din litere mici;
Literali

Reprezintă valori constante de diferite tipuri de date primitive (întreg, caracter etc).

Separatori

Sunt utilizați pentru a separa unitățile lexicale unele de altele. Aceștia sunt: ( ) { } [ ] ; , .

Numere

Reprezintă valori numerice, întregi sau reale.

Exemple: 10, -25, 3.14.

Șiruri de caractere

Secvențe de caractere delimitate între ghilimele.

Exemple:
"Bună ziua!", "Hello World".

Comentarii

Comentariile nu reprezintă rânduri de cod sursă. Acestea nu sunt executate de către compilator. Acestea oferă informații programatorului astfel încât programul să fie ușor de înțeles și menținut. Orice program Java începe cu un scurt comentariu ce oferă o informație relevantă despre clasa creată. De obicei acesta arată în felul următor:


/* Acesta este un comentariu de mai multe linii
Filename: Denumirea programului
Version:
Created by: Numele programatorului
Created on: Data creării
Updated on: Data modificării
Comment: Descrierea generală a destinației programului
*/

În Java pute m folosi modalitățile de mai jos pentru a adăuga comentarii în codul sursă:

/* comentariu de o linie */
//alt comentariu de o linie
/* comentariu de mai
/* multe linii */


Operatori

Operatorii sunt utilizați pentru a exprima diferite formule elementare de calcul sau prelucrare a informației și sunt folosiți alături de literali, variabile, apeluri de metode şi alte expresii. Operatorii se pot clasifica în următoarele categorii:

  • Operatori aritmetici (+, -, *, /, %, ++, --)
  • Operatori relaționali sau de comparație (<=, ==, >=, >, !=)
  • Operatori booleeni (&&, ||, !, &, !, ^, |, &)
  • Operatori la nivel de bit (&, |, ^, ~, <>, >>>)
  • Operatorul de concatenare a String-urilor (+)
  • Operatori de atribuire (=, +=, -=, *=, ...)
  • Operatorul de conversie explicită ( (tip_date) )
  • Operatori speciali (instanceof , ternar)

Operatorul ternar are următoarea formă generală: boolean_exp ? value0 : value1. Dacă boolean_exp are valoarea true atunci value0 este valoarea returnată de operație. Invers, dacă boolean_exp este false, value1 este cea returnată.

De exemplu:

int a;
boolean cond=true; a=cond ? 5 : 6; //a va primi valoarea 5
cond=false; a=cond ? 5 : 6; //a va primi valoarea 6

Operatorul instanceof este folosit pentru a testa dacă un obiect este de o anumită clasă sau nu. Forma generală este: object instanceof className
Returnează true dacă obiectul object este de clasă className sau de o clasă derivată din aceasta şi false dacă nu. De exemplu:

Random rand = new Random ( );
boolean cond;
cond = rand instanceof Random; //cond va primi valoarea true


Să aveți o zi deosebită!
💝