Junior
Кастинг (casting) дар Java чист?
sobes.tech AI
Ҷавоб аз AI
Тигезлик (casting) дар Java — ин тағйирёбии арзиши як навъи маълумот ба навъи дигар.
Намудҳои тигезлик:
- Аниқ (Explicit Casting): Инро барномасоз бо ёрии оператор
(тур)анҷом медиҳад. Барои тағйирёбии аз навъи "бузург" ба навъи "кичик" истифода мешавад (масалан, азdoubleбаint). Мумкин аст, ки ба талафоти маълумот оварда расонад.// автоматии (implicit) тарҷума int a = 10; double b = a; // int ба double // аниқ (explicit) тарҷума double c = 10.5; int d = (int) c; // double ба int, d хоҳад 10 - Тарҷумаи автоматӣ (Implicit Casting / Widening Conversion): Автоматӣ аз ҷониби JVM анҷом дода мешавад, вақте ки аз навъи "кичик" ба навъи "бузург" (масалан, аз
intбаdouble) тағйирёбӣ мешавад. Бехатар аст ва талафоти маълумотро намеорад.int x = 10; double y = x; // int автоматӣ ба double табдил меёбад
Тигезлик метавонад байни навъҳои асосӣ ё байни объектҳои дар ҳирасарии мерос қарор дошта бошад.
Барои тағйирёбии навъҳои объект:
- Upcasting: Табдил додани субкласс ба суперкласс. Ин implicit ва бехатар аст.
class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // Upcasting - Downcasting: Табдил додани суперкласс ба субкласс. Аз рӯи талабот, бояд explicit ва бо истифода аз
instanceofсанҷиш анҷом дода шавад.Animal animal = new Dog(); // Upcasting // Downcasting - талаб мекунад explicit ва санҷиши `instanceof` if (animal instanceof Dog) { Dog dog = (Dog) animal; // Ҳоло метавон методҳои махсуси Dog-ро истифода бурд }