无法在Java中为基类解析为变量
我是java新手,正在创建一个小程序,以了解核心java的基本原理。我正在创建一个员工基本信息和工资统计程序。但当我试图访问父变量以便使用该变量并计算员工的工资时,却收到一条错误消息,即empSalaryobj无法解析为变量 下面是我的Java代码无法在Java中为基类解析为变量,java,Java,我是java新手,正在创建一个小程序,以了解核心java的基本原理。我正在创建一个员工基本信息和工资统计程序。但当我试图访问父变量以便使用该变量并计算员工的工资时,却收到一条错误消息,即empSalaryobj无法解析为变量 下面是我的Java代码 class varEmployee { int empId; String empName; final String empCompany = "Tata Consultancy Services"; int emp
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);
}
}
谁能帮帮我吗。我还想知道为什么会出现此错误消息 empSalaryobj是在getEmployee的构造函数中定义的局部变量。它不是getEmployeeSalary的任何父类的字段,因此无法在getEmployeeSalary的构造函数中访问它。您需要为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构造函数中实现它
此外,还需要将EMPA数据字段设置为getEmployee类
public class getEmployee extends varEmployee
{
public int empSalaryobj;
}
在这里,我使用Eric Allman缩进样式,因为它在任何辩论中都比K&R样式好我将首先研究命名约定并修复那些类名ha。好的,谢谢。我写的方式不对吗?我正在学习,所以对此不太了解。empSalaryob是getEmployee类中getEmployee方法中的一个局部变量,因此无法在其他地方访问它,而且类名看起来很奇怪,getter和setter类?假设您所遵循的问题和方法不好。在您的getEmployeesetEmployee obj中,将变量声明移动到topHello@abcOfJava,我现在已经实现了解决方案及其工作。我从你提供的文章中查到了很多东西。我真的需要努力工作。谢谢大家!@ADITYABATRA没问题,很高兴我能帮助您在java中进行一次有趣的编码之旅,特别是当您最终遇到swing组件时