关于java中的main方法
在java中,main方法属于静态方法,那么它不能调用非静态方法。那么可不可以这样理解:main可以通过类构造器间接调用一般方法,因为书上说构造器可以认为是一种静态块,但...
在java中,main方法属于静态方法,那么它不能调用非静态方法。那么可不可以这样理解:main可以通过类构造器间接调用一般方法,因为书上说构造器可以认为是一种静态块,但它可以调用任一符合权限的方法。是否有更恰当的解释?
展开
2016-06-08
展开全部
首先,main方法不能直接调用非静态方法,要调用非静态方法只能通过new实现,new后会调用类的构造器,所以main调用非静态方法那么就一定会调用其构造器;
其次,构造器不属于静态的块,类的加载顺序中静态的会先加载,同样静态的会按顺序加载,你可以试试你就会发现静态的在构造器前或后都会比构造器先加载
最后说一句,静态调用可以不经过其构造器,就是说你调用某个类的静态属性(方法),可以不需要new这个类,没有new这个类是不会调用其构造方法的
其次,构造器不属于静态的块,类的加载顺序中静态的会先加载,同样静态的会按顺序加载,你可以试试你就会发现静态的在构造器前或后都会比构造器先加载
最后说一句,静态调用可以不经过其构造器,就是说你调用某个类的静态属性(方法),可以不需要new这个类,没有new这个类是不会调用其构造方法的
追问
我是说构造器可以看作是静态的,但是它实际上不是,我想表达的也是这个意思,谢谢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询