内部类

内部类是指在类的内部定义的类,可以在它的内部定义属性、行为、构造、初始化块,甚至可以在它的内部再定义内部类。
内部类的分为:成员内部类、静态内部类、局部内部类、匿名内部类。

成员内部类

成员内部类是直接定义在外部类当中,与外部类属性和外部类行为都处于平行地位。
特点:1、可以有访问修饰符;
2、在所属外部类的任意一个非静态方法当中都可以直接使用:产生对象,调用方法;
3、内部类的方法可以操作外部类的属性和方法,这时this代表的是内部类的当前对象,而内部类所属外部类的当前对象用外部类类名.this表示;
4、内部类也可以在访问修饰符对应的外部范围使用,语法:外部类类名.内部类类名 对象名 = 外部类对象.new 内部类类名( )。

静态内部类

静态内部类展示出来的效果跟加了static的普通属性一样。静态内部类的class文件名是外部类类名$内部类类名。
特点:1、在所属外部类的任意一个方法当中都可以直接使用:产生对象,调用方法;
2、在静态内部类的方法中只能调用到外部类的静态属性和静态方法,且不能用外部类类名.this,只能用外部类类名.的方式,原因是该内部类与外部类对象无关;
3、同样静态内部类也可以在访问修饰符对应的外部范围使用,语法:外部类类名.内部类类名 对象名 = new 外部类类名.内部类类名( )。

局部内部类

局部内部类是定义在外部类的某个方法当中的。
特点:1、不能用访问修饰符,不能加static,class文件名:外部类类名$序号内部类的名字;
2、只能在定义它的方法中使用:产生对象,调用属性和行为;
3、局部内部类的属性行为,对于它所属的外部类方法没有访问限制,就算访问修饰符为private(私有)也可以被直接操作访问;
4、局部内部类可以访问操作到外部类的属性;
5、对于它所属外部类的方法中的局部变量,只能访问不能修改(就像把这些来自于外部类方法的局部变量成了常量一样); 6、绝对不可能在外部类之外使用,甚至不能在外部类的其他方法当中使用。

匿名内部类

匿名内部类是在产生一个对象的同时,用花括号{ }马上去定义这个类的属性和行为等内容。
特点:1、没有类名,因此这个类只能使用一次;
2、class文件名:外部类类名$序号;
3、匿名内部类和局部内部类一样可以访问操作到外部类的属性,对于它所属外部类的方法中的局部变量,也只能访问不能修改。

内部类的特点

1、独立的一个class文件;
2、同样需要编译;
3、同样可以产生对象。
(补充:Java文件与类的关系:数量没关系,名字只与public(公共类 )有关;class文件与类的关系:数量、名字都有关系)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值