2016-07-23 89 views
-1

我有一个非常令人沮丧的问题与我校运动(这是第二不曾锻炼我当然!),我已经失去了我的脑海里this.¨愚蠢的学校运动

的锻炼是非常简单的是诚实的,所有它想要做的就是打印“人”类的名字和姓氏。

这是一个运行该文件,并从Person类获取信息,我PersonTest类:

package AnalStripe; 

public class PersonTest extends Person { 

    public static void main(String[] args) { 

     Person firstperson = new Person("James", "Bond"); 

     String firstname = firstperson.getFirstname(); 
     String lastname = firstperson.getLastname(); 

     System.out.println("Person's first name is " + firstname); 
     System.out.println("My name is " + firstperson.getLastname() + ","); 
     System.out.println(firstperson); 
     System.out.println("Person is " + firstperson); 
    } 

} 

现在它说:“构造人(字符串,字符串)是不确定的”。 然后,我试图quickfix,它添加了一些超(名,姓)等等等等,之后它打印“我的名字为空”,并打印出“[email protected]”和各种奇怪的东西。

所以我删除了这些QuickFix代码,现在它说上面的错误。 这个PersonTest是正确的,因为我从答案选项卡检查它,但它也说我应该复制粘贴Person.class到我的包,但每当我这样做,它不会出现,使我无法看到什么样的代码是在Person.class中。

所以我的问题是,我应该在Person.class中写什么来使这项工作? 到目前为止,我已经试过这样:

package AnalStripe; 

public class Person { 

    public String Firstname, Lastname; 


    public String getFirstname() { 
     return Firstname; 
    } 

    public String getLastname() { 
     return Lastname; 
    } 

} 

没有什么工作,3天之后它仍然错误我,让我觉得放弃这所学校笑...

任何想法,我在做什么错?我可以假设解决方案非常简单,但是由于Java对我来说似乎很难,所以我无法做出任何事情,但其他语言比这更容易。

+0

每当你要创建一个对象的任何类节目将自动调用该类的默认构造函数。如果你想要任何用户定义的构造函数,那么你应该在你的类中定义相应的构造方法,如下面的解决方案所述。 –

回答

0

由于错误状态,您还没有定义一个签名为Person(String, String)的构造函数。

做到这一点,错误就会消失:

public class Person { 

    public String Firstname, Lastname; 

    public Person(String firstName, String lastName) { 
     this.Firstname = firstName; 
     this.Lastname = lastName; 
    } 

    public String getFirstname() { 
     return Firstname; 
    } 

    public String getLastname() { 
     return Lastname; 
    } 

} 
0

你必须自己写一个构造函数。如果你写new Person("James", "Bond");编译器不知道你的意思。什么是字符串"James"? (难道是FirstnameLastname,或完全不同的东西?)

就在这个代码添加到您的类:

public Person(String fname, String lname) { 
    Firstname = fname; 
    Lastname = lname; 
} 

这个函数获取每次调用new Person时调用。您只需取两个字符串并将它们存储在正确的类变量中。

0

像错误说,你有没有为Person类实现构造

你编辑的代码应该是

public class Person { 

    public String Firstname, Lastname; 

    public Person(String Firstname, String Lastname){ 
     this.Firstname = Firstname; 
     this.Lastname = Lastname; 
    } 
    public String getFirstname() { 
     return Firstname; 
    } 

    public String getLastname() { 
     return Lastname; 
    } 

} 
0

您正在尝试调用不存在这里构造:

Person firstperson = new Person("James", "Bond"); 

您的Person类中没有构造函数,它包含两个String参数:

Person(String firstName, String secondName) { 
    this.firstName = firstName; 
    this.secondName = secondName; 
} 

要么构造函数添加到您的Person类,或者使用隐式的无参数的构造函数,并单独设置这些值:

Person person = new Person(); 
person.firstName = "James"; 
person.secondName = "Bond";