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.
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:
- int → double se face automat (se mărește precizia).
- double → int necesită conversie explicită (se pierde partea zecimală).
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;
- 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!