英文:
Unable to correcty call a void function in Java to output to the console
问题
以下是您提供的代码的翻译部分:
Employee.java:
public class Employee {
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;
}
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) {
Employee employee1 = new Employee("John", "Doe", 2875.00);
Employee employee2 = new Employee("Jane", "Doe", 3150.00);
System.out.println("Before 20% raise:");
System.out.printf("Employee 1: %s %s; Yearly Salary: $%.2f%n",
employee1.getFirstName(), employee1.getLastName(),
12 * employee1.getMonthlySalary());
System.out.printf("Employee 2: %s %s; Yearly Salary: $%.2f%n",
employee2.getFirstName(), employee2.getLastName(),
12 * employee2.getMonthlySalary());
employee1.setMonthlySalary(employee1.getMonthlySalary() * 1.2);
employee2.setMonthlySalary(employee2.getMonthlySalary() * 1.2);
System.out.println("After 20% raise:");
System.out.printf("Employee 1: %s %s; Yearly Salary: $%.2f%n",
employee1.getFirstName(), employee1.getLastName(),
12 * employee1.getMonthlySalary());
System.out.printf("Employee 2: %s %s; Yearly Salary: $%.2f%n",
employee2.getFirstName(), employee2.getLastName(),
12 * employee2.getMonthlySalary());
}
}
请注意,开头的 "I have the following class written in the Employee.java script:" 和 "With the corresponding test class written in a separate script called EmployeeTest.java:" 这两句话没有被翻译,因为您要求只返回翻译好的部分。
英文:
I have the following class written in the 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");
}
}
With the corresponding test class written in a separate script called 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: $%.2f\n",
employee1.getFirstName(), employee1.getLastName(),
12 * employee1.getMonthlySalary() );
System.out.printf( "Employee 2: %s %s; Yearly Salary: $%.2f\n",
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: $%.2f\n",
employee1.getFirstName(), employee1.getLastName(),
12 * employee1.getMonthlySalary() );
System.out.printf( "Employee 2: %s %s; Yearly Salary: $%.2f\n",
employee2.getFirstName(), employee2.getLastName(),
12 * employee2.getMonthlySalary() );
}
}
I cannot figure out how to call the developerInfo function in order get that to print to the console. Expected output is:
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
Any insight would be so appreciated! Thank you!
答案1
得分: 2
存在两种可能性。首先,你可以将方法设为静态的:
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();
由于它与雇员本身不直接相关,我会选择第一种选项,或者将该方法外包出去。
英文:
There exists two possibilites. First you can make the method static:
public static void developerInfo() {
System.out.println("Name: Erin");
System.out.println("Course: Object-Oriented Programming");
System.out.println("Program: Three \n");
}
Then you can call the method with Employee.developerInfo()
. Second you can use an instance of the Employee
class and you can call the method:
employee1.developerInfo();
Since it is not directly related to an employee, I would take the first option or outsource the method.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论