我目前正在使用eclipse学习Java计算机科学课程,我需要一些帮助,试图弄清楚如何修复当前显示的错误。
package sec4Les2;
public class RoseDS4L2Person {
//creating the variables
public String name = "Uma Thurman";
public int Age = 0;
//constructor
public RoseDS4L2Person()
{
}
public String getname()
{
//will return first name
return name;
}
public int getAge()
{
//will return age
return Age;
}
public void setAge(int Age)
{
//will set age to int
this.Age = Age;
}
}

package sec4Les2;
public class RoseDS4L2ManagingPeople {
public static void main(String[] args) {
//runs information in first class file
RoseDS4L2Person p1 = new RoseDS4L2Person("Arial", 37);
RoseDS4L2Person p2 = new RoseDS4L2Person ("Joseph", 15);
if(p1.getAge()==p2.getAge())
{
System.out.println(p1.getname()+" is the same age as "+p2.getname());
}
else
{
System.out.println(p1.getname()+" is NOT the same age as "+p2.getname());
}
}
}

它表示第一个没有错误,但第二个错误在p1 / p2行上。我该如何解决这个错误?谢谢!
答案 0 :(得分:0)
您需要将此代码添加到您的课程中。基本上,你的班级中缺少一个构造函数。另请注意,按照惯例,成员变量以小写开头。因此,Age
应该是age
。
另一件事是,你保持名称不变。可能你想删除“Uma Thurman”。如果要将其保留为初始化时未指定name的所有对象的默认名称,则需要在构造函数中添加该名称。 *
public class RoseDS4L2Person
{
// other lines ....
RoseDS4L2Person(String name, int age) {
this.Age = age;
this.name = name;
}
}
*
这样的事情:
public class RoseDS4L2Person
{
private static final String UMA_THURMAN = "Uma Thurman";
// other lines ....
RoseDS4L2Person( int age) {
this.Age = age;
this.name = UMA_THURMAN;
}
}
答案 1 :(得分:0)
你应该有一个RoseDS4L2Person的构造函数接受一个字符串和一个数字,如下所示:
public RoseDS4L2Person(String name, int age)
{
this.name = name;
this.Age = age;
}
这将允许您创建将名称和年龄作为参数传递的类的实例。
答案 2 :(得分:-1)
错误正在弹出,因为您已使用不存在的构造函数创建了对象。使用默认构造函数创建对象或创建构造函数 它可以接受你传递的参数应该做的伎俩。 快乐编码