java基础篇 之 非静态内部类

简介: java基础篇 之 非静态内部类

什么是非静态内部类:

public class Outer {
    Outer() {
        System.out.println("我是外部类");
    }
    class Inner {
        Inner() {
            System.out.println("我是内部类");
        }
    }
}

如上所示,Inner就是一个非静态内部类。

我们需要的知道是:

非静态内部类默认持有一个外部类对象的引用

非静态内部类有外部类对象中所有对象跟属性的访问权限

.this跟.new的使用:

我们可以在内部类对象中,使用外部类名.this获取一个外部类对象,像这样:

 class Inner {
        Inner() {
        Outer out = Outer.this;
            System.out.println("我是内部类");
        }
    }

这实际上就是我们说的内部类中,默认持有一个外部类的对象的引用。


我们在创建一个内部类对象时需要用到.new语法,像这样:

Outer.Inner inner = new Outer().new Inner();



相关文章
|
2月前
|
Java
【Java基础】输入输出流(IO流)
Java基础、输入输出流、IO流、流的概念、输入输出流的类层次结构图、使用 InputStream 和 OutputStream流类、使用 Reader 和 Writer 流类
117 2
|
11天前
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
25 5
|
6天前
|
Java
【Java】内部类、枚举、泛型
【Java】内部类、枚举、泛型
|
1月前
|
Java
Java进阶之内部类
【7月更文挑战第13天】Java内部类增进代码组织与封装,允许直接访问外部类成员,包括私有成员。主要有四种类型:成员、静态、局部和匿名内部类。匿名内部类常用于一次性实现接口或扩展类。内部类可隐藏实现细节,减少命名冲突,并在特定上下文中定义辅助类。示例展示了静态和非静态内部类如何在Shape类中封装Circle和Rectangle。使用内部类能提升代码可读性,但可能增加复杂性。
26 6
|
2月前
|
Java
一篇文章讲明白Java中内部类详解—匿名内部类
一篇文章讲明白Java中内部类详解—匿名内部类
19 2
|
2月前
|
安全 Java
|
2月前
|
设计模式 Java 编译器
Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
|
2月前
|
Java
Java内部类相关内容总结和解读
Java内部类相关内容总结和解读
22 0
|
2月前
|
存储 Java
Java 五种内部类演示及底层原理详解
Java 五种内部类演示及底层原理详解
16 0
|
2月前
|
存储 缓存 Java
Java基础17-读懂Java IO流和常见面试题(二)
Java基础17-读懂Java IO流和常见面试题(二)
32 0