java为什么不使用静态void main方法,而是使用非静态方法
为什么下面的代码片段使用非静态代码来运行程序???以这种方式运行程序有什么好处吗
public static void main(String[] args) {
Main go = new Main();
go.start();
}
public Main() {
}
public void start() {
//SOME CODE HERE
}
你可以在下面搜索框中键入要查询的问题!
为什么下面的代码片段使用非静态代码来运行程序???以这种方式运行程序有什么好处吗
public static void main(String[] args) {
Main go = new Main();
go.start();
}
public Main() {
}
public void start() {
//SOME CODE HERE
}
# 1 楼答案
经典的面向对象方法鼓励封装:所有内容都必须尽可能地是本地的,并且类的多个实例必须是可能的。全球化是糟糕而丑陋的
面向对象的方法还鼓励继承、多态性和用定义良好的功能重写方法的可能性。或者,合成(从定义良好的子组件合成复杂对象的替代版本)
虽然单一且简单的静态方法与单一且简单的非静态方法看起来没有太大区别,但它只能轻松地调用此类的其他静态方法,并且只能简单地访问静态变量
<>这阻止了简单的“Hello World”没有区别的高级架构,但是如果你想从这个存根中长大一个复杂的应用程序,就值得考虑。p># 2 楼答案
基本上,使用
main()
简单地实例化相应类的实例,然后调用该对象上的方法有两个优点:它允许您以更面向对象的方式“重用”主类。如果另一个类想要使用
Main
,那么调用一个静态方法来实现这一点通常不是你想要的(这会使单元测试更难使用静态方法)。因此,如果“重用”是您的需求之一,那么可以实例化该类,并且在不调用其静态main()
的情况下使用它可能是有益的除此之外,它还使得对主类进行单元测试变得更加容易