类和方法的写法都是一种声明,所谓声明,就是说是对行为的描述,而不是要真正执行它。
class 小狗{
public void 吃饭(){
小狗 abc = new 小狗();
}
}
这里声明一个叫小狗的类,他有一个方法,吃饭()。
到这里没有任何问题,我只是描述了一个类,和吃饭的行为。
这个时候系统什么都没发生,因为只是声明而已。
说的是小狗“可以”吃饭,但并不是声明完就必须立即调用吃饭()。
谁去调用它呢?
必须有一个不需要创建对象也能调用的方法。
java里面就是main方法(这个main方法只需要放到任意一个类中即可)
public static void main(String[] args) {
小狗 a = new 小狗();
a.吃饭();
}
当你用java执行这个类时,系统会寻找main方法作为入口执行。流程如下
1 进入 main方法,调用 小狗 a= new 小狗(),
这样系统才真正创建一个小狗 类(class)的 一个实例(instance),
2 然后调用 a.吃饭(),这个时候系统执行了吃饭的方法,即又创建了abc,一个新的小狗,
3 程序结束,返回。
系统寻找main的时候不关心main是否在哪个类里,所以实际上main和他的宿主在生命周期上没有关联。之所以写在这个类里只是不需要import类,图方便而已。
辨析:
1、https://www.oschina.net/question/858822_2160398
知识点:
mian()方法