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

一、前言

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

二、内部类定义

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

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

三、内部类简单应用

需求:写一个JavaBean类描述汽车
属性:汽车品牌、颜色,发动机品牌、使用年限

这时候我们定义成员属性的时候,除了carNamecarColour,还有engineNameengineAge如果我们写一个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.内存图

在这里插入图片描述

七、静态内部类

1.特点

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

2.注意点

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

3.使用格式

外部类.内部类

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

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

5.调用方法的格式

  • 调用非静态方法的格式:先创建对象,用对象调用

  • 调用静态方法的格式:外部类名.内部类名.方法名()

八、局部内部类

1.定义

  • 定义在方法中的类

2.格式

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

九、结语

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值