Java - 如何使用在main方法之外创建的对象?

时间:2017-05-18 14:21:22

标签: java

如何在main方法中引用在main方法之外创建的对象。下面是一个例子。让我们假装所有其他代码都是正确的,Apple类是完整的。我想知道如何在外部创建主要方法时引用apple1。我理解我“不能从静态上下文中引用非静态变量”。

有什么工作?

public class Fruits {

    private Apple apple1 = new Apple();

    public static void main(String[] args) {

        System.out.println("The colour of the apple is "apple1.getColour());

    }
}

希望这个问题对某人有意义。提前谢谢。

编辑:我不想将apple1更改为静态。

2 个答案:

答案 0 :(得分:2)

apple1可以访问static main

private static Apple apple1 = new Apple();

或制作一个Fruits对象,然后通过它访问它。

答案 1 :(得分:1)

您的apple1实例变量(又名"实例字段")。除非您创建Fruits的实例,例如,它才会存在,例如,通过newmain方法,而不是实例方法,因此它不会自动拥有要使用的实例。

所以你可以这样做:

Fruits f = new Fruits();
System.out.println(f.apple1.getColour());

...在main中访问它。

替代,将其设为static,使其成为类变量(或"类字段"),为Chandler notes

private static Apple apple1 = new Apple();

然后可以通过类main

等类方法访问它
System.out.println(apple1.getColour());
// or
System.out.println(Fruits.apple1.getColour());