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.

Niciun comentariu:

Trimiteți un comentariu

Vă mulțumesc pentru feedback!