为什么java这段代码中类的两个属性初始化了两次

packagecn.pb.employee;/***员工类*/publicabstractclassEmployee{privateStringemployeeId;//... package cn.pb.employee;

/**
* 员工类
*/
public abstract class Employee {
private String employeeId;//员工编号
private String employeeName;//员工姓名
private float basicPay;//基本工资
public abstract float getPay();//计算工资

public Employee(){};
/**
* 为员工的编号、姓名赋初始值
* @param employeeId 员工编号
* @param employeeName 员工姓名
*/
public Employee(String employeeId,String employeeName){
this.employeeId=employeeId;
this.employeeName=employeeName;
}

/**
* 为员工的编号、姓名、基本工资赋初始值
* @param employeeId 员工编号
* @param employeeName 员工姓名
* @param basicPay 基本工资
*/
public Employee(String employeeId,String employeeName,float basicPay){
this.employeeId=employeeId;
this.employeeName=employeeName;
this.basicPay=basicPay;
代码中员工的编号和姓名赋了两次值
展开
 我来答
碧螺萧萧
推荐于2016-08-13 · TA获得超过377个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:118万
展开全部

这不叫初始化了两次,这个叫构造方法。new的时候用那个构造方法才会调用该方法进行初始化的。如果你觉得别扭可以这样写:

public abstract class Employee {
private String employeeId;//员工编号
private String employeeName;//员工姓名 
private float basicPay;//基本工资
public abstract float getPay();//计算工资

public Employee(){};
/**
* 为员工的编号、姓名赋初始值
* @param employeeId 员工编号
* @param employeeName 员工姓名 
*/
public Employee(String employeeId,String employeeName){
this.employeeId=employeeId;
this.employeeName=employeeName;
}

/**
* 为员工的编号、姓名、基本工资赋初始值
* @param employeeId 员工编号
* @param employeeName 员工姓名 
* @param basicPay 基本工资
*/
public Employee(String employeeId,String employeeName,float basicPay){
this(employeeId, employeeName);
this.basicPay=basicPay;
}

}
huzhiling999
2015-11-05
知道答主
回答量:17
采纳率:0%
帮助的人:4.2万
展开全部
小哥,你描述的问题有点不是很清楚,但是,你的几个构造函数,分别以不同的初始参数都可以构建对象,你用什么参数构造,不就是调用哪个构造函数嘛,初始化两次的话,你是怎么发现他被初始化两次的呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式