Java 静态类

Java静态类只有一种情况,那就是静态内部类,在外部类添加static关键字,Java编译器编译是不能通过的。静态内部类的优点在于,创建实例的时候,不用先实例化外部类。

// 创建静态内部类实例
Inner inner = new Outer.Inner();

//创建非静态内部类实例
Outer outer = new Outer();
Outer.Inner inner1 = outer.new Inner(); 

当外部类需要使用内部类,并且内部类不需要使用外部类资源的情况下,可以考虑静态内部类的设计。最典型的例子是Builder设计模式的使用:

public class Outer {
    private String name;
    private int age;

    public static class Builder {
        private String name;
        private int age;

        public Builder(int age) {
            this.age = age;
        }

        public Builder withName(String name) {
            this.name = name;
            return this;
        }

        public Builder withAge(int age) {
            this.age = age;
            return this;
        }

        public Outer build() {
            return new Outer(this);
        }
    }

    private Outer(Builder b) {
        this.age = b.age;
        this.name = b.name;
    }
}

一般如果不确定传入的参数是多少个,可使用这种设计模式。
参考文档https://www.cnblogs.com/Alex--Yang/p/3386863.html#2801577

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 所谓静态,指以static关键字修饰的,包括类,方法,块,字段。 非静态,指没有用static 修饰的。 静态有一...
    JackLee_阅读 12,483评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 洗脑十个中性词,一个人一天洗很多次手,至少洗一次澡,甚至上厕所洗屁屁。但至少十几年没有洗一次脑,把大脑错误的概念、...
    陈东Growth阅读 262评论 0 0
  • # Markdown 文件 ================== ![Markdown](http://markd...
    WEcho丶SNlone阅读 340评论 0 0
  • 昨天《恋爱先生》大结局啦😄 里面几款男人竟然最心水傻不拉叽的IT男😊😊就爱这种又傻又逗滴技术宅! 下面来对比下这几...
    梦猫猫阅读 723评论 0 1