无法解析为 Java 中基类的变量

阿迪亚巴特拉

我是java的新手,并创建了一个小程序来清除核心java的基本原理。我正在创建一个员工基本信息和工资统计的程序。但是,当我尝试访问父变量以便我可以使用该变量并计算员工的工资时,却收到一条错误消息“empSalaryobj 无法解析为变量”

下面是我的Java代码,

class varEmployee {
    int empId;
    String empName;
    final String empCompany = "Tata Consultancy Services";
    int empSalary;
    String empGender;
    int empAge;
    String empNationality;
}

class setEmployee extends varEmployee{


    setEmployee(){

    }

    setEmployee(int empId){
        this.empId=empId;
        switch(empId){  

            case 1: 
                empName = "Aditya Batra";
                empSalary = 10000;
                empGender = "Male";
                empAge = 26;
                empNationality = "Indian";
            break;  

            case 2: 
                empName = "Vishal Sharma";
                empSalary = 20500;
                empGender = "Male";
                empAge = 26;
                empNationality = "Australia";
            break;  

            case 3: 
                empName = "Ashish Tiwari";
                empSalary = 30000;
                empGender = "Male";
                empAge = 28;
                empNationality = "Indian";
            break;  

            case 4: 
                empName = "Mona Lisha";
                empSalary = 40000;
                empGender = "Female";
                empAge = 24;
                empNationality = "Oganda";
            break;

            default:

                System.out.println("Invalid Employee ID");
        }  
    }

}

class getEmployee extends setEmployee {

    getEmployee(){

    }

    getEmployee(setEmployee obj){

        int empIdobj = obj.empId;
        String empNameobj = obj.empName;
        int empSalaryobj = obj.empSalary;
        String empGenderobj = obj.empGender;
        int empAgeobj = obj.empAge;
        String empNationalityobj = obj.empNationality;

        System.out.println("Employee Id: "+empIdobj+"\nName: "
                           +empNameobj+"\nSalary: "+empSalaryobj
                           +"\nGender: "+empGenderobj+"\nAge: "
                           +empAgeobj+"\nNationality: "+empNationalityobj
                           +"\nCompany Name: "+empCompany);

    }
}

class getEmployeeSalary extends getEmployee {

    int empSalaryCaculation = empSalaryobj;

    getEmployeeSalary(int empLeaves){
        float empSal = (empSalaryCaculation/30)*(30-empLeaves);
        System.out.println("Salary after leave deduction: "+empSal);
    }

}

public class Employee {

    public static void main(String[] args) {
        setEmployee setobj=new setEmployee(1);
        getEmployee getobj=new getEmployee(setobj);
        getEmployeeSalary salobj=new getEmployeeSalary(5);
    }

}

有人可以帮我吗。我也想知道为什么会出现这个错误信息。

tangina莫波波

你的 getEmployeeSalary 类需要有一个构造函数

getEmployeeSalary(int empLeaves,getEmployee employee)
{
 float empSal = (employee.empSalaryobj/30)*(30-empLeaves);
        System.out.println("Salary after leave deduction: "+empSal);
}

并且您不需要,int empSalaryCaculation = empSalaryobj;因为您直接在 getEmployeeSalary 构造函数中实现它

您还需要使 empSalary 成为类 getEmployee 的数据字段

public class getEmployee extends varEmployee
{
    public int empSalaryobj;



}

在这里我使用 Eric Allman 缩进样式,因为它在任何辩论中都比 K&R 样式更好

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章