java构造方法何时被调用_java构造方法调用问题

这篇博客讨论了Java中构造方法的递归调用情况,展示了如何通过构造方法初始化对象的不同方式。代码示例中演示了不同参数数量的构造方法如何互相调用,并在主函数中创建了一个Employee对象并设置了其属性。文章重点在于理解构造方法的执行顺序以及成员变量的初始化过程。
摘要由CSDN通过智能技术生成

java构造方法调用问题

关注:273  答案:2  手机版

解决时间 2021-01-18 03:03

已解决

2021-01-17 12:22

class Employee{ String name; private int age; private double salary; public Employee(String newName,int newAge, double newSalary) { Employee(newAge,newSalary); System.out.println("三个参数的构造方法被调用"); name=newName; } public Employee(int newAge,double newSalary) { Employee(newSalary); System.out.println("两个参数的构造方法被调用"); } public Employee(double newSalary){ Employee(); System.out.println("一个参数的构造方法被调用"); } public Employee() {System.out.println("没有构造方法被调用"); } void setAge(int newAge){ int age=0; 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()); } } 里面有几个错,求大大们更正

最佳答案

2021-01-17 12:31

复制粘贴即可

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 ());

}

}

全部回答

1楼

2021-01-17 14:08

1、完全可以,而且,在swing程序中经常用到。这样写的话,第一次调用父类构造方法,但子类覆盖了print方法,输出j,此时j未初始化,为0,接着子类构造方法调用print,此时j初始化为30,输出30,最后main方法中输出改变后的j,输出40。即得序列03040

为了证明上面执行过程是正确的,你可以调试一下,或者将j改为静态,这样,他在调用父类之前会初始化,所以序列就为303040

2、static方法属于类本身,所以父类构造函数调用的还是父类的,就出现了:

执行到了

10

3040

打字不易,如满意,望采纳。

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

推荐资讯

都在看什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值