【发布时间】:2014-02-17 19:23:19
【问题描述】:
请帮我从这段代码中找出错误。我还是新手,我不知道这是否正确。 我确实有一个错误。 这是错误: 类 Person 中的构造函数 Person 不能应用于给定类型; 极好的(); ^ 必需:字符串,字符串,字符串 发现:没有参数 原因:实际参数列表和形式参数列表的长度不同 这是我的代码:
import java.util.*;
public class Person {
//Data fields
private String lastName;
private String middleInitial;
private String firstName;
//Constructors
public Person(String lastName, String middleInitial, String firstName) {
this.lastName = lastName;
this.middleInitial = middleInitial;
this.lastName = lastName;
}
//Accessor methods
public String getlastName() {
return lastName;
}
public String getmiddleInitial() {
return middleInitial;
}
public String getfirstName() {
return firstName;
}
//Mutator methods
public void setlastName(String lastName) {
lastName = lastName;
}
public void setmiddleInitial(String middleInitial) {
middleInitial = middleInitial;
}
public void setfirstName(String firstName) {
firstName = firstName;
}
public String getName() {
String studentName = this.lastName + ", " + this.firstName +
this.middleInitial + ".";
return studentName;
}
} //end Person class
class Address {
//Data fields
private String streetName;
private int zipCode;
private String state;
private String country;
//Constructors
public Address(String streetName, int zipCode, String state,
String country) {
this.streetName = streetName;
this.zipCode = zipCode;
this.state = state;
this.country = country;
}
//Accessor methods
public String getstreetName() {
return streetName;
}
public int getzipCode() {
return zipCode;
}
public String getstate() {
return state;
}
public String getcountry() {
return country;
}
//Mutator methods
public void setstreetName(String streetName) {
streetName = streetName;
}
public void setzipCode(int zipCode) {
zipCode = zipCode;
//Integer.toString(zipCode);
}
public void setstate(String state) {
state = state;
}
public void setcountry(String country) {
country = country;
}
public String getAddress() {
String studentAddress = streetName + "\n" + state + ", " + country +
"\n" + zipCode;
return studentAddress;
}
} //end Address class
class Student extends Person {
private String dateOfBirth;
//Constructors
public Student (String studentName, String dateOfBirth) {
super();
dateOfBirth = dateOfBirth;
}
//Accessor methods
public String getdateOfBirth() {
return dateOfBirth;
}
//Mutator methods
public void setdateOfBirth() {
this.dateOfBirth = dateOfBirth;
}
public String toString() {
return ("Date of Birth: " + dateOfBirth);
}
} //end Student subclass
已编辑:如果我对 Person 和 Address 类都这样做。我只能有三个参数的构造函数。如何调用单参数构造函数? 例如,我有 公共学生(字符串名字,字符串姓氏,字符串middleInitial,字符串dateOfBirth){ 超级(名字,姓氏,中间名);和 公共学生(字符串街道名称,字符串状态,字符串国家){ 超级(街道名称,州,国家);
如何单独获取邮政编码?
【问题讨论】:
-
查看学生班级。学生类的构造函数。
-
那是一大堆与问题无关的代码。
-
而且格式很糟糕。如果你想让人们阅读它,你应该花时间修复它......
-
彻底阅读本文以了解 super() :) docs.oracle.com/javase/tutorial/java/IandI/super.html
标签: java inheritance constructor super