Java 当我试图创建一个对象时,是什么导致了我得到的错误?
我正试图为一个类编写一个程序,创建一个工资存根。我已经在网上查看了工作,我正在尝试创建自己的版本,但围绕main()的内容不断出现错误,并且无法正确运行 我尝试过重新组织代码、创建新文件和重命名内容,但仍然出现以下异常:Java 当我试图创建一个对象时,是什么导致了我得到的错误?,java,class,main,Java,Class,Main,我正试图为一个类编写一个程序,创建一个工资存根。我已经在网上查看了工作,我正在尝试创建自己的版本,但围绕main()的内容不断出现错误,并且无法正确运行 我尝试过重新组织代码、创建新文件和重命名内容,但仍然出现以下异常: "Exception in thread "main" java.lang.Error: Unresolved compilation problem: No enclosing instance of type Employee is accessible. Mus
"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No enclosing instance of type Employee is accessible. Must qualify the allocation with an enclosing instance of type Employee (e.g. x.new A() where x is an instance of Employee).
at Employee.main(Employee.java:8)
我希望能够在代码中输入这些值:
import java.util.Scanner;
import java.util.*;
public class Employee{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
PayStub data = new PayStub();
System.out.println("Enter name: ");
data.setName(input.next());
System.out.println("Enter address: ");
data.setAddress(input.next());
System.out.println("Enter SSN: ");
data.setSSN((input.next()));
System.out.println("Number of hours: ");
data.setHoursWorked(Double.parseDouble(input.next()));
System.out.println("Enter hourly rate: ");
data.setHourlyPayRate(Double.parseDouble(input.next()));
input.close();
}
}
public class PayStub {
private String name;
private double hoursWorked;
private double hourlyRate;
private double fedTaxRate;
private double stateTaxRate;
private String address;
private String phone;
private String SSN;
public PayStub() {
}
public PayStub(String n, double w, double p) {
this.name = n;
this.hoursWorked = w;
this.hourlyRate = p;
}
public double grossPay(double hr, double hw) {
double grossPay = (hourlyRate * hoursWorked);
return grossPay;
}
public void setFedTax(double fedTaxRate) {
this.fedTaxRate = fedTaxRate;
}
public double getFedTax() {
return fedTaxRate;
}
public void setStateTax(double stateTaxRate) {
this.stateTaxRate = stateTaxRate;
}
public double getStateTax() {
return stateTaxRate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHoursWorked() {
return hoursWorked;
}
public void setHoursWorked(double hoursWorked) {
this.hoursWorked = hoursWorked;
}
public double getHourlyPayRate() {
return hourlyRate;
}
public void setHourlyPayRate(double hourlyRate) {
this.hourlyRate = hourlyRate;
}
public String getAddress(){
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone(){
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSSN() {
return SSN;
}
public void setSSN(String SSN) {
this.SSN = SSN;
}
}
最简单的修复方法是将公共类
PayStub
移动到名为PayStub.java
的文件中
您可以将PayStub
声明为静态类,使其成为Employee
的嵌套类,但没有理由这样做,因为PayStub
不是员工的一种类型,而是员工拥有的某种类型。这是承包商可能有的东西,等等。。。因此,您希望将其拆分为自己的文件,因为它是一个可重用的类。“导致错误的原因是什么”+“未解决的编译问题”=编译错误会阻止代码运行。在尝试运行代码之前修复编译错误。查看编译器的输出以完整查看编译器错误。然后修理它。