int i = 2;
k = i + j + k;
Biroq, quyidagi kod NullPointerException ni chiqaradi asosiy turga null belgilashga harakat qilganda Integer sinf ob'ekti .
sinf NewProperties {
statik butun son i = null;
public static void main(String[] args) { int j = i; // avlod istisnolar
}
}
Asosiy turdagi qiymatlarni o'rash sinflari ob'ektlariga belgilash mumkinligiga qaramay, ob'ektlarni bir-biri bilan taqqoslash mos yozuvlar orqali amalga oshiriladi. int i = 7;
Butun son oa = i; Butun son ob = i;
System.out.print("oa == i" + (oa == i));//true System.out.print("ob == i" + (ob == i));//haqiqiy tizim. out.print("oa == ob" + (oa == ob));//false System.out.print("oa.equals(i)"
+ oa.teng(i)
+ oa.equals(ob));//to'g'ri
Asosiy turdagi qiymat teng () usuliga o'tkazilishi mumkin . Biroq , asosiy turdagi mos yozuvlar usullarni chaqira olmaydi: boolean b = i . teng ( oa )); // onm 5 Ka kompilyatsiya
Asosiy turdagi qiymatga ega bo'lgan o'rash sinfi ob'ektini ishga tushirishda tur konvertatsiyasi aniq ko'rsatilishi kerak, ya'ni kod
suzmoq f = 7;//7 o'rniga to'g'ri ( float )7 bo'ladi
kompilyatsiya xatosini keltirib chiqaradi.
Operatorlar
Java operatorlari amalda C ++ operatorlari bilan bir xil va bir xil ustuvorlikka ega. Ko'rsatkichlar yo'qligi sababli ular bilan ishlash uchun *, &, o'chirish operatorlari mavjud emas.
Butun sonlar ustida amallar: + , - , * , % , / , ++ , - va bit bo'yicha operatsiyalar & , | , L , ~ C++ operatsiyalariga o'xshaydi. Butun son turini nolga bo'lish istisnoga olib keladi; to'lib ketish belgilanmaydi.
O'zgaruvchan nuqta raqamlari bo'yicha amallar C++ da deyarli bir xil, ammo IEEE 754 standartiga ko'ra, cheksizlik + Infinity tushunchasi kiritilgan. va — Cheksizlik va NaN qiymati ( Yo'q a Raqam ), masalan, salbiy sonning kvadrat ildizini olish orqali olinishi mumkin.
Do'stlaringiz bilan baham: |