如何在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更改为静态。
答案 0 :(得分:2)
apple1
可以访问static
main
。
private static Apple apple1 = new Apple();
或制作一个Fruits
对象,然后通过它访问它。
答案 1 :(得分:1)
您的apple1
是实例变量(又名"实例字段")。除非您创建Fruits
的实例,例如,它才会存在,例如,通过new
。 main
是类方法,而不是实例方法,因此它不会自动拥有要使用的实例。
所以你可以这样做:
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());