#java
#java
Вопрос:
У меня есть следующий класс, написанный в Employee.java script:
public class Employee {
//***************************************************************
//
// Developer: Erin
//
// Program #: 3
//
// File Name: Program3.java
//
// Course: Object-Oriented Programming - Java
//
// Due Date:
//
// Instructor: Prof. Fred
//
// Chapter: 3
//
// Description:
// Program creates an Employee class that includes three (3) private instances:
// 1) first name (String)
// 2) last name (String)
// 3) monthly salary (double)
// Program provides:
// a) a constructor that initializes instance variables
// b) set and get methods for each instance variable
// c) test app named EmployeeTest that demonstrates Employee class capabilities
// d) two (2) Employee objs, from which obj's yearly salary is displayed
// e) display of 20% raise for each Employee;s yearly salary
//
//***************************************************************
private String _first_name;
private String _last_name;
private double _monthly_salary;
public Employee(String first_name, String last_name, double monthlySalary)
{
setFirstName(first_name);
setLastName(last_name);
setMonthlySalary(monthlySalary);
}
public String getFirstName()
{
return _first_name;
}
public void setFirstName(String first_name)
{
_first_name = first_name;
}
public String getLastName()
{
return _last_name;
}
public void setLastName(String lastName)
{
_last_name =lastName;
}
public double getMonthlySalary()
{
return _monthly_salary;
}
public void setMonthlySalary(double monthlySalary)
{
if(monthlySalary < 0.0)
{
monthlySalary = 0.0;
}
_monthly_salary = monthlySalary;
}
//***************************************************************
//
// Method: developerInfo
//
// Description: The developer information method of the program
//
// Parameters: None
//
// Returns: N/A
//
//**************************************************************
public void developerInfo()
{
System.out.println("Name: Erin");
System.out.println("Course: Object-Oriented Programming");
System.out.println("Program: Three n");
}
}
С соответствующим тестовым классом, написанным в отдельном скрипте, вызываемом EmployeeTest.java:
public class EmployeeTest {
public static void main(String[] args) {
**developerInfo();**
Employee employee1 = new Employee("John", "Doe", 2875.00);
Employee employee2 = new Employee("Jane", "Doe", 3150.00);
System.out.printf("%s %n", "Before 20% raise:");
System.out.printf( "Employee 1: %s %s; Yearly Salary: $%.2fn",
employee1.getFirstName(), employee1.getLastName(),
12 * employee1.getMonthlySalary() );
System.out.printf( "Employee 2: %s %s; Yearly Salary: $%.2fn",
employee2.getFirstName(), employee2.getLastName(),
12 * employee2.getMonthlySalary() );
employee1.setMonthlySalary(employee1.getMonthlySalary() * 1.2);
employee2.setMonthlySalary(employee2.getMonthlySalary() * 1.2);
System.out.printf("%s %n", "After 20% raise:");
System.out.printf( "Employee 1: %s %s; Yearly Salary: $%.2fn",
employee1.getFirstName(), employee1.getLastName(),
12 * employee1.getMonthlySalary() );
System.out.printf( "Employee 2: %s %s; Yearly Salary: $%.2fn",
employee2.getFirstName(), employee2.getLastName(),
12 * employee2.getMonthlySalary() );
}
}
Я не могу понять, как вызвать функцию developerInfo, чтобы вывести ее на консоль. Ожидаемый результат:
Name: Erin
Course: Object-Oriented Programming
Program: Three
Before 20% raise:
Employee 1: John Doe; Yearly Salary: $34500.00
Employee 2: Jane Doe; Yearly Salary: $37800.00
After 20% raise:
Employee 1: John Doe; Yearly Salary: $41400.00
Employee 2: Jane Doe; Yearly Salary: $45360.00
Любая информация была бы очень признательна! Спасибо!
Комментарии:
1. Сделайте метод статическим
static public void developerInfo() {...
и вызовите его следующим образомEmployee.developerInfo();
2. Почему бы вам не использовать экземпляры employee для вызова #developerInfo() . Что-то вроде employee1.developerInfo() ??
3. В соглашениях об именовании Java классы в camelCase начинаются с заглавной буквы; методы и переменные также находятся в camelCase, начиная со строчных букв. У них нет подчеркивания. Они не начинаются с символа подчеркивания. Следование этим соглашениям упрощает чтение программ программистами Java.
Ответ №1:
Существует две возможности. Сначала вы можете сделать метод статическим:
public static void developerInfo() {
System.out.println("Name: Erin");
System.out.println("Course: Object-Oriented Programming");
System.out.println("Program: Three n");
}
Затем вы можете вызвать метод с Employee.developerInfo()
помощью . Во-вторых, вы можете использовать экземпляр Employee
класса и вызвать метод:
employee1.developerInfo();
Поскольку это напрямую не связано с сотрудником, я бы выбрал первый вариант или передал метод на аутсорсинг.
Комментарии:
1. Большое вам спасибо!!! Я не знал, что вы можете сделать метод статическим. Это было легко исправить, еще раз спасибо! @flaxel