CodeGym /Java Blog /ランダム /Java の型キャスト
John Squirrels
レベル 41
San Francisco

Java の型キャスト

ランダム グループに公開済み

Java の型キャストとは何ですか?

データ型は、データ型 に格納できる値のタイプと、その値に対して実行できる操作を指定する、事前定義された値のセットです。
Java の型キャストは、あるデータ型を別のデータ型に変換するプロセスです。
暗黙的明示的の 両方が可能です。自動型キャストとも呼ばれる暗黙的な型キャストは、コンパイラによって実行されます。明示的な型キャストは、コード内でプログラマによって手動で行われます。

なぜ型キャストが必要なのでしょうか?

Java には、メモリ内に異なるスペースを必要とするさまざまなプリミティブ データ型があります。これにより、あるデータ型の値を別のデータ型に割り当てるときに互換性の問題が発生する可能性があります。データ型にすでに互換性がある場合、型キャストはコンパイラによって自動的に行われます。したがって、型キャストは、プログラム内でさまざまなデータ型を扱う際の互換性に関する主要な問題を解決します。

Java の型キャストの種類

Java には 2 種類の型キャストがあります。
  1. 拡張型キャスト— 暗黙的または自動型キャストとも呼ばれます
  2. ナローイング型キャスト— 明示的または手動型キャストとも呼ばれます

拡幅型鋳物

拡張型キャストは、その名前が示すように、より小さなデータ型をより大きなデータ型に拡張することを指します。この型キャストは、小さい型を大きい型に変換するときに実行します。データ型は相互に互換性がある必要があります。数値から文字型またはブール型への暗黙的な変換はありません。Java では、char 型と boolean 型には互換性がありません。
byte -> short -> char -> int -> long -> float -> double
このタイプのキャストは、情報を失うことなくコンパイラによって自動的に行われます。プログラマによる外部トリガーは必要ありません。

//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);
   }
}

出力

int 値: 100 int から long 値へ: 100 int から float 値: 100.0 バイト値: 1 バイトから int 値へ: 1 char 値: char から int 値へ: 97

説明

上記のコードでは、コンパイラによって自動的に行われる拡張型キャストを示しました。まず、intbyte、およびcharに値を割り当てました。次に、 int 値をlongfloatに割り当てました。どちらもintより大きくなります。また、byte値とchar値をintに割り当てました。bytechar はどちらもintよりも小さいデータ型であるため、これらの変換は暗黙的でした。

絞り型鋳物

名前が示すように、型キャストの絞り込みは、より大きなデータ型をより小さなデータ型に絞り込むことを指します。この型キャストは、大きな型を小さな型に変換するときに実行します。
double -> float -> long -> int -> char -> short -> byte
このタイプのキャストでは、独自の変換を指定することで Java のデフォルト変換をオーバーライドします。これを実現するには、型キャストする必要がある変数または値を、括弧「()」内にターゲット データ型の前に書きます。ただし、このタイプの鋳造では精度が失われる可能性があります。

//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);
   }
}

出力

double 値: 97.04 long 値: 97 int 値: 97 char 値: a

説明

型キャストの絞り込みは、プログラマが標準構文を使用して明示的に行う必要があります。上記のプログラムでは、longおよびintデータ型よりも大きいdouble値から開始しました。目的のターゲット データ型のかっこを使用して、この double をlongおよびintに型キャストしました。また、「int」を「char」に手動でタイプキャストしました。

結論

この投稿を終えるまでに、Java の型キャストについて詳しく理解していただければ幸いです。Java の 2 種類の型キャストについて学習しました。また、ナローイング型キャストを使用して、互換性のないデータ型を手動でキャストする方法も学習しました。より深く理解するために、さまざまな値を持つデータ型の他の組み合わせを自分で試してみることができます。概念をより深く理解できるように練習を続けてください。それまで、成長して輝き続けてください!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION