Java面向对象(21)--内部类

简介: Java面向对象(21)--内部类

当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。


在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。


内部类一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。


内部类的名字不能与包含它的外部类类名相同。


内部类的分类:成员内部类(静态、非静态)和局部内部类(方法内、代码块内、构造器内)


成员内部类:


一方面,作为外部类的成员:

可以调用外部类的结构

可以被static修饰

可以被4种不同的权限修饰


另一方面,作为一个类:

类内可以定义属性、方法、构造器等

可以被final修饰, 表示此类不能被继承,不使用final,就可以被继承

可以被abstract修饰


创建静态的成员内部类实例


外部类名.内部类名 实例对象名 = new 外部类名.内部类名();

创建非静态的成员内部类实例


外部类名 外部类实例对象名 = new 外部类名();
外部类名.内部类名 内部类实例对象名 = 外部类实例对象名.new 内部类名();


内部类中调用属性


public method(name){
  system.out.print(name); //方法形参
  system.out.print(this.name); //内部类实例对象的属性
  system.out.print(外部类.this.name); //外部类实例对象的属性
}


相关文章
|
23小时前
|
安全 Java
Java 面向对象之旅:在封装的港湾中,找到代码的安宁。
【6月更文挑战第15天】封装是Java面向对象的核心,它保护了类的内部数据,如`Book`和`Student`类中的属性。通过设定私有成员和公共方法,代码更有序,防止直接访问导致的混乱。封装提供了一种控制数据交互的方式,确保安全,如`setGpa()`方法验证输入。这使得代码结构清晰,如同港湾中的船只,井然有序,赋予编程过程美感和安全感。在面向对象的旅程中,封装是我们的庇护所,助力我们构建更美好的程序世界。
|
1天前
|
设计模式 Java
一文掌握 Java 面向对象精髓:从类定义到对象实战
【6月更文挑战第15天】Java面向对象编程初学者指南:类是对象模板,如`Person`类含`name`和`age`属性。创建对象用`new`,如`Person person = new Person()`。访问属性如`person.name="Alice"`,调用方法如`person.sayHello()`。类能继承,如`Student extends Person`。对象间共享数据可传参或共用引用。多态性允许父类引用调用子类方法。注意对象生命周期和内存管理,避免内存泄漏。通过实践和理解这些基础,提升编程技能。
|
1天前
|
Java
深入 Java 面向对象:类的定义,竟然藏着这么多门道!
【6月更文挑战第15天】Java中的类定义是OOP的基础,它封装属性(如Student的name和age)和行为(如study())。简单的类仅触及表面,而复杂的类可模拟真实世界对象的多样性和交互。类还可通过继承扩展,如Student从Person派生,增加特有属性和行为。接口和抽象类等概念进一步增强了灵活性和可扩展性。类定义的深度和广度是构建高效、可维护代码的关键。
|
2天前
|
数据可视化 Java 测试技术
[笔记] 疯狂JAVA讲义(第3版) 第2章 理解面向对象
[笔记] 疯狂JAVA讲义(第3版) 第2章 理解面向对象
|
2天前
|
缓存 Java 程序员
[笔记] 疯狂JAVA讲义(第3版)第6章 面向对象(下)
[笔记] 疯狂JAVA讲义(第3版)第6章 面向对象(下)
|
2天前
|
Java 数据安全/隐私保护
[笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)
[笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)
|
3天前
|
Java 编译器 程序员
Java基础9-深入理解Java内部类及其实现原理
Java基础9-深入理解Java内部类及其实现原理
10 0
|
3天前
|
安全 Java 编译器
Java基础2-Java面向对象三大特性(基础篇)(二)
Java基础2-Java面向对象三大特性(基础篇)(二)
10 0
|
3天前
|
存储 设计模式 Java
Java基础2-Java面向对象三大特性(基础篇)(一)
Java基础2-Java面向对象三大特性(基础篇)(一)
12 0
|
10天前
|
Java
【Java基础】 内部类 (成员内部类、局部内部类、静态内部类、匿名内部类)
Java内部类 (成员内部类、局部内部类、静态内部类、匿名内部类)
6 0