为什么可以通过创建对象在main方法中调用非静态方法?JAVA
我可以在main方法中创建一个对象,并使用我创建的对象调用另一个方法为什么可以通过创建对象在main方法中调用非静态方法?JAVA,java,static,Java,Static,我可以在main方法中创建一个对象,并使用我创建的对象调用另一个方法 public class Obj{ public static void main(String[] args) { Obj obj = new Obj(); obj.yourNameIs(); } void yourNameIs(){ System.out.println("TY"); } } 但是,如果我想在不创建对象的情况下调用它,我必须将yourName
public class Obj{
public static void main(String[] args) {
Obj obj = new Obj();
obj.yourNameIs();
}
void yourNameIs(){
System.out.println("TY");
}
}
但是,如果我想在不创建对象的情况下调用它,我必须将yourNameIs
方法更改为static
public class Obj{
public static void main(String[] args) {
yourNameIs();
}
static void yourNameIs(){
System.out.println("TY");
}
}
我知道您不能在静态方法中调用非静态方法,在本例中是
main
方法。但是为什么我可以在main方法中创建一个对象,然后调用一个非静态方法,比如yourNameIs()
?我的意思是为什么我不需要将yourNameIs()
更改为静态方法?如果您创建一个类的实例,您可以为此实例调用任何实例(即非静态)方法。实例是否在静态方法中创建并不重要。非静态方法与类的实例相关联。一旦您有了一个实例,您就可以从任何您喜欢的地方调用这样的方法(取决于Java的)。main()
是static
这一事实在这里没有任何区别