zoukankan      html  css  js  c++  java
  • 你忽视的静态类的作用(必看)

      在进行代码程序测试的时候,如果在每一个Java源文件中都设置一个主方法(主方法是某个应用程序的入口,必须具有),那么会出现很多额外的代码。而且最主要的时这段主程序的代码对于Java文件来说,只是一个形式,其本身并不需要这种主方法。但是少了这个主方法又是万万不行的。在这种情况下,就可以将主方法写入到静态内部类中,从而不用为每个Java源文件都设置一个类似的主方法。这对于代码测试是非常有用的。在一些中大型的应用程序开发中,则是一个常用的技术手段。为此,这个静态内部类虽然不怎么常用,但是程序开发人员还必须要掌握它。也许在某个关键的时刻,其还可以发挥巨大的作用也说不定。

    public class MainInStaticClass {
     
     static class Main{
        static void main() {
            //将主方法写到静态内部类中,从而不必为每个源文件都这种一个类似的主方法
            new MainInStaticClass().print();
           }
        }
     
        public static void main(String[] args){
            new MainInStaticClass().print();
        }
     
        public void print(){
            System.out.println("main in static inner class");
        }
     }
     
     
     public class TestMain {
     
     
     public static void main(String[] args) {
         // TODO Auto-generated method stub
         // new MainInStaticClass().print();
         MainInStaticClass.Main.main();
         new MainInStaticClass.Main();
     }
     
    }                
    

     参考:http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html#cmt_2283173

     总结:目地不是为了使得代码更简洁,而是在保证代码可读性的时候提供测试功能。对于一个英语程序而言,最好只有一个main入口函数。可以这么想,你有两个功能需要执行,分别执行A.class和B.class,A和B分别有main方法,所有需要两个main方法,分两次执行。但是如果A和B分别具有静态内部类C和D的话,就可以分别将A和B的main方法封装成成员方法,在内部C和D的静态成员方法E和F中调用,这样你只需要在一个main中调用A.C.E()和B.D.F()即可

  • 相关阅读:
    演示使用string对象(续)
    P2216 [HAOI2007]理想的正方形 单调队列
    SP1805 HISTOGRA
    P4556 [Vani有约会]雨天的尾巴 树链剖分 线段树合并
    codeforces 600E 线段树合并
    HDU2197 本原串
    P3806 【模板】点分治1
    牛客10 Popping Balloons
    P3261 [JLOI2015]城池攻占 左偏树
    P4549 【模板】裴蜀定理
  • 原文地址:https://www.cnblogs.com/xiaoguangit/p/4989296.html
Copyright © 2011-2022 走看看