2016-07-23 94 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";