当前位置: 首页 > 知识库问答 >
问题:

当涉及多个对象时,用于更新变量的用户输入

郎永福
2023-03-14

我现在正在学习java,开始学习方法、类和对象。我正在尝试编写一个简单的程序,为公司的2个单独的员工设置值,然后允许用户输入来改变特定对象的某些变量。需要通过用户输入更新的变量是对象Employee2的MonthlySalary和FirstName。我真的不确定如何构造用户输入部分,我正不知所措,试图找到一个解决方案。

import java.util.Scanner;

public class EmployeeTest
{
    public static void main( String[] args ){

        Scanner input = new Scanner(System.in);
        
        // Create 2 Employee objects
        Employee employee1 = new Employee( "Jane", "Doe", 5000 );
        Employee employee2 = new Employee( "John", "Bloggs", 4500 );

        // Do other steps (not requiring input)

        // Ask for user input of Employee 2's new first name
        System.out.println( "Please enter new first name for Employee 2: \n");
        String input = employee2.newFirstName();
        
        // repeat above to set Employee 2's new salary then display new information


   }
}

使用类文件Employee.java

public class Employee
{
   private String firstName;           // Employee's First Name
   private String lastName;            // Employee's Last Name
   private double monthlySalary;       // Employee's Monthly Salary

// Employee constructor
   public Employee( String initFirstName, String initLastName, double initMonthlySalary ) 
   {
      firstName = initFirstName;
      lastName = initLastName;
      if (initMonthlySalary > 0)
          monthlySalary = initMonthlySalary;
      else
          monthlySalary = 0;
   }

    public Employee( )
    {
        firstName = "";
        lastName = "";
        monthlySalary = 0;
    }

// Method to assign the employee's First Name
   public void setFirstName( String newFirstName )                   
   {
      firstName = newFirstName;
   }

// Method to assign the employee's Monthly Salary
   public void setMonthlySalary( double newMonthlySalary )           
   {
      if (newMonthlySalary > 0) monthlySalary = newMonthlySalary;
   }

// Other required methods

}

共有1个答案

段干瑞
2023-03-14

您正在努力从控制台获取输入。

System.out.println("Please enter new first name for Employee 2: ");
    String firstName = input.next();
    employee2.setFirstName(firstName);

    System.out.println("Please enter new Salary for Employee 2: ");
    double salary = input.nextDouble();
    employee2.setMonthlySalary(salary);

这对你管用。请先了解基本语法。因为否则你就是在浪费自己的时间,为这种句法上的怀疑而发牢骚。

 类似资料:
  • 我正在编写一些VBA代码,这些代码应该遍历特定文件夹中的所有Excel文件(文件夹名称总是格式化为月份年份,例如2020年5月)。在我的代码中,我还需要使用单独的“月份”和“年份”字符串,例如“五月”和“2020年”,以及日期格式mm/?? /yy例如5/?? /20(日期不重要,所以我只是把? 到目前为止,我使用让用户选择文件夹,我使用三次来获取字符串和日期。 有没有办法压缩它,让用户只需要做一

  • 问题内容: 我在多个非缓冲通道上使用select时发现 即使两个通道都具有数据,但是在处理此选择时,在chana和case chanb中落下的调用也不平衡。 运行此演示,当其中一个通道完成读/写操作时,另一个通道可能仍保留999-1。 有什么方法可以确保平衡? 问题答案: Go 语句不偏向任何(就绪)情况。引用规范: 如果可以进行一种或多种通信,则可以通过 统一的伪随机选择 来选择可以进行的单个通

  • 我有一个JSON输入: 我的震动规格是: 我的输出是: 这个输出看起来不错,直到我的输入文档数组中只有一个 JSON 对象。然而,当我放另一个对象时,它看起来有点像这样,这是不希望的。它将两个对象的所有值组合在一起,如下所示: 请建议我在JOLT规范中应该做哪些更改,以使数组中的每个变换对象都列为一个单独的对象,而不是被混入。

  • 当用户在扫描器中输入任何整数时,我试图捕捉一个异常。我理解使用字符串item=scan。nextLine()将允许进行任何输入,包括整数。我创建了一个自定义异常来捕捉数字1。但是如果用户输入999或任何其他整数会发生什么呢。我如何捕获这些其他整数作为异常的一部分? import java.util.Scanner;import java.lang.Exception; 公共类示例一{ } 公共类T

  • 问题内容: 嗨,我正在尝试创建一个程序来在用户为某个对象输入新信息时创建一个新对象。目前我有这个。 电脑超一流 桌面子类 笔记本电脑子类 因此,有一个班级和两个子班级,但我认为这并不重要。因此,如果我输入1,则应该为Desktop创建一个新对象,如果我输入2,则将为Laptop创建一个新对象。当我输入3时,它应该显示所有创建的对象。我不知道如何让他们工作,请帮助。 问题答案: 使用您提供的限制信息

  • 问题内容: 我目前正在使用python / curses编写应用程序用户界面,我想知道是否可以要求用户在用户界面不断更新时按下键(cbreak模式)以隐藏或显示某些面板或窗口。 我阅读了有关curses的官方python文档并进行了一些尝试,但是即使使用cbreak模式和非阻塞输入模式(nodelay)已激活,我也无法使其正常工作(我成功获取了用户输入,但是在阻止UI的代价不是我想要的)。 所以我