这里我有代码,我会解释我的每一个问题。
public static void main(String[] args) {
String choice = null ;
Scanner asmnt2=new Scanner(System.in);
do {
System.out.println("Enter you're name:");
String name =asmnt2.nextLine();
System.out.println("Enter you're Phone number:");
String phone =asmnt2.nextLine();
System.out.println("Enter you're id number :");
String id =asmnt2.nextLine();
person data = Employee( name, phone, id);
person data2= Customer(name , phone ,id);
好吧,这是“雇员”和“客户”两个词中的一个错误,建议我为它们中的每一个都指定一个方法。
data.setSalary(salary);
System.out.println("Choose from the list below :");
System.out.println("1. show Employee information and salary for six months");
System.out.println("2. show customer information");
System.out.println("3. Exit");
if(choice=="1"){
System.out.println("Enter you're Salary :");
String salary =asmnt2.nextLine();
System.out.println("Employee{ " + Employee.toString());
}else if(choice =="2"){
System.out.println("Customer{ " + Customer.toString());
}else{
System.out.println("Wrong entry, please try again");
}
} while(choice=="3");
}
我添加这个部分是因为它显示我添加了一个“scanner”,它显示我希望用户填充值这可能是错误的原因,我还不知道。
class person{
private String name;
private String phone;
private int id;
public person(String nm, String ph, int ID){
name=nm;
phone=ph;
id=ID;
}
public String toString(){
return "name :"+ name + "phone :"+ phone + "ID :" + id;
}
}
class Employee extends person{
private double salary;
private double S;
class Customer extends person{
private double sales;
public Customer(String nm, String ph, int ID){
super(nm,ph,ID);
sales=0.0;
}
class Employee extends person{
private double salary;
private double S;
public Employee(String nm, String ph, int ID){
super(nm,ph,ID);
salary=0.0;
}
}
1条答案
按热度按时间46qrfjad1#
您创建的对象没有传递初始参数。在这里,你会得到一个错误,因为你没有任何默认构造函数没有任何参数。
将这两条线路更换为
并且在tostring()方法中,尝试使用getmethode返回变量。这样地,
或者您可以更改访问修饰符。
这是你编辑完问题后想的这句话
在这里,您试图创建两个对象类employee和类customer。但您不向构造函数传递任何参数。
Employee()
这是干什么的?这将尝试在没有任何参数的情况下调用默认构造函数。但是你只有一个参数化的构造函数
这就是为什么你会出错。如果您想获得用户输入,那么创建对象。先获取输入,然后像这样将值传递给构造函数,