【问题标题】:create multiple instances of a class without array in a loop在循环中创建没有数组的类的多个实例
【发布时间】:2016-10-04 19:16:44
【问题描述】:

我知道这个问题被问过很多次,并且我已经浏览了许多类似的主题,但它们都包括数组或列表,我不想使用数组或列表,其次我不明白:)。 无论如何,这是我的问题:我有一个带有名称、id、工作方法的类来将这些存储在一个变量中,我想问一下公司有多少员工,这就是为什么我不能对每个变量进行硬编码,因为这个数字是未知的因此我需要一个循环,并且不允许使用数组或列表。感谢任何想法或帮助。

这是该类的代码:

public class Staff{
    public void name(String name){
        String staff_name = name;
    }
    public void id(String id){
        String staf_id = id;
    }
    public void job(String job){
        String staff_job = job;
    }
}

主代码:

import javax.swing.JOptionPane;
public class P2Q2{
    public static void main(String[]args){

        System.out.println("How many staff in Department? ");
        String staff_num = JOptionPane.showInputDialog(null,"How many Staff are there",
                "Department staff numbers",JOptionPane.QUESTION_MESSAGE);
        int staff_num_int = Integer.parseInt(staff_num);

        for(int i=1;i<staff_num_int;i++){
            //somthing in here to create objects for each staff
        }
    }
}

这是整个问题:

编辑: 我只是不想提供整个问题,但如果这样更好,你就去吧。

【问题讨论】:

  • 为什么不允许使用数组或列表?
  • 问讲师:/,为什么 -1 :(
  • 你可以在 Staff 类中有一个静态计数变量,告诉你一个实例被创建了多少次,如果这就是你的意思的话。老实说,我很难理解你真正想要什么。
  • 我想我解释清楚了,我想为每个员工创建具有不同引用的对象!!!
  • 在循环中创建一个类的多个实例,而不在某处存储对它们的引用是没有意义的。这样做的唯一选择是某种集合或数组。如果您不存储引用,您将无法在以后的程序中使用这些实例,并且垃圾收集器将删除它们。这个问题无法回答。

标签: java class loops object


【解决方案1】:

您可以在没有数组或列表的情况下创建Staff 对象 - 但它没有意义,因为您将无权访问这些对象。如果您无法访问这些对象 - 这意味着垃圾收集器将在您退出循环范围后销毁它们。

【讨论】:

  • 错了。您可以为每个实例创建一个单独的变量。
  • 我知道这不是我想要的,因为稍后我想访问这些对象并添加薪水和东西
  • @Gendarme 好吧,也许我错了。你能解释一下吗?
  • 您可以引用对象而不将它们放入数组或列表中。 Staff s = new Staff(); 不在数组或列表中,但完全没问题。
  • 这充其量只是一个评论。这个问题无法回答。
【解决方案2】:

如果你不能使用数组或列表,并且你想访问每个人员对象。您可以考虑使用诸如哈希映射之类的东西。您可以将对象存储在哈希映射中,并在创建并添加到映射后使用人员名称作为访问每个对象的键。

【讨论】:

    猜你喜欢
    • 2013-04-19
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2018-10-22
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多