CodeGym /Blog Java /rawak /Casting Jenis Java
John Squirrels
Tahap
San Francisco

Casting Jenis Java

Diterbitkan dalam kumpulan

Apakah Jenis Casting di Jawa?

Jenis data ialah set nilai yang dipratentukan yang menentukan jenis nilai yang boleh disimpan di dalamnya bersama-sama dengan operasi yang boleh dijalankan ke atasnya.
Java Type Casting ialah proses yang mana satu jenis data ditukar kepada yang lain.
Ia boleh tersurat dan tersirat . Pencetakan tersirat yang juga dikenali sebagai penuangan taip automatik dilakukan oleh pengkompil. Pengetikan eksplisit dilakukan secara manual oleh pengaturcara dalam kod.

Mengapa Jenis Casting Diperlukan?

Java mempunyai jenis data primitif yang berbeza yang memerlukan ruang yang berbeza dalam ingatan. Ini boleh menyebabkan isu keserasian semasa memberikan nilai satu jenis data kepada yang lain. Jika datatypes sudah serasi, typecasting dilakukan secara automatik oleh compiler. Oleh itu, taip menyelesaikan masalah keserasian utama apabila berurusan dengan jenis data yang berbeza dalam program kami.

Jenis Casting Jenis Java

Terdapat dua jenis pemutus jenis di Jawa.
  1. Pelebaran Jenis Casting — Juga dikenali sebagai Hantaran Jenis Tersirat atau Automatik
  2. Penyempitan Jenis Hantaran — Juga dikenali sebagai Hantaran Jenis Eksplisit atau Manual

Pelebaran Jenis Casting

Pelebaran taip, seperti namanya, merujuk kepada pelebaran jenis data yang lebih kecil kepada jenis data yang lebih besar. Kami melakukan taip ini apabila kami ingin menukar jenis kecil kepada jenis besar. Jenis data mestilah serasi antara satu sama lain. Tiada penukaran tersirat daripada numerik kepada jenis char atau boolean. Di Java, jenis char dan boolean tidak serasi.
byte -> short -> char -> int -> long -> float -> double
Jenis pemutus ini dilakukan secara automatik oleh pengkompil tanpa kehilangan maklumat. Ia tidak memerlukan sebarang pencetus luaran oleh pengaturcara.

Contoh

//Automatic type conversion
public class WideningExample {
   public static void main(String[] args) {

       int i = 100;
       System.out.println("int value: " + i);

       // int to long type
       long l = i;
       System.out.println("int to long value: " + l);

       // long to float type
       float f = l;
       System.out.println("int to float value: " + f);


       byte b = 1;
       System.out.println("byte value: " + b);

       // byte to int type
       i = b;
       System.out.println("byte to int value: " + i);

       char c = 'a';
       System.out.println("char value: " + c);

       // char to int type
       i = c;

       // prints the ASCII value of the given character
       // ASCII value of 'a' = 97
       System.out.println("char to int value: " + i);
   }
}

Pengeluaran

nilai int: 100 int kepada nilai panjang: 100 int kepada nilai terapung: 100.0 nilai bait: 1 bait kepada nilai int: 1 nilai char: char kepada nilai int: 97

Penjelasan

Dalam kod di atas, kami telah menunjukkan pelebaran taip yang dilakukan oleh pengkompil secara automatik. Pertama sekali, kami memberikan nilai kepada int , byte , dan char . Kami kemudiannya memberikan nilai int kepada long dan float , yang kedua-duanya lebih besar daripada int . Kami juga memberikan nilai bait dan char kepada int . Kedua-dua bait dan char adalah jenis data yang lebih kecil daripada int , oleh itu, penukaran ini adalah tersirat.

Pemutus Jenis Penyempitan

Penyempitan taip, seperti namanya, merujuk kepada penyempitan jenis data yang lebih besar kepada jenis data yang lebih kecil. Kami melakukan penuangan taip ini apabila kami ingin menukar jenis besar kepada jenis kecil.
double -> float -> long -> int -> char -> short -> byte
Untuk jenis penghantaran ini, kami mengatasi penukaran lalai Java dengan menentukan penukaran kami sendiri. Untuk mencapai matlamat ini, kami menulis pembolehubah atau nilai yang perlu ditaip didahului oleh jenis data sasaran dalam kurungan '()'. Walau bagaimanapun, jenis tuangan ini boleh mengakibatkan kehilangan ketepatan yang mungkin.

Contoh

//Manual Type Conversion
public class NarrowingExample {
   public static void main(String[] arg) {

       // double data type
       double d = 97.04;
       // Print statements
       System.out.println("double value: " + d);

       // Narrowing type casting from double to long
       // implicitly writing the target data type in () followed by initial data type
       long l = (long) d;

       // fractional part lost - loss of precision
       System.out.println("long value: " + l);

       // Narrowing type casting from double to int
       // implicitly writing the target data type in () followed by initial data type
       int i = (int) l;

       // fractional part lost - loss of precision
       System.out.println("int value: " + i);

       // Narrowing type casting from double to int
       // implicitly writing the target data type in () followed by initial data type
       char c = (char) i;

       // displaying character corresponding to the ASCII value of 100
       System.out.println("char value: " + c);
   }
}

Pengeluaran

nilai berganda: 97.04 nilai panjang: 97 nilai int: 97 nilai char: a

Penjelasan

Pengecilan taip perlu dilakukan secara eksplisit oleh pengaturcara menggunakan sintaks standard. Dalam program di atas, kami telah bermula dengan nilai berganda yang lebih besar daripada jenis data panjang dan int . Kami menaip ini dua kali ganda kepada panjang dan int dengan menggunakan kurungan dengan jenis data sasaran yang dikehendaki. Kami juga telah menaip 'int' kepada 'char' secara manual.

Kesimpulan

Menjelang akhir siaran ini, kami harap anda telah membiasakan diri dengan Java Type Casting secara terperinci. Anda telah mempelajari dua jenis taip dalam java. Anda juga telah mempelajari cara menghantar jenis data tidak serasi secara manual menggunakan penyempitan taip. Anda boleh mencuba kombinasi jenis data lain dengan nilai yang berbeza sendiri untuk memahaminya dengan lebih mendalam. Teruskan berlatih untuk menguasai konsep yang lebih mendalam. Sehingga itu, terus berkembang dan terus bersinar!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION