基本タイプに関するリロード
6372 ワード
基本タイプは、小さなタイプから大きなタイプに自動的に昇格します.このプロセスが重荷にかかわると、
いくつかの混同を引き起こす可能性があります.
出力:charタイプリロード:f 1(char)f 2(int)f 3(int)byteタイプリロード:f 1(byte)f 2(short)f 3(int)shortタイプリロード:f 1(short)f 2(short)f 3(int)f 4(long)
結論:入力されたデータ型がメソッドで宣言されたパラメータ型より小さい場合、実際のデータは向上します.
charタイプが異なり、charパラメータのメソッドが適切に見つからないがintパラメータメソッドが存在する場合、
charはint型に直接昇格した.
逆に、入力される実際のパラメータが大きく、形式パラメータタイプが小さい場合は、強制タイプ変換(狭窄変換)により、
タイプが自動的に下がることは期待できません.そうしないと、コンパイラが間違っています.
いくつかの混同を引き起こす可能性があります.
package example;
public class Test {
/**
*
*/
public static void main(String[] args) {
System.out.print("char :");
char x='x';
f1(x);f2(x);f3(x);
System.out.print("byte :");
byte y=0;
f1(y);f2(y);f3(y);
System.out.print("short :");
short z=0;
f1(z);f2(z);f3(z);f4(z);
}
public static void f1(char x){System.out.print("f1(char)");};
public static void f1(byte x){System.out.print("f1(byte)");};
public static void f1(short x){System.out.print("f1(short)");};
public static void f1(int x){System.out.print("f1(int)");};
public static void f1(long x){System.out.print("f1(long)");};
public static void f1(float x){System.out.print("f1(float)");};
public static void f1(double x){System.out.print("f1(double)");};
public static void f2(short x){System.out.print("f2(short)");};
public static void f2(int x){System.out.print("f2(int)");};
public static void f2(long x){System.out.print("f2(long)");};
public static void f2(float x){System.out.print("f2(float)");};
public static void f2(double x){System.out.print("f2(double)");};
public static void f3(int x){System.out.print("f3(int)");};
public static void f3(long x){System.out.print("f3(long)");};
public static void f3(float x){System.out.print("f3(float)");};
public static void f3(double x){System.out.print("f3(double)");};
public static void f4(long x){System.out.print("f4(long)");};
}
出力:charタイプリロード:f 1(char)f 2(int)f 3(int)byteタイプリロード:f 1(byte)f 2(short)f 3(int)shortタイプリロード:f 1(short)f 2(short)f 3(int)f 4(long)
結論:入力されたデータ型がメソッドで宣言されたパラメータ型より小さい場合、実際のデータは向上します.
charタイプが異なり、charパラメータのメソッドが適切に見つからないがintパラメータメソッドが存在する場合、
charはint型に直接昇格した.
逆に、入力される実際のパラメータが大きく、形式パラメータタイプが小さい場合は、強制タイプ変換(狭窄変換)により、
タイプが自動的に下がることは期待できません.そうしないと、コンパイラが間違っています.