Java对于每个循环,类中的每个实例

时间:2019-05-29 13:40:23

标签: java

我从OOP开始 而且我有以下问题: 我上了新课 然后我从这堂课开始 现在,对于每个实例,我都想做点什么 我为每个循环尝试了一个,但它不起作用... 有一些语法问题

这是课程:

package main;

public class command
{
    String call;
    String execute;
}

这是来自Main类的:

 private static void load() {
        command greeting = new command();

        greeting.call = "hello";
        greeting.execute = "Hello Sir";


        for (command c: command) {
            System.out.println("Another command...");
        }

    }

我不知道该如何制作循环,或者还有另一种方法吗?

2 个答案:

答案 0 :(得分:0)

for循环中使用的语法必须使用实现Iterable接口的类的实例。例如,您可以使用List接口的实现。

例如,您可以尝试:

private static void load() {
    command greeting = new command();

    greeting.call = "hello";
    greeting.execute = "Hello Sir";

    List<command> listOfCommands = new ArrayList<>();
    listOfCommands.add(greeting);

    for (command c: listOfCommands) {
        System.out.println("Another command...");
    }

}

答案 1 :(得分:0)

您可以在类命令内创建一个静态列表,实例将被添加到构造函数中。然后,您将始终引用创建的任何实例。

这是一个例子:

import java.util.List;
import java.util.ArrayList;
public class command
{

    String call;
    String execute;

    public static List<command> commands = new ArrayList<>();

    public command() {
        commands.add(this);
    }

    public command(String call, String execute)
    {
        this.call = call;
        this.execute = execute;
        commands.add(this);
    }

    public String toString() 
    { 
        return "call: " + call + " | execute: " + execute;
    } 

}

驱动程序类:

public class driver
{
    public static void main(String[] args)
    {
        for(int i = 1; i <=10; i++)
        {
            command c = new command("call" + i, "execute" + i);
        }

        for(command cmd: command.commands)
        {
            System.out.println(cmd);
        }
    }
}   

输出:

enter image description here