public class TestPerson
{
public static void main(String args[])
{
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1);
System.out.println(p2);
}
}
这是另一个班级。
public class Person
{
private String name;
private MyDate dob;
public Person(String name, MyDate dob)
{
this.name = name;
this.dob = dob;
}
public void setName(String n)
{
this.name = n;
}
public String getName()
{
return name;
}
public String toString()
{
return "Name: " + getName();
}
}
这是另一个
public class MyDate
{
private int month;
private int day;
private int year;
public MyDate(int month, int day, int year)
{
this.month = month;
this.day = day;
this.year = year;
}
public void setMonth(int m)
{
this.month = m;
}
public void setDay(int d)
{
this.day = d;
}
public void setYear(int y)
{
this.year = y;
}
public int getMonth()
{
return month;
}
public int getDay()
{
return day;
}
public int getYear()
{
return year;
}
public String toString()
{
return "\nBirthdate: " + this.month + "-" + this.day + "-" + this.year;
}
}
构造函数不是它也说的唯一错误:
Person.java:56:错误:预期的类,接口或枚举 public String toString() ^ Person.java:59:错误:预期的类,接口或枚举 } ^
这是代码的一半,我的真正目标是创建一个代码,输入两个相同的名称和生日(月日),并使用相等和哈希码进行比较,我没有包含该代码,因为这会导致更多错误。从修复小孩子开始。现在我不能相信我在这里有错误,我已经完成了这个,但不是在一个类中获取所有变量并在另一个类中声明它的情况(Mydate dob)
答案 0 :(得分:0)
你就是不能这样做
Person p1 = new Person();
Person p2 = new Person();
因为没有为该类定义默认构造函数,而是传递一个字符串和一个MyDate实例
Person p1 = new Person("xoce", new MyDate(20, 06, 1999));
Person p2 = new Person("maria", new MyDate(20, 12, 1999));