【问题标题】:How to create an object during runtime with user input reference type, object name and parameters in Java如何在运行时使用 Java 中的用户输入引用类型、对象名称和参数创建对象
【发布时间】:2019-11-04 14:35:02
【问题描述】:

我希望能够根据用户输入动态创建员工对象。我有两个不同的班级,一个是经理,一个是助理。我应该能够输入我想要创建的员工类型以及员工的姓名和年龄。 我该怎么做?

while (true){

System.out.print("Input the type of employee: "); 

String type = Input.next();

//Can only be "manager" or "associate"


System.out.print("Input the name of the employee: ");

String name = Input.next();

System.out.print("Input the age of the employee: ");

int age = Input.nextInt();


/*The name of the object should also be the name of the employee
*Depending on what "Type" is given from the user determines what type of object the new object is going to be 
*/

type name = new type(name,age)

//type is not the reference type but a variable holding the reference *type
*/
}

我希望我应该能够创建任意多个引用类型的对象:管理器或关联。不同的名字和年龄

【问题讨论】:

  • 好的,您的实际问题是什么?顺便说一句,如果您了解如何:1. 实例化对象 2. 可能使用设置器 3. 使用循环,您可以,顺便说一句,或者您应该能够
  • 1- 确保您已收集创建对象所需的所有参数 2 - 构造它 3 - 将其存储在链接列表或任何其他旨在轻松动态添加的结构中。
  • @Stultuske 实际的问题是我该如何做到这一点,什么语法将使在运行时通过用户输入创建该对象的概念起作用。另外,我还不明白什么是实例化对象或设置器,我不知道如何使用循环来完成这项工作,但感谢您的建议。
  • @AskedSuperior 如果你不知道什么是实例化对象,你就不可能创建和使用一个对象,因为要这样做,你需要实例化一个对象。 “什么语法”,你的意思是你不知道基础,但是你想让我们给你提供现成的代码?如果你不知道循环适合你的描述,你要么不知道循环是什么,要么是你的需求的简单逻辑,而不是代码,你遇到了麻烦
  • @stultuske 好吧,是的,我不太了解我仍在学习语言和编程,这就是我问这个问题的目的,因为我不知道该做什么做。但是,如果您建议为了完成我所要求的任务,我需要学习如何实例化对象,那么我将学习它。

标签: java oop object


【解决方案1】:

您不能使用字符串变量作为类名。而不是

type name = new type(name,age)

试试

if ("manager".equals(type)) {
    Manager mgr = new Manager(name, age);
} else {
    Associate asc = new Associate(name, age);
}

这假设您在某处定义了 ManagerAsssociate 类,并且它们每个都有一个接受 Stringint 的构造函数。

【讨论】:

  • 是的,这有点工作,但部分问题是我需要使用不同的名称制作单独的对象,而不仅仅是“mgr”或“asc”作为对象名称。对象名称也必须能够变化。
猜你喜欢
  • 2023-03-06
  • 2020-03-21
  • 2015-11-11
  • 2021-12-31
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多