内部类

项目地址

1.什么叫内部类:

内部类就是类里面的类就叫内部类

2.作用:

弥补java单继承的缺陷。虽然有接口,但是,不是所有别人的类都是接口,它很大概率是一个类,这样就实现就尴尬啦。然后就有了内部类,在内部类里面可以继承类,也可以实现接口,而且外部类已经继承了,内部类也可以继承,就是外部类,继不继承都没关系。
没有内部类的时候:
在这里插入图片描述
有了内部类之后就可以解决啦:
在这里插入图片描述

1.多少种内部类(4种)

1.成员内部类

成员内部类:跟成员方法,成员变量,想到一起,其实就是更他们是同一个位置
在这里插入图片描述
它可以调用外部类(这里就是MyMemberInnerClass)的全部方法

public class Father1 {
    public void father1Speak(){
        System.out.println("father 1");
    }
}
public class Father2 {
    public void father2Speak(){
        System.out.println("father 2");
    }
}

怎么调用成员内部类呢?
先new外部类,再通过实例的外部类获取内部类

实例外部类.new 内部类

执行结果:
在这里插入图片描述

2.静态内部类

静态内部类其实就是在成员内部类前面加了个static。
它只能调用外部类的静态方法,静态成员变量。
在这里插入图片描述
使用方法:

MyStaticInnerClass.StaticInnerClass staticInnerClass = new MyStaticInnerClass.StaticInnerClass();

执行

/**
         * 2.静态内部类:只能访问外部类的静态方法,
         * 可以直接通过外部类调用
         */
        System.out.println("------------静态内部类------------");
        MyStaticInnerClass.StaticInnerClass staticInnerClass = new MyStaticInnerClass.StaticInnerClass();
        staticInnerClass.hello();//调用静态方法
        staticInnerClass.father2Speak();//调用内部类实现的父类的方法

运行结果:
在这里插入图片描述

3.局部内部类(方法内部类):

为什么叫局部内部类呢?因为这个类在外部类的方法里面new的,且执行了里面的方法,它只能这样子执行,所以叫局部内部类。为什么叫方法内部类呢?因为这个类啊,在方法里面的,所以叫方法内部类。
在这里插入图片描述
局部内部类(方法内部类)的执行方法:
1.
在这里插入图片描述

在这里插入图片描述

4.匿名内部类(它跟局部内部类有点像,感觉不像内部类,因为它不能继承父类)。

它跟局部内部类也都是在方法里面的,也都是执行了方法后,就执行。它在方法里面直接new 个接口,实现接口的方法。
特点:它可以调用外部类的全部方法,成员变量,调用方法里面的变量的时候,要在这个变量的前面加一个final修饰。
在这里插入图片描述
执行方法也是直接调用方法即可:
在这里插入图片描述
执行结果:
在这里插入图片描述

3.总结反思:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值