java构造方法调用问题
发布网友
发布时间:2022-05-25 21:05
我来回答
共2个回答
热心网友
时间:2024-12-02 03:09
1、完全可以,而且,在swing程序中经常用到。这样写的话,第一次调用父类构造方法,但子类覆盖了print方法,输出j,此时j未初始化,为0,接着子类构造方法调用print,此时j初始化为30,输出30,最后main方法中输出改变后的j,输出40。即得序列03040
为了证明上面执行过程是正确的,你可以调试一下,或者将j改为静态,这样,他在调用父类之前会初始化,所以序列就为303040
2、static方法属于类本身,所以父类构造函数调用的还是父类的,就出现了:
执行到了
10
3040
打字不易,如满意,望采纳。追问你是瞎回答的吧大哥?这段代码在我的编译器里是有错的,然后你说的答案跟实际答案也不搭边
热心网友
时间:2024-12-02 03:10
复制粘贴即可
class Employee
{
String name;
private int age;
private double salary;
public Employee ( String newName, int newAge, double newSalary )
{
this (newAge, newSalary);
System.out.println ("三个参数的构造方法被调用");
name = newName;
}
public Employee ( int newAge, double newSalary )
{
this (newSalary);
System.out.println ("两个参数的构造方法被调用");
}
public Employee ( double newSalary )
{
this ();
System.out.println ("一个参数的构造方法被调用");
}
public Employee ()
{
System.out.println ("没有构造方法被调用");
}
void setAge ( int newAge )
{
age = newAge;
}
int getAge ()
{
return age;
}
public static void main ( String args[] )
{
Employee s1 = new Employee ("李四", 30, 8000);
s1.setAge (31);
System.out.println ("年龄是" + s1.getAge ());
}
}