2013-03-26 7 views
0

Я новичок в программировании и могу использовать руку помощи. Я создал класс «Личность» и файл TestPerson для его проверки (да, это назначение.)Идентификатор ожидаемой ошибки (Java)

Я получаю три ошибки «идентификатор», ожидаемый в строках 34-36 (в сеттерах). Ясно, что это ошибка новобранец, но я просто не могу понять это. Любая помощь будет оценена по достоинству. Заранее спасибо.

/****************************************************************** 
*  program name:  Person.java 
*  author:   Nichol Albertson 
*  remarks:   describes a Person object 
     Date:    3/26/13 
********************************************************************/ 
import java.text.*; 

class Person { 
    /********************************************** 
    * Local Variables 
    ******************************************/ 
    private String lastName; 
    private String firstName; 
    private String birthday; 

    /********************************** 
     * constructors - just a method 
     ***********************************/ 

    public Person(String lastName, String firstName) { 
     setLastName(); 
     setFirstName(); 
     setBirthday(); 
    } 

    public Person(String lastName, String firstName, String birthday) { 
     initialize(lastName, firstName, birthday); 
    } 

    /********************************** 
    * set methods (setters) 
    ***********************************/ 
    public void setLastName(lastName); 
    public void setFirstName(firstName); 
    public void setBirthday(birthday); 

    /********************************** 
    * get methods (getters) 
    ***********************************/ 
    public String getLastName() { 
     return lastName; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public String getBirthday() { 
     return birthday; 
    } 

    /******************************* 
    * other methods 
    ********************************/ 
    public String getFirstLast() { 
     System.out.println(firstName + " " + lastName); 
    } 

    public String getLastFirst() { 
     System.out.println(lastName + ", " + firstName); 
    } 
} 
+0

@Принятие: добавили ли вы 'abstract' в определение класса? –

+0

Рассматривая историю изменений для вопроса, да, @Perception добавила 'abstract' в класс. – rgettman

+0

Да, я толкнул пальцем, что редактирую. Исправлено. – Perception

ответ

4

Вам необходимо указать тип параметра в каждом из ваших методов сеттера. Тип должен соответствовать типу переменной экземпляра, которую вы пытаетесь установить.

Кроме того, вы должны предоставить тело метода с фигурными скобками { и } для ваших методов сеттера, где вы присваиваете значение параметра переменной экземпляра.

+0

@Downvoter, пожалуйста, объясните, почему вы отказались. – rgettman

1

Ошибка показывает из следующих линий:

public void setLastName(lastName); 
public void setFirstName(firstName); 
public void setBirthday(birthday); 

Person не является ни abstract class, ни interface. Это действительно concrete class. Вы не можете просто объявить метод в классе concrete. Вы должны также предоставить множество методов. Это может быть изменено следующим образом:

public void setLastName(String lastName){ this.lastName = lastName;} 
public void setFirstName(String firstName){ this.firstName = firstName;} 
public void setBirthday(String birthday){ this.birthday = birthday;} 

Кроме того, следующие методы определены совершенно неправильно:

public String getFirstLast() { 
    System.out.println(firstName + " " + lastName); 
} 

public String getLastFirst() { 
    System.out.println(lastName + ", " + firstName); 
} 

Оба указанных выше способов имеет типа возвращаемого String, но не возвращается ничего. Это также ошибка в коде. Они должны быть определены следующим образом:

public String getFirstLast() { 
    return firstName + " " + lastName; 
} 

public String getLastFirst() { 
    return lastName + ", " + firstName; 
} 
0
public void setLastName(lastName); 
public void setFirstName(firstName); 
public void setBirthday(birthday); 

Если класс нормальный класс, он не является ни интерфейс, ни абстрактный класс, поэтому метод должен иметь тело, а другая точка вам нужно упомянуть типы переменных lastName, firstName и день рождения.

public void setLastName(String lastName) 
    { 
     //method's body 
    } 
Смежные вопросы