内部类

定义:如果一个类定义在另一个类的内部,这个类就是内部类

内部类包括:成员内部类,静态内部类,局部内部类,匿名内部类(重点)

------------------------

成员内部类:是类中的一个普通成员,相当于成员方法,成员变量

注意:成员内部类是直接可以访问主类(外部类)的方法,变量,其都是在一个类下的。

1.当在内部类的进行输出值时如果内部类里面有定义该值:如果直接进行输出则输出的值是方法中的值,如果需要输出内部内中的数据需要用到this. 来获取当前对象的内部类的数据

2.如果在主类中也有数据需要访问主类中的数据的时候可以用主类名.this.数据名称

此处可以清晰明白到当进行创建类时就是一个类了

此时public class Outer{ //一个类

public class Inner{

//此处为一个成员内部类

private String name;//普通的成员变量,也可以在内部类中对其进行创建方法如get,set方法

public static String schoolName;//在jdk16之后开始 在成员内部类可以定义静态成员(方法,变量)

}

public void test(){ //方法

}

}就是一个类

用成员内部类来进行创建对象:

外部类(/主)的名称.内部类的名称 对象名称=new 外部类(/主)类的名称().new 内部类的名称 ();即可

即:不能直接用成员内部类来进行创建对象,需要先创建上一级的对象在进行创建对象即可

-------------------------------------------

静态内部类:

用静态内部类创建对象时:外部类(/主)的名称.内部类的名称 对象名称=new 外部类(/主)类的名称().new 内部类的名称 ();即可和成员内部类相同

注意:静态内部类的对象可以直接进行访问外部的静态成员,但不能直接访问实例成员(但可以用外部类的对象的属性功能来进行调用)

------

用static进行修饰

------

此时public class Outer{ //一个类

public static class Inner{

}//静态内部类 ,也可以在静态内部类中对其进行创建方法如get,set方法

private String name;

}

}

------------------------------------------

局部内部类(无实际意义)

------------------------------------------

匿名内部类:重点

匿名内部了类:是一种特殊的局部内部类;所谓匿名:指程序员不需要为这个类声明名字

下句的类或接口是已经写过的;

格式:new 类或接口(参数值...){

类体(一般为方法的重写);

}//这时该既是子类/实现类,也是子类/实现类的对象,可以在编译后的文件进行查看

重要特点的使用:由于匿名内部类既做子类/实现类及其对象

所以可以直接在创建匿名内部类时 使用 类或接口名(有实现类了)来创建对象进行接受这时就可以创建方法将接口名放在参数中,可以用于接受所有对象来进行方法的统一使用

例 格式: 类或接口(的名称) 对象名称 = new 类或接口(参数值...){

类体(一般为方法的重写);

}/

------

匿名内部类的常见使用场景:

重要特点的使用:由于匿名内部类既做子类/实现类及其对象

所以可以直接在创建匿名内部类时 使用 类或接口名(有实现类了)来创建对象进行接受这时就可以创建方法将接口名放在参数中,可以用于接受所有对象来进行方法的统一使用 该流程叫回调 相当于中间赋值了一圈最终在方法中用原对象进行

例 格式: 类或接口(的名称) 对象名称 = new 类或接口(参数....){

类体(一般为方法的重写);

}/

正常方法流程 (参数为类或接口的名称 形参名称)

例子:

-------------------

匿名内部类的深入用法:以gui编程(桌面程序界面,一般不用java写,java太严格繁琐,效率不高)来进入了解

可以作为调用接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值