首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:类中的私有访问

错误:类中的私有访问
EN

Stack Overflow用户
提问于 2015-02-13 14:17:55
回答 1查看 5K关注 0票数 1
代码语言:javascript
复制
public class ProductionWorker extends Employee
{
    private int shift;
    private double rateOfPay;
    private double hoursWorked;

    ProductionWorker(String name, int id, int shift, double rateOfPay, double hoursWorked)
    {
        super(name, id);
        this.shift = shift;
        this.rateOfPay = rateOfPay;
        this.hoursWorked = hoursWorked;
    }



public class TeamLeader extends ProductionWorker
{
    private double monthlyBonus;

    TeamLeader(String name,int id, int shift, double rateOfPay, double hoursWorked, double monthlyBonus)
    {
        super(name, id , shift, rateOfPay, hoursWorked);
        this.monthlyBonus = monthlyBonus;

    }

    public double calcPay()
    {
        double pay = 0;
        //night shift
        if (shift == 2)
        {
            pay = ((hoursWorked + hoursWorked / 2) * rateOfPay) + monthlyBonus;
        }
        else
        {
            pay = (hoursWorked * rateOfPay) + monthlyBonus;
        }
        return pay;
    }
}

我将类ProductionWorker扩展到类TeamLeader,然后在类TeamLeader上创建了一个方法calcPay()我的问题是,我需要从类ProductionWorker中获取变量shift,hoursOfWorked和rateOfPay的值,这样我就可以使用calcPay()方法来执行我的main.Can了,有人能帮我吗,提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-02-13 14:30:59

要访问父类(ProductionWorker)的变量,需要将变量范围从private更改为protected。

私有变量仅在类中可见。受保护的变量在子类中可见,对包中的所有类都可见

你可以参考这个链接:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

如果您不希望将它们设置为受保护,也可以为变量创建getter和setter,但这不是首选方法。

例如getter和setter:

代码语言:javascript
复制
private int shift;

protected int getShift() {
    return this.shift;
}

protected void setShift(int shift) {
     this.shift = shift;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28493652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档