私たちは、次のコードを入力します。
パブリック クラスDataType07 { 公共 静的 ボイドメイン(文字列[]引数){ バイト B1 = 4 。 バイト B2 = 5 ; バイト B3 = B2 + B1。 System.out.println(B3)。 } }
コマンドラインコンパイラでは、次のように:
私たちは、プログラムの実行時に、互換性のない型、与えられたB1とB2は、加算器の操作を行い、その後、IINT型に変換されます。
だから我々は、これを行うには、次のコードを入力する必要があります。
パブリック クラスDataType07 { 公共 静的 ボイドメイン(文字列[]引数){ バイト B1 = 4 ; バイト B2 = 5 ; // バイトB3 = B1 + B2、互換性のない型エラープログラムの実行時に、B1、B2の意志IINT型が変換され、加算器を行います。 // のSystem.out.println(B3)、 バイト B3 =(バイト)(B1 + B2) のSystem.out.println(B3); } }
コマンドラインインタプリタ次のように:
私たちは、B1 + B2バイト型に変換を余儀なくされています。
次のコードを入力します。
public class DataType07 { public static void main(String[]args){ byte b1 = 4; byte b2 = 5; //byte b3 = b2 + b1; error 不兼容的类型,程序运行的时候,会将b1和b2转换成iint类型,然后再做加法运算。 //System.out.println(b3); byte b3 = (byte)(b1+b2); System.out.println(b3); byte b4 = 10; byte s1 = 5; int i1 = b4 + s1 ; System.out.println(i1); } }
命令行结果为:
我们可以看到是没有报错的,因为程序会默认把byte类型的数字与short类型的数字自动转换成int类型。