2014-09-27 2 views
0

Я участвую в классе программирования для Roache State Community College. Я прочитал всю главу 3 главы, взял квитирование и прошел.Назначение программирования; Конструктор -> Недействительный запуск выражения + SemiColon Obsession

Итак, теперь я не могу разочароваться после многих часов попыток создать файл класса Employee с тремя различными переменными экземпляра, которые затем будут инициализированы конструктором Employee.

три переменные являются такими:

  1. первое имя (String тип переменной)
  2. фамилия (String тип переменной)
  3. заработная плата (двойной тип с плавающей переменной)

Инструктор предоставил нам некоторые «подписи конструктора и методы для вашей справки»:

public Employee(String fName, String lName, double empSalary) 
public void setFirstName(String fName) 
public void setLastName(String lName) 
public void setSalary(double empSalary) 
public String getFirstName() 
public String getLastName() 
public double getSalary() 

Итак, я дважды одолел себя безумием, и еще раз на своем уме, когда я манипулировал своим кодом, и заменил переменные, такие как int, на вариации, которые, как я думал, могли бы привести к правильному результату, а затем изменить их обратно , все время консультируясь с Интернетом, потоками на этом сайте и моим учебником. Вот мой код в «Ванильном формате», прежде чем я добавлю какие-либо альтернативы его коду:

/********************** **************************** Файл: 9-27.java Автор: Steven Dorsey Дата: сентябрь 201 Описание : Это файл класса сотрудников ***************************************** *********/

//Initiation the Class file first iirc 

общественного класса Employee { int FirstName, LastName, Salary; // Переменные экземпляра

// main method begins program execution 
public static void main(String[] args) 
{ 
    // should introduce and initialize the constructor Employee 
    public Employee(String fName, String lName, double empSalary) 
    { 
     FirstName = fName; 
     LastName = lName; 
     Salary = empSalary; 
    } 

// Ниже: набор и получить Методы

public void setFirstName(int fName) // set the First Name 
    { 
     FirstName = fName; 
    } 

    public void setLastName(int lName) // set the Last Name 
    { 
     LastName = lName; 
    } 

    public void setSalary(int empSalary) // set the Employee Salary 
    { 
     Salary = empSalary; 
    } 

    public int getFirstName() // get the First Name 
    { 
     return FirstName; 
    } 

    public int getLastName() // get the Last Name 
    { 
     return LastName; 
    } 

    public int getSalary() // get the Employee Salary 
    { 
     return Salary; 
    } 
} // End of Main 

} // Конец класса

(почему-то последние две строки здесь, закрывающие мой главный и мой файл класса не включается в цитату и прочее, но вы поняли эту идею.)

Теперь я считаю, что должен сначала создать класс Employee, а затем создать Main в Employee cla ss, чтобы Constructor мог инициализировать переменные экземпляра в нем с помощью команд set и get.

Я полагаю, что должно произойти, что в командной строке должно появиться и запросить имя, затем получить его и сделать это снова для фамилии, а затем и для зарплаты.

Тем не менее, моя программа TextPad не делает ее компиляцией из-за следующих ошибок.Это будет трудно прочитать, если вы не предупреждены о том, что существует около 14 ошибок, и все начинаются с «> E: [РАСПОЛОЖЕНИЕ ПРИВОДА]), за которым следует сообщение Colon, сообщение об ошибке и строка кода, о которой идет речь, вверх стрелка, указывающая на точное местоположение, которое систематически перемещается какими-либо кавычками, и мне не удается сохранить символ ошибки вверх, чтобы показать вам, где проблема возникает при каждой ошибке. Я с ума сошел с 8:30 в monring, и этот сайт тоже кажущийся давать мне неприятности с просто пытается отправить сообщение справки. :(


E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: illegal start of expression public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: ')' expected public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: illegal start of expression public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: ';' expected public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: not a statement public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: ';' expected public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:16: error: ';' expected public Employee(String fName, String lName, double empSalary) ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:23: error: illegal start of expression public void setFirstName(int fName) // set the First Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:23: error: illegal start of expression public void setFirstName(int fName) // set the First Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:23: error: ';' expected public void setFirstName(int fName) // set the First Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:23: error: ';' expected public void setFirstName(int fName) // set the First Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:28: error: illegal start of expression public void setLastName(int lName) // set the Last Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:28: error: illegal start of expression public void setLastName(int lName) // set the Last Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:28: error: ';' expected public void setLastName(int lName) // set the Last Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:28: error: ';' expected public void setLastName(int lName) // set the Last Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:33: error: illegal start of expression public void setSalary(int empSalary) // set the Employee Salary ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:33: error: illegal start of expression public void setSalary(int empSalary) // set the Employee Salary ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:33: error: ';' expected public void setSalary(int empSalary) // set the Employee Salary ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:33: error: ';' expected public void setSalary(int empSalary) // set the Employee Salary ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:38: error: illegal start of expression public int getFirstName() // get the First Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:38: error: ';' expected public int getFirstName() // get the First Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:43: error: illegal start of expression public int getLastName() // get the Last Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:43: error: ';' expected public int getLastName() // get the Last Name ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:48: error: illegal start of expression public int getSalary() // get the Employee Salary ^

E:\Libraries\School\Intro to Programming\Programming Assignment 2\Program 2\Employee.java:48: error: ';' expected public int getSalary() // get the Employee Salary ^

25 errors

Tool completed with exit code 1


в конечном счете, первый ошибка говорит, что public не является допустимым началом выражения для объявления конструктора, и следуйте за тем, чтобы объявить, что мне нужна скобка, где скобки не идут, и точки с запятой, где они не идут (после переменной экземпляра или команды int или что-то еще), и все они говорят, что мой точный код здесь требует некоторого кода, который искажает что-то, не связанное с параметрами, которые следуют за конструктором, или параметрами команды set/get. : \

Теперь, если я полностью удалю код public static void main(String[] args) и просто объявляю файл класса, а затем конструктор с переменными и командами экземпляра, он будет скомпилировать файл Java просто отлично. Моя единственная проблема тогда в том, что Командная строка потребует включения основного. И при включении основной, все 14-26 этих ошибок происходят со всем, что связано с конструктором, переменными экземпляра и командами.

Я уверен, что завтра эту программу не буду делать завтра. :(

+3

положить конструктор внутри класса Employee, но за пределами основного() – nem035

+0

Таким образом, я просто толкнуть Конструктора обратно один отступа, и она должна работать? –

+0

См. Http://www.programmingsimplified.com/java/tutorial/java-constructor-tutorial примеры того, где разместить конструктор 'main()' и другие функции. –

ответ

2

Вы не можете написать метод ВНУТРИ другой метод. Напишите все ваши методы вне тела основного метода

, чтобы сделать его более ясный взгляд на эту

class Employee{ 
    String fname,lname; 
    double salary; 

    static void main() 
    {/*body of main*/} 

    public Employee() 
    {/*body of constructor*/} 

    void func1() 
    {/*body of func1*/} 
}//End of Class 
+0

Спасибо. Это многое выяснилось сейчас. :) У меня есть основное место над конструктором, но оно завершено перед добавлением конструктора и всех следующих функций за пределы Main, как вы заявили. –

+0

Добро пожаловать. Также везде, где вы помещаете main() (до или после конструктора), это не влияет на вашу программу. Это не правило всегда ставить main() сначала, затем на конструктор и другие функции. –

+0

Теперь моя единственная проблема остается в том, что программа TextPad является решительной, что я не могу преобразовать формат «fName», «lName» или «empSalary» в Integer, имея вверх стрелки вверх под каждой соответствующей переменной, которые указывают на f, l и е каждого. Возможно, это имеет какое-то отношение к целым числам, имеющим другую иерархию из переменных типа string? –

0

Не создать конструктор в главном методе он должен объявлен как сам метод в классе, а также другими методами, в том числе ваш аксессору и методы мутаторов (получить и установить метод) посмотреть на этот код:

public static void main(String[] args) 
{ 
    // should introduce and initialize the constructor Employee 
    public Employee(String fName, String lName, double empSalary) 
    { 
     FirstName = fName; 
     LastName = lName; 
     Salary = empSalary; 
    } 

Этот код должен выглядеть следующим образом:

public Employee(String fName, String lName, double empSalary) 
    { 
     FirstName = fName; 
     LastName = lName; 
     Salary = empSalary; 
    } 

public static void main(String[] args) 
{ 
} 

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

Basically, all you have to do to make the program run is highlight all the methods in the main 
`class, then cut it, then paste it in the class 
but outside the main method` an your code should run properly. 
Смежные вопросы