美文网首页Java
Java 静态类

Java 静态类

作者: 我啊翔1314 | 来源:发表于2018-08-25 18:51 被阅读0次

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

相关文章

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • JAVA的类加载顺序

    理解关于java类的加载顺序 首先来捋一捋java类的加载顺序吧 父类静态代码块 》》静态代码初始化,静态属性(带...

  • Java实例变量(方法)与类变量(方法)

    Java实例变量Java类变量(静态变量)

  • Java面试题

    Java类的类的实例化顺序 先静态、先父后子。先静态:父静态 > 子静态优先级:父类 > 子类 静态代码块 > 非...

  • unity3d c#调用java

    c#调用java非静态方法 C#调用静态类,静态方法 ; CustomClass的静态类,SetData是它的静...

  • java相关零碎知识

    java初始化,加载顺序: 父类的静态成员变量,父类静态代码块,子类的静态成员变量,子类的静态代码块,父类非静态成...

  • 技术文章收集

    单例模式Java 类加载静态类加载时机

  • 高效Java第四条通过私有构造函数强化不可实例化的能力

    问题的引出 工具类:只包含静态方法和静态域的类java.lang.Math或java.util.Arrays,把基...

  • Java 静态类

    Java静态类只有一种情况,那就是静态内部类,在外部类添加static关键字,Java编译器编译是不能通过的。静态...

  • Java静态类

    最近在学习中碰到了一个问题:写了一个Java的静态类报错误:"modifier static not allowe...

网友评论

    本文标题:Java 静态类

    本文链接:https://www.haomeiwen.com/subject/xipgiftx.html