2014-09-28 3 views
-4

Моя задача - «создать класс, называемый служащим, который включает в себя три переменные экземпляра, имя (строка), фамилию (строку) и месячную зарплату (double). инициализирует переменные экземпляра три. Предоставляйте методы set и get для каждой переменной экземпляра. [...], чтобы получить полный кредит, ваши программы не должны иметь ошибок компиляции и давать правильные результаты, они также должны быть хорошо прокомментированы и соответствующим образом сформированы ».Домашнее задание - предоставление результата F и других вещей

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

Однако я также чувствую, что мне нужно иметь какие-то фактические переменные экземпляра, которые должны быть установлены, get'ed, adn printf'ed или что-то в этом роде. Прямо сейчас, Command Prompt только self завершается при нажатии первой кнопки, потому что для программы фактически нет ничего.

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

import java.util.Scanner; 
public class Employee 
{ 

    public String FirstName, LastName; // String instance variables 

    public double Salary; //double floating-point instance variable 

    // main method begins program execution 
    public static void main(String[] args) 
    { 
     // create Scanner to enable user input in Dos 
     Scanner input = new Scanner(System.in); 
    } 

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

// set First Name 

    public void setFirstName(String Steven) // set the First Name 
    { 
     FirstName = Steven; 
    } 

    public void setLastName(String Dorsey) // set the Last Name 
     { 
      LastName = Dorsey; 
     } 
    public void setSalary(double empSalary) // set the Employee Salary 
    { 
     Salary = empSalary; 
    } 



    public String displayMessage() 
    { 
     // This statement calls Employee and should 
     // get the First Name from Input 
     System.out.printf("Please enter the First Name\n"); 
      getFirstName(string fName); 
      { 
       return FirstName; 
      } 

     System.out.printf("Please enter the Last Name\n"); 
      getLastName(string lName)); // get the Last Name 
      { 
       return LastName; 
      } 

     System.out.printf("Salary: $%.2f\n"); 
      getSalary(double empSalary) 
      { 
       return Salary; 
      } 
    } 
} // End class 

Теперь, вот мои ошибки. при условии, на этот раз Textpad:

* Employee.java:54: error: ')' expected 
getFirstName(string fName); 
           ^
* Employee.java:54: error: illegal start of expression 
getFirstName(string fName); 
            ^
* Employee.java:60: error: ')' expected 
getLastName(string lName)); // get the Last Name 
          ^
* Employee.java:60: error: illegal start of expression 
getLastName(string lName)); // get the Last Name 
            ^
* Employee.java:60: error: ';' expected 
getLastName(string lName)); // get the Last Name 
            ^
* Employee.java:66: error: '.class' expected 
getSalary(double empSalary) 
          ^
* Employee.java:66: error: ';' expected 
getSalary(double empSalary) 
+5

Надеюсь, это не слишком грубо, но вы когда-нибудь посещали один курс своего класса программирования? – Tom

+1

Содержимое 'displayMessage()' look * very * странно. Что должна делать эта функция ?! – Biffen

ответ

-1

попробовать это:

public class Employee { 

    public String FirstName, LastName; // String instance variables 

    public double Salary; //double floating-point instance variable 

    //should introduce and initialize the constructor Employee 
    public Employee(String fName, String lName, double empSalary) { 
     FirstName = fName; 
     LastName = lName; 
     Salary = empSalary; 
    } 
    public void setFirstName(String Steven) // set the First Name 
    { 
     FirstName = Steven; 
    } 

    public void setLastName(String Dorsey) // set the Last Name 
    { 
     LastName = Dorsey; 
    } 
    public void setSalary(double empSalary) // set the Employee Salary 
    { 
    Salary = empSalary; 
    } 

    public String getFirstName() 
    { 
     return FirstName; 
    } 
    public String getLastName() 
    { 
     return LastName; 
    } 
    public double getSalary(){ 
     return Salary; 
    } 

    public void displayEmployee(){ 
     System.out.println("FirstName : "+FirstName); 
     System.out.println("LastName : "+LastName); 
     System.out.println("Salary : "+Salary); 
    } 
    //main method begins program execution 
    public static void main(String[] args) 
    { 
    // create Scanner to enable user input in Dos 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter employee details :"); 
     Employee emp=new Employee(input.next(), input.next(), input.nextDouble()); 
     emp.displayEmployee(); 
    } 

}// End of class 
+0

почему голос? – Rustam

+0

Спасибо. Ты обалденный. : D Ты дал мне больше информации, чтобы узнать о синтаксисе. :) –

+0

В нашей нынешней главе учебник не упоминает синтаксис зарплат или фактических имен. Он создал название учебной книги с пользовательским вводом, чтобы установить, получить и отобразить название учебной книги, а также балансы и депозиты, где у депозита был набор кодов для добавления к нему, прежде чем получить баланс от первоначального баланса. Поэтому я понятия не имел, как должен выглядеть мой контекст сценариев. –

0

У вас нет запятой после ваших имен функций.

Таким образом, следующего:

getLastName(string lName)); // get the Last Name 
    { 
     return LastName; 
    } 

вместо этого следует

getLastName(string lName)) // get the Last Name 
    { 
     return LastName; 
    } 

Надеется, что это помогает, я не прочитал остальную часть коды.

+0

Спасибо. Я этого не заметил. :) –

+2

Значит, вы имеете в виду метод внутри метода в порядке, если он удаляет точку с запятой? – Tom

0

Ваш код показывает, что вы, вероятно, есть некоторые неправильные представления о том, как Java и языков программирования в целом работы:

например в сниппет:

public void setFirstName(String Steven) // set the First Name 
{ 
    FirstName = Steven; 
} 

называние подстроки Стивен очень своеобразно. Большинство программистов назвали бы параметр firstName или pFirstname, потому что он содержит переменную String. В некоторых случаях содержимое этой переменной может быть «Steven». Обратите внимание, как я писал имена параметров в жирным шрифтом, в то время как содержимое переменной помещается в кавычки. Переменные понятия и параметр важны для понимания, прежде чем ваш код будет функционировать правильно. Вы можете проверить свой код в этих строках для всех других понятий, которые вы просили сделать в своем задании. Изучение - это понимание разницы между неправильным представлением и правильной концепцией. Пожалуйста, не расстраивайтесь, что ваш вопрос получил отрицательные моменты. Люди из stackoverflow ожидают, что люди задают вопросы, чтобы сделать основной анализ самой проблемы, а затем обратиться за помощью, когда они застревают в точке, где весь анализ не помог.

+0

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

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