Junior
Javaда типти которуу (casting) эмне?
sobes.tech AI
AIден жооп
Javaда типтерди (casting) бир типтин маанисин башка бир типтин маанисине айландыруу.
Типтердин түрлөрү:
- Ачык (Explicit Casting): Программист
(тур)оператору аркылуу жасайт. "Көбүрөөк" типтен "аз" типке айландырууда колдонулат (мисалы,doubleданintке). Бул маалыматтын жоголушуна алып келиши мүмкүн.// автоматтык түрдө айландыруу (implicit) int a = 10; double b = a; // intдан doubleга // ачык айландыруу (анык) double c = 10.5; int d = (int) c; // doubleдан intке, d 10 болот - Ички (Implicit) айландыруу (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: Суперкласстан подклассга айландыруу. Ачык айландыруу талап кылынат жана
ClassCastExceptionтүзүлүшү мүмкүн, эгер объект чын эле максаттуу подкласс болсо.Animal animal = new Dog(); // Upcasting // Downcasting - ачык айландыруу жана `instanceof` текшерүү if (animal instanceof Dog) { Dog dog = (Dog) animal; // Эми Dogго тиешелүү методдорду колдонсо болот }