Java面向对象10——内部类知识点总结

简介: Java面向对象10——内部类知识点总结

一、前言


本文将讲述有关内部类的知识点


二、内部类定义


内部类:在一个类的里面再定义一个类


public class Outer{
  public class Inner{
  ···
  }
}


三、内部类简单应用


需求:写一个JavaBean类描述汽车

属性:汽车品牌、颜色,发动机品牌、使用年限


这时候我们定义成员属性的时候,除了carName、carColour,还有engineName、engineAge如果我们写一个Car类的话,后面两个属性就没办法定义在这个类中,只能重新写一个Engine类,但是由于发动机又是车的一部分,所以要把Engine类放到Car类中,这时候Engine类就是内部类了


public class Car{
  String carName;
  String carColour;
  class Engine{
    String engineName;
    int engineAge;
  }
}


四、内部类特点


  • 外部类一部分
  • 单独出现没有意义
  • 可以直接访问外部类成员,私有化成员变量也可以访问
  • 外部类不能直接访问内部类对象,要先创建对象


五、内部类分类


  • 成员内部类
  • 静态内部类
  • 局部内部类
  • 匿名内部类(重点使用)


六、成员内部类


1.书写


  • 写在成员位置,属于外部类的成员
  • 可以被修饰符修饰


2.创建成员内部类对象


  • 当成员内部类被private修饰时,在外部类中编写方法,对外提供内部类对象
  • 直接创建


外部类名.内部类名 对象名 = 外部类对象.内部类对象;
Outer.Inner oi = new Outer().new Inner();


3.获外部类成员变


out.this.变量名


4.实例


public class Outer{
  private int a = 10;
  class Inner{
    int a = 20;
    System.out.println(Outer.this.a);
    System.out.println(this.a);
    System.out.println(a);
  }
}


输出的结果为:10、20、30


5.内存图


4dba8fddc06449809e731ec67792de4a.png


静态内部类


1.特点


  • 静态内部类是一种特殊的成员内部类
  • 有static修饰,属于外部类本身的
  • 总结:静态内部类与其他类的用法完全一样。只是访问的时候需要加上外部类.内部类


2.注意点


  • 可以直接访问外部类的静态成员
  • 不可以直接访问外部类的非静态成员,如果要访问需要创建外部类的对象
  • 静态内部类中没有Outer.this


3.使用格式


外部类.内部类


4.静态内部类对象的创建格式


外部类.内部类  变量 = new  外部类.内部类构造器;


5.调用方法的格式


  • 调用非静态方法的格式:先创建对象,用对象调用
  • 调用静态方法的格式:外部类名.内部类名.方法名()


八、局部内部类


1.定义


  • 定义在方法中的类

2.格式


class 外部类名 {
  数据类型 变量名;
  修饰符 返回值类型 方法名(参数列表) {
    // …
    class 内部类 {
      // 成员变量
      // 成员方法
    }
  }
}


九、结语


下一篇文章中我们将介绍匿名内部类相关知识点,也是在编写程序时非常重要的一个知识

相关文章
|
8月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
227 1
|
8月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
344 0
|
9月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
10月前
|
存储 缓存 安全
Java基础 - 知识点
Java基础知识点涵盖语言特性、面向对象与基本数据类型、缓存池机制、String类特性、参数传递、类型转换、继承、抽象类与接口区别、重写与重载、Object通用方法及关键字使用等核心内容,是掌握Java编程的重要基石。
155 0
|
10月前
|
存储 Java 测试技术
Java基础 - 面向对象
面向对象编程是Java的核心,包含封装、继承、多态三大特性。封装隐藏实现细节,提升代码可维护性与安全性;继承实现类间IS-A关系,支持代码复用;多态通过继承、重写与向上转型,实现运行时方法动态绑定,提升系统扩展性与灵活性。
168 0
|
10月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
453 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
10月前
|
缓存 安全 前端开发
Java 核心知识点与实战应用解析
我梳理的这些内容涵盖了 Java 众多核心知识点。包括 final 关键字的作用(修饰类、方法、变量的特性);重载与重写的区别;反射机制的定义、优缺点及项目中的应用(如结合自定义注解处理数据、框架底层实现)。 还涉及 String、StringBuffer、StringBuilder 的差异;常见集合类及线程安全类,ArrayList 与 LinkedList 的区别;HashMap 的实现原理、put 流程、扩容机制,以及 ConcurrentHashMap 的底层实现。 线程相关知识中,创建线程的四种方式,Runnable 与 Callable 的区别,加锁方式(synchronize
188 0
|
10月前
|
存储 Java 程序员
Java 基础知识点全面梳理包含核心要点及难点解析 Java 基础知识点
本文档系统梳理了Java基础知识点,涵盖核心特性、语法基础、面向对象编程、数组字符串、集合框架、异常处理及应用实例,帮助初学者全面掌握Java入门知识,提升编程实践能力。附示例代码下载链接。
402 0
|
10月前
|
Java 编译器 数据安全/隐私保护
Java 大学期末考试真题与答案 含知识点总结 重难点归纳及题库汇总 Java 期末备考资料
本文汇总了Java大学期末考试相关资料,包含真题与答案、知识点总结、重难点归纳及题库,涵盖Java基础、面向对象编程、异常处理、IO流等内容,并提供完整代码示例与技术方案,助你高效复习备考。
970 3