corejava基础问题

1、同一个文件里是否可以有两个public类?

答:不能,同一个源文件如果有多个公共类,那么编译器就找不到应该执行的main方法了。当有一个public类,源文件名必须与之相同,否则无法编译。

2、main方法内是否可以调用一个非静态方法?

答:main方法是静态方法,静态方法可以在没有对象实例的时候直接调用,但是因为没有对象实例,所以不能调用非静态方法。解决办法:new一个对象,然后调用这个对象的方法,或者将这个方法改为static方法。

3、静态方法是否可以调用一个非静态全局变量?

答:静态方法不可以调用非静态全局变量,从内存角度来看,就是当类被加载的时候静态方法和静态属性被加载到内存中,就是在内存中开辟一段内存地址用来保存静态方法和静态属性,这时候没有被实例化的类在内存中是不存在的,所以静态方法是不能访问非静态的全局变量的。在类被实例化的时候,就是new某个类的时候,在内存中给这个类开辟一些内存空间保存这个类的对象,这个时候就可以用静态方法去访问非静态的全部变量。

posted @ 2018-09-04 17:46  一个骄傲的少年  阅读(161)  评论(0编辑  收藏  举报