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); //外部类实例对象的属性
}


相关文章
|
8天前
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
|
3天前
|
设计模式 Java 编译器
Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
Java中的内部类(如果想知道Java中有关内部类的知识点,那么只看这一篇就足够了!)
|
3天前
|
存储 Java C语言
Java面向对象课程设计--类管理系统
Java面向对象课程设计--类管理系统
12 1
|
3天前
|
Java
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
|
7天前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
20 3
|
9天前
|
安全 Java
Java 面向对象之旅:封装——让代码更加“接地气”的秘诀。
【6月更文挑战第16天】**Java面向对象的封装秘籍:**将数据和操作打包成类,如`Student`和`Car`,隐藏内部详情,只通过`get/set`方法交互。封装提升代码清晰度,便于管理和保护安全性,就像整理工具箱,让每个功能一目了然,操作自如。
|
9天前
|
安全 Java
Java 面向对象之旅:在封装的港湾中,找到代码的安宁。
【6月更文挑战第15天】封装是Java面向对象的核心,它保护了类的内部数据,如`Book`和`Student`类中的属性。通过设定私有成员和公共方法,代码更有序,防止直接访问导致的混乱。封装提供了一种控制数据交互的方式,确保安全,如`setGpa()`方法验证输入。这使得代码结构清晰,如同港湾中的船只,井然有序,赋予编程过程美感和安全感。在面向对象的旅程中,封装是我们的庇护所,助力我们构建更美好的程序世界。
|
15小时前
|
Java
面向对象的JAVA代码详解
面向对象的JAVA代码详解
13 5
|
15小时前
|
Java 新能源
Java面向对象的过程及代码实现方法
Java面向对象的过程及代码实现方法
|
22小时前
|
Java
Java内部类相关内容总结和解读
Java内部类相关内容总结和解读