Java

Java 静态类

2018-08-25  本文已影响0人  我啊翔1314

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

上一篇 下一篇

猜你喜欢

热点阅读