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

duminică, 21 septembrie 2025

Tipuri identice și tipuri compatibile. Conversia implicită și explicită


Tipuri identice
Două variabile sunt de tip identic dacă:
  • sunt declarate cu același tip de date (ex. ambele int, ambele double, ambele String).
  • atribuirea dintre ele se face direct, fără conversii.
Exemplu:


public class TipuriIdentice {
public static void main(String[] args) {
   int a = 5;
// variabilă int
   int b = 10; // variabilă int
   a = b; // tipuri identice: corect
   System.out.println("a = " + a); // afișează 10
}
}

Tipuri compatibile

Două variabile sunt de tipuri compatibile dacă:
  • pot fi atribuite una alteia, dar este necesară o conversie de tip (implicită sau explicită).
  • exemplu: int este compatibil cu double, dar nu identic.

Exemplu:

public class TipuriCompatibile {
public static void main(String[] args) {
int x = 7;
double y = x;
// conversie implicită int → double
System.out.println("y = " + y); // afișează 7.0
double z = 9.8;
int w = (int) z; // conversie explicită double → int
System.out.println("w = " + w); // afișează 9
}
}

Deci:
  • intdouble se face automat (se mărește precizia).
  • double int necesită conversie explicită (se pierde partea zecimală).
Rețineți ! 

Implicit în limbajul Java se convertesc:
  • byte la short, int, long, float, double;
  • short la int, long, float, double;
  • int la long, float, double;
  • char la int, long, float, double;
  • long la float, double;
  • float la double;
Explicit
în limbajul Java se convertesc:
  • byte la char;
  • char la byte, short;
  • short la byte, char;
  • int la byte, short, char;
  • long la byte, short, char, int, long;
  • float la byte, short, char, int, long;
  • double la byte, short, char, int, long, float.

Situații de incompatibilitate

Există cazuri unde tipurile nu sunt nici identice, nici compatibile.

Exemplu

public class Incompatibil {
public static void main(String[] args) {
int nr = 10;
String text = "Salut";
nr = text;
// EROARE: int și String nu sunt compatibile
}
}

Deoarece int și String sunt tipuri complet diferite acestea nu pot fi atribuite.

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ă!


💝