2015-06-08 2 views
1

Я должен написать программу, которая использует соответствующий получить и установить методы для вывода следующие: Этот человек является Джон Смит (21, мужчины)Java: набор и получить методы для строк

До сих пор я достиг здесь:

public class Person { 

    private int age; 
    private String name; 
    private String gender; 

    public void setAge(int age){ 

     this.age= age; 
    } 

    public int getAge(){ 

     return age; 
    } 

    public void setName(String thename){ 

     this.name=name; 
    } 

    public String getName(){ 
     return name; 
    } 

    public void setGender(String gender){ 
     this.gender= gender; 
    } 

    public String getGender(){ 

     return gender; 
    } 

    public void person(){ 

     System.out.printf("This person is %s(%d, %s)", getName(), getAge(), getGender()); 
    } 

}

В главном классе:

class MyClass{ 


     public static void main(String[] args) { 

      Person personObj1= new Person(); 

      String thisname= "John Smith"; 

      personObj1.setName(thisname); 

      personObj1.setAge(21); 

      String thisgender= "male"; 

      personObj1.setGender(thisgender); 

      personObj1.person(); 


     } 


    } 

Проблема в том, что я получаю ошибки, такие как Метод setName (String) не определен для типа Person для заданных методов в основном. Я все еще новичок в Java, поэтому мне еще нужно его повесить.

+2

Попробуйте сохранить все свои файлы. Я не вижу ничего плохого в синтаксисе, который у вас есть. У вас несколько типов «Личность»? Вы используете правильный? –

+1

Btw, вы намереваетесь сделать это в методе 'setName':' this.name = thename; ' – ntsh

+0

Большое вам спасибо. На самом деле, я не сохранил класс Person. Программа работает сейчас, за исключением того, что она печатается. Этот человек имеет значение null (21, male). – Tia

ответ

3

Единственная проблема, которую я вижу, заключается в реализации самого setName. Вы не используете входную переменную thename.

public void setName(String thename){ 

    this.name=name; 
} 

Последняя строка должна быть

this.name = thename; 

Но это не даст вам ошибку вы говорите, что вы получили (что setName не существует). Я предполагаю, что вы либо определили фактический метод со всеми строчными буквами (например, public void setname(String thename)), либо мы не видим весь код.

+0

Да, на самом деле я его обманул .. пришлось написать _public void setName (String name) _, но вместо этого написал _thename_, я получил эту ошибку, потому что не сохранил другой файл (класс Person) .. Спасибо .. – Tia

+0

Вот почему полезно написать параметры метода, используя определенный стиль. Обычно я обозначаю параметры с нижним регистром 'p', то есть 'pName', и назначаю его переменной-члену, например' mName'. Это может помочь предотвратить путаницу. –

Смежные вопросы