使用Eclipse,尝试让程序运行

时间:2017-09-20 14:49:43

标签: java eclipse

我目前正在使用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行上。我该如何解决这个错误?谢谢!

3 个答案:

答案 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)

错误正在弹出,因为您已使用不存在的构造函数创建了对象。使用默认构造函数创建对象或创建构造函数 它可以接受你传递的参数应该做的伎俩。 快乐编码