//: initializtion/PrimitiveOverLoading.java
packageobject;import static net.mindview.util.Print.*;public classPrimitiveOverLoading
{void f1(char x){printnb("f1(char)");}void f1(byte x){printnb("f1(byte)");}void f1(short x){printnb("f1(short)");}void f1(int x){printnb("f1(int)");}void f1(long x){printnb("f1(long)");}void f1(float x){printnb("f1(float");}void f1(double x){printnb("f1(double)");}void f2(byte x){printnb("f2(byte)");}void f2(short x){printnb("f2(short)");}void f2(int x){printnb("f2(int)");}void f2(long x){printnb("f2(long)");}void f2(float x){printnb("f2(float");}void f2(double x){printnb("f2(double)");}void f3(short x){printnb("f3(short)");}void f3(int x){printnb("f3(int)");}void f3(long x){printnb("f3(long)");}void f3(float x){printnb("f3(float");}void f3(double x){printnb("f3(double)");}void f4(int x){printnb("f4(int)");}void f4(long x){printnb("f4(long)");}void f4(float x){printnb("f4(float");}void f4(double x){printnb("f4(double)");}void f5(long x){printnb("f5(long)");}void f5(float x){printnb("f5(float");}void f5(double x){printnb("f5(double)");}void f6(float x){printnb("f6(float");}void f6(double x){printnb("f6(double)");}void f7(double x){printnb("f7(double)");}voidtestConstVal(){
printnb("5: ");
f1(5);f2(5);f3(5);f4(5);f6(5);f7(5); print();
}voidtestChar(){char x = 0;
printnb("char: ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}voidtestByte(){byte x= 0;
printnb("byte: ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}voidtestShort(){short x= 0;
printnb("short : ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}voidtestInt(){int x= 0;
printnb("int: ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}voidtestLong(){long x= 0;
printnb("long: ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}voidtestFloat(){float x= 0;
printnb("Float: ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}voidtestDouble(){double x= 0;
printnb("double: ");
f1(x);f2(x);f3(x);f4(x);f6(x);f7(x); print();
}public static voidmain(String[] args)
{
PrimitiveOverLoading p= newPrimitiveOverLoading();
p.testConstVal();//常数值5被int 处理,如果传入类型不符合,就会进行提升和强制窄化处理
p.testChar(); //char 如果没有接受char 的方法 就会直接 提升到int
p.testByte();
p.testShort();
p.testInt();
p.testLong();
p.testFloat();
p.testDouble();
}
}/*output:
5: f1(int)f2(int)f3(int)f4(int)f6(floatf7(double)
char: f1(char)f2(int)f3(int)f4(int)f6(floatf7(double)
byte: f1(byte)f2(byte)f3(short)f4(int)f6(floatf7(double)
short : f1(short)f2(short)f3(short)f4(int)f6(floatf7(double)
int: f1(int)f2(int)f3(int)f4(int)f6(floatf7(double)
long: f1(long)f2(long)f3(long)f4(long)f6(floatf7(double)
Float: f1(floatf2(floatf3(floatf4(floatf6(floatf7(double)
double: f1(double)f2(double)f3(double)f4(double)f6(double)f7(double)*///~
本文通过一个Java示例程序详细展示了不同类型参数传递给方法时的自动类型转换过程,包括char、byte、short等基本类型的提升与强制窄化处理。
7562

被折叠的 条评论
为什么被折叠?



