Java tiplarni o‘zgartirish


ULASHISH

Java tiplarni o‘zgartirish

Tiplarni o‘zgartirish (type casting) — bir ma’lumot tipini boshqasiga aylantirish demakdir. Masalan, int tipini double tipiga aylantirish.

Java tilida tiplarni o‘zgartirishning ikki asosiy turi mavjud:

  • Kengaytiruvchi o‘zgartirish (widening casting) (avtomatik) — kichikroq tipni kattaroq o‘lchamli tipga o‘tkazish
    byte -> short -> char -> int -> long -> float -> double

  • Toraytiruvchi o‘zgartirish (narrowing casting) (qo‘lda) — kattaroq tipni kichikroq o‘lchamli tipga o‘tkazish
    double -> float -> long -> int -> char -> short -> byte

Kengaytiruvchi o‘zgartirish (widening casting)

Kengaytiruvchi o‘zgartirish kichikroq o‘lchamli tip kattaroq o‘lchamli tipga uzatilganda avtomatik ravishda amalga oshiriladi.

Bu ishlaydi, chunki ma’lumot yo‘qolish xavfi yo‘q. Masalan, int qiymati double ichiga bemalol sig‘adi:

Misol

int myInt = 9;
double myDouble = myInt; // Automatic casting: int to double

System.out.println(myInt);    // Outputs 9
System.out.println(myDouble); // Outputs 9.0

O‘zingiz sinab ko‘ring »


Toraytiruvchi o‘zgartirish (narrowing casting)

Toraytiruvchi o‘zgartirish qo‘lda, ya’ni qiymat oldiga qavs () ichida tipni yozish orqali bajarilishi kerak.

Bu talab qilinadi, chunki toraytirish ma’lumot yo‘qolishiga olib kelishi mumkin (masalan, double tipini int tipiga o‘tkazishda kasr qismi tashlab yuboriladi):

Misol

double myDouble = 9.78d;
int myInt = (int) myDouble; // Manual casting: double to int

System.out.println(myDouble); // Outputs 9.78
System.out.println(myInt);    // Outputs 9

O‘zingiz sinab ko‘ring »



Hayotiy misol

Quyida tiplarni o‘zgartirishning hayotiy misoli keltirilgan. Biz o‘yinda foydalanuvchi to‘plagan ballning maksimal ballga nisbatan foizini hisoblaymiz.

Natija butun son emas, balki suzuvchi nuqtali qiymat bo‘lishini ta’minlash uchun tiplarni o‘zgartirishdan foydalanamiz:

Misol

// Set the maximum possible score in the game to 500
int maxScore = 500;

// The actual score of the user
int userScore = 423;

/* Calculate the percentage of the user's score in relation to the maximum available score.
Convert userScore to double to make sure that the division is accurate */
double percentage = (double) userScore / maxScore * 100.0d;

System.out.println("User's percentage is " + percentage);

O‘zingiz sinab ko‘ring »



Video: Java tiplarni o‘zgartirish

Java Tutorial on YouTube
Java Tutorial on YouTube

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!