Java Tip Çevirmələri (Type Casting)

Java-da type casting (tip çevirmə) bir dəyişənin bir tipdən digər tipə çevrilməsi prosesidir. Java iki əsas çevirmə tipi təklif edir: implicit (avtomatik) və explicit (əl ilə).

9 İyun 2024 - 06:00
 0  90
Java Tip Çevirmələri (Type Casting)

Implicit Type Casting (Avtomatik Tip Çevirmə)

Implicit type casting, genişləndirici tip çevirmə olaraq da bilinir və daha kiçik bir tipin (məsələn, int) daha böyük bir tipə (məsələn, double) avtomatik çevrildiyi prosesdir. Bu çevirmə heç bir məlumat itkisi olmadan baş verir və kompilyator tərəfindən avtomatik olaraq aparılır.

Məsələn:

int myInt = 100;
double myDouble = myInt; // Implicit type casting
System.out.println(myDouble); // Çıxış: 100.0

Bu misalda int tipindən double tipinə avtomatik çevirmə baş verir.

Explicit Type Casting (Əl ilə Tip Çevirmə)

Explicit type casting daraldıcı növ çevirmə olaraq da bilinir və daha böyük bir tipin daha kiçik bir tipə çevrilməsidir. Bu çevirmə məlumat itkisi ilə nəticələnə bilər və ona görə də kompilyatorun xəbərdarlığı ilə icra olunur. Explicit type casting üçün sintaksis belədir: (hədəf tip) dəyər.

Məsələn:

double myDouble = 100.50;
int myInt = (int) myDouble; // Explicit type casting
System.out.println(myInt); // Çıxış: 100

Bu misalda double tipindən int tipinə çevirmə baş verir və bu prosesdə onluq hissə itirilir.

Type Casting-də Xüsusi Məqamlar

  1. Widening (Genişlənmə) və Narrowing (Daralma):

    • Widening Conversion: Daha kiçik bir tipdən daha böyük bir tipə çevrilmə (məsələn, int -> long -> float -> double). Məlumat itkisi yoxdur və avtomatik həyata keçirilir.
    • Narrowing Conversion: Daha böyük bir tipdən daha kiçik bir tipə çevrilmə (məsələn, double -> float -> long -> int). Məlumat itkisi mümkündür və əl ilə həyata keçirilməlidir.
  2. PrimtivTiplər:

    • Avtomatik çevirmə tiplər arasında baş verə bilər, məsələn, byte -> short, short -> int, int -> long, long -> float, float -> double.
    • Əl ilə çevirmə, məsələn, double -> float, float -> long, long -> int, int -> short, short -> byte.
  3. Referans Tiplər:

    • Referans tiplər arasında type casting inheritance (miras alma) vasitəsilə həyata keçirilir. Yuxarıdan aşağıya çevirmə (upcasting) avtomatikdir, aşağıdan yuxarıya çevirmə (downcasting) isə əl ilə aparılmalıdır.

Məsələn:

class Animal {
    void makeSound() {
        System.out.println("Animal sound");
    }
}

class Dog extends Animal {
    void makeSound() {
        System.out.println("Bark");
    }
    void fetch() {
        System.out.println("Fetch the ball");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Dog(); // Upcasting
        myAnimal.makeSound(); // Çıxış: Bark

        Dog myDog = (Dog) myAnimal; // Downcasting
        myDog.fetch(); // Çıxış: Fetch the ball
    }
}

Bu misalda Animal tipində olan obyekt Dog tipinə əl ilə çevrilir və Dog sinfinin spesifik metodlarına giriş imkanı verir.

Nəticə

Java-da type casting müxtəlif tiplər arasında çevirmə işlərini həyata keçirmək üçün vacib bir mexanizmdir. Düzgün və ehtiyatla istifadə olunmalıdır, xüsusilə də explicit type casting zamanı məlumat itkisi riskinə qarşı diqqətli olmaq lazımdır.