Java内部类

本文深入探讨了Java内部类的三大好处:增强封装性,实现多继承以及解决同名方法冲突。成员内部类可以直接访问外部类的所有成员,而外部类需要通过实例化内部类来访问其成员。静态内部类可以被其他类直接通过类名创建,而私有内部类则需要外部类提供访问方法。局部内部类和匿名内部类主要用在方法内,提供一次性使用的便利,常用于实现接口或抽象方法。
摘要由CSDN通过智能技术生成

内部类

使用内部类的好处
1.封装性

  • 如果我们的内部类不想轻易被任何人访问,可以选择使用private修饰内部类

2.实现多继承:

  • java类都是单继承,而在内部类中可以有多个内部类多个继承供外部类使用

3.解决出现同名方法的问题

内部类的概念

  • 内部类可以直接访问外部类中的成员,包括私有成员(方法)
  • 外部类要访问内部类的成员,必须要建立内部类的对象(new)
  • 在成员位置的内部类是成员内部类
  • 在局部位置的内部类是局部内部类

成员内部类

位置:类里方法外

调用:

class outer {
    public class Inter {

    }
}

引用:

普通创建内部类引用
//注意:内部类会用到外部类属性,所以外部调用内部类时须先初始化外部类
---------------------------------------------------
//其他类引用       ---需要先实例化外部类
outer.Inter inter = new outer().new Inter();

//内部类的外部类   ----直接创建即可
Inter inter = new Inter();
当内部类被static修饰
----------------------------------------------------
//其他类引用    ---因内部类对象也属于类成员的一部分,当被static调用时可直new接类名.内部类名()
outer.Inter inter = new outer.Inter();

//内部类的外部类   ----直接创建即可
Inter inter = new Inter();
----------------------------------------------------
//总结:静态资源访问时不需要创建对象,可以通过类名直接访问
//     访问静态类中的静态资源可以通过”. . . ”链式加载的方式访问
当内部类被private修饰
----------------------------------------------------
//其他类引用    
无法在被其他类中直接获取资源,需要在外部类提供get方法获取(外部类可以new内部类)

//内部类的外部类   ----直接创建即可
Inter inter = new Inter();
----------------------------------------------------
// 总结:	成员内部类被Private修饰以后,无法被外界直接创建创建对象使用
//			所以可以创建外部类对象,通过外部类对象间接访问内部类的资源  

局部内部类

位置:类里,方法内
定义并调用:

//外部类
class Outer4 {
	//成员方法
    public void show() {
    	//内部类
        class Inner4 {
        }
		//只可以在局部类下(创建完成后)在创建对象
		new Inner4();
    }
}

调用

匿名内部类

一般和匿名对象在一起使用
匿名内部类属于局部内部类
而且是没有名字的局部内部类

  1. 通常只为了调用一次,才用匿名内部类
  2. 通常都是实现抽象方法、或者接口,且实现所有抽象类方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值