美文网首页一些收藏
说说 Java 的静态内部类

说说 Java 的静态内部类

作者: deniro | 来源:发表于2022-04-05 18:14 被阅读0次

Java 的静态内部类就是定义在一个类的内部,并且标注为 static 的类。由于类是静态的,所以不需要通过外围类的实例来创建。下面是一个示例:

public class Outer {

    private static final Logger log = LoggerFactory.getLogger(Outer.class);

    private static class Inner {
        public int value() {
            return 1;
        }
    }

    public static Inner inner() {
        return new Inner();
    }

    public static void main(String[] args) {
        Inner c = inner();
        log.info("c.value() -> {}。", c.value());
    }
}

外围类 Outer 定义了一个私有、静态内部类 Inner。然后定义了一个静态方法 inner(),返回 Inner 类。这个静态方法 inner() 就是外部类调用该内部类的桥梁。

静态内部类与非静态内部类之间的比较:

比较 静态内部类 非静态内部类
创建 外围类.方法 外围类实例.方法
访问外围类 能访问静态属性,不能访问非静态属性 不能访问静态属性,可以访问非静态属性

比如在外围类 Outer 中分别定义了一个私有、非静态属性 i,与一个私有、静态属性 j。那么静态内部类 Inner 只能访问 私有、静态属性 j:

public class Outer {

    private static final Logger log = LoggerFactory.getLogger(Outer2.class);

    // Inner 不可访问
    private int i;

    // Inner 可访问
    private static int j;

    private static class Inner {
        public int value() {

            return 1;
        }
    }
}

参考:
BruceEckel, 埃克尔, 陈昊鹏. Java编程思想[J]. 机械工业出版社, 2007. p201-202.

相关文章

  • java入门学习提升第九篇:Java内部类——静态内部类

    今天来说说Java中的最后一种内部类——静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用st...

  • Java自学-接口与继承 内部类

    Java 内部类 内部类分为四种: 非静态内部类静态内部类匿名类本地类 步骤 1 : 非静态内部类 非静态内部类 ...

  • 内部类

    内部类可以分为:非静态内部类;静态内部类;匿名内部类。 一、内部类 首先要说,Java为什么要使用内部类?java...

  • Java内部类使用

    内部类 在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类。 非静态态内部类...

  • java之内部类(InnerClass)详解

    参考文章 java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类

  • Java 中的静态内部类

    Java 中的静态内部类 静态内部类是 static 修饰的内部类,这种内部类的特点是: 1、 静态内部类不能直接...

  • Java静态内部类

    Java静态内部类 博客分类: java 两种内部类 Java的内部类有两种,一种是静态内部类,另一种是普通内部类...

  • Java学习——内部类

    内部类 一,成员内部类(包括静态内部类和非静态内部类) 非静态内部类可以直接访问外部类的成员,反之则不行 非静态内...

  • (java知识小总结二)2018-05-31

    5.2Java 中的静态内部类:静态内部类是 static 修饰的内部类 特点:(1)、 静态内部类不能直接访问外...

  • 关于非静态内部类为什么不能有静态成员的实践

    导引 作为java开发者,我们都知道内部类分为静态内部类和非静态内部类。非静态内部类不能有静态成员(不包括静态常量...

网友评论

    本文标题:说说 Java 的静态内部类

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