Java入门-内部类

内部类
内部类的概念与分类
一个事物的内部包含另一个事物,那么这就是一个类的内部包含另一个类
例如:奶茶里面有各种小料

分类:
1.成员内部类
2.局部内部类(包含匿名内部类)

内部类使用的例子:

链表中的节点就是个内部类,节点只为链表服务

成员内部类
成员内部类的定义格式
当一个类成为了另一个类的成员,那么这个类具备类的特点也具备成员的特点

格式:
修饰符 class 外部类名称 {
    修饰符 class 内部类名称 {

    }
}

注意:
内部类用外面的类,随便访问;外部的类用内部类,需要内部类对象
“内用外,随意访问;外用内,需要内部类对象”
成员内部类的使用
1.直接使用
类名称 对象名 = new 类名称()
【外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();】

2.间接使用
在外部类的方法当中使用内部类,在main()中调用外部类的方法
内部类的同名变量访问

如果出现同名,但是想访问的是外部类变量:

外部类名称.this.外部类成员变量名

成员内部类中的访问总结
1. 在内部类中访问成员:
     a. 可以直接调用外部类的成员变量
     b. 可以直接调用自己类的成员变量
     c. 如果调用内外部类的同名变量,优先调自己类的 -> 就近原则
     d. 如果强制访问外部类成员位置的同名变量 : 外部类类名.this.变量名
     e. 如果直接调用内外部同名方法,优先调用的是内部类的方法
     f. 如果强制访问外部类成员位置的同名方法 : 外部类类名.this.方法名(实参);
2. 在第三方类中访问内部类成员(必须要创建成员内部类的对象) :
     外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
局部内部类
局部内部类定义
如果一个类是定义在一个方法内部的,那么这就是一个局部内部类
只有当前所属的方法才能使用它,出了这个方法外面就不能用了

定义格式:
修饰符 class 外部类名称{
    修饰符 返回值类型 外部类方法名称(参数列表){
        class 局部内部类名称{

        }
	}
}

匿名内部类
定义:匿掉的内部类类名的内部类称为匿名内部类

使用场景:一个类的子类/一个抽象类的子类/一个接口的实现类只使用一次,就可以使用匿名内部类去简化代码

格式:
	//在创建一个不知道子类名称的 类/抽象类/接口的  子类对象
	new 父类/抽象类/接口 (){
		//子类/实现类的类主体
    };
不同类的权限修饰符规则
1.外部类:public/default
2.成员内部类:public/protected/default/private
3.局部内部类:什么都不能写

Tips:
private	   只能在同一个类中使用
默认不写 	可以在同一个类、同一个包不同类中使用
protected  可以在同一个类、同一个包不同类、不同包有继承关系的类中使用
public	   不仅可以在同一个类、同一个包不同类、不同包有继承关系的类中使用,还可以在不同包使用(简记:public可以在同一个模块下任意使用)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值