public static void testLong(long i) {testLong没有问题,因为传递的参数50是int型的,而接收方参数是long型的,小范围可以自动转型为大范围的数据类型;testFloat不会通过编译,因为传递的参数1.5是double类型的,而接收方参数是float类型的,大范围转型为小范围数据类型需要显式转换,即改为testFloat(1.5f)。
System.out.println("test long");
}
public static void testFloat(float i) {
System.out.println("test float");
}
public static void main(String[] args) {
testLong(50);
testFloat(1.5);
}
public static class A {在定义了自定义构造器后,若要使用默认构造器,则需要显式指定默认构造器,否则A a = new A();不能编译通过。
A(int i) {
System.out.println("A(int i)");
}
}
public static void main(String[] args) {
A a = new A();
}
public static class A {在一个构造器中调用其它构造器时,需要使用this关键字进行调用,如this();在一个构造器中可调用仅一个其它构造器,并且调用其它构造器的语句需放在调用者(即发出调用行为的构造器)语句块的第一行。
A() {
System.out.println("A()");
}
A(int i) {
System.out.println("A(int i)");
}
A(int i, int j) {
A();
A(i);
System.out.println("A(int i, int j)");
}
}
public static class A {执行结果为:
private int i;
private String j;
int getI() {
return i;
}
String getJ() {
return j;
}
A(int i) {
i = i;
}
A(String j) {
this.j = j;
}
}
public static void main(String[] args) {
System.out.println(new A(5).getI());
System.out.println(new A("hello").getJ());
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |