2016-07-23 3 views
-1

У меня очень расстраивает проблема с моей школьной тренировки (это второе упражнение когда-либо в моем курсе!), И я уже схожу с ума, чтобы this.¨Stupid школа упражнения

упражнение действительно просто быть честный, все, что он хочет сделать, это напечатать классы «Личность» - фамилия и имя.

Это мой класс PersonTest, который запускает файл и получает информацию от класса Person:

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); 
    } 

} 

Теперь он говорит: "Конструктор Person (String, String) не определено". Затем я попытался быстро исправить, и он добавил некоторые супер (имя, фамилия) и т. Д. И т. Д., После чего он печатает «Мое имя равно null», и оно напечатало «[email protected]» и все виды странных вещей.

Так что я удалил эти коды QuickFix, и теперь он говорит, что ошибка выше. Этот UserTest верен, так как я проверил его со вкладки ответов, но также говорит, что мне нужно скопировать файл 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

Всякий раз, когда вы собираетесь создать объект для любого класса программы будет автоматически ссылаться конструктор по умолчанию для этого класса. Если вы хотите какой-либо определяемый пользователем конструктор, тогда вы должны определить соответствующий метод для contructor внутри вашего класса, как указано в нижеприведенных решениях. –

ответ

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"? (Это его Firstname, Lastname, или что-то совсем другое?)

Просто добавьте этот код в ваш класс:

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 paramters:

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

Либо добавить этот конструктор для вашего Person класса, или использовать неявный конструктор без аргументов и установить эти значения отдельно:

Person person = new Person(); 
person.firstName = "James"; 
person.secondName = "Bond"; 
Смежные вопросы