黑马程序员 Java学习笔记 (day12)

本文详细解析了Java内部类的概念、作用和分类,并通过示例展示了内部类如何实现多重继承、避免修改接口和调用同一类中的同名方法。同时介绍了内部类的四种类型:成员内部类、局部内部类、静态内部类和匿名内部类,以及它们的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

 

 

   今天我着重看了内部类,包括作用和分类。内部类这个概念对我来说一直都是模棱两可的,不甚明白,今天我在此总结一下。
    内部类的作用:
    1.内部类可以很好的实现隐藏,一般的非内部类,是不允许有private与protected权限的,但内部类可以
    2.内部类拥有所在外部类的所有元素的访问权限
    3.可是实现多重继承
public class Example1 {
   public String name()
   {
       return "张三";
   }

}

public class Example2 {
    public int age()
    {
        return 25;
    }
}

public class MainExample
{
   private class test1 extends Example1
    {
        public String name()
        {
          return super.name();
        }

    }
    private class test2 extends Example2
    {
       public int age()
       {
         return super.age();
       }
    }
   public String name()
    {
    return new test1().name();
   }
   public int age()
   {
       return new test2().age();
   }
   public static void main(String args[])
   {
       MainExample me=new MainExample();

       System.out.println("姓名:"+me.name());

       System.out.println("年龄:"+me.age());
   }
}

    这个例子是我第一次在网上看到,以前学继承时毕老师就明确说明了没有多继承,因为如果继承的两个类有同名方法时会出现错误。但是内部类的使用可以实现多重继承,也避免了单继承的局限性。

    4.可以避免修改接口而实现同一个类中两种同名方法的调用。
    内部类的分类
    1 成员内部类:作为外部类的一个成员存在,于外部类的属性,方法并列。内部类于外部类的实例变量可以共存。在内部类中访问实例变量用this.属性,在内部类访问外部类的实例变量用外部类名.this.属性。成员内部类可以访问外部类的私有成员或属性。如果在外部类的外部访问内部类,使用Outer.Inner.在外部类的外部,要new一个内部类对象,应该
Outer.Inner in = Outer.new.Inner();
    2 局部内部类:在方法中定义的内部类称为局部内部类,于局部变量相似,在局部内部类前不加public和 private,其范围为定义它的代码块。要想使用局部内部类时需要生成对象,对象调用方法,在方法中才能调用其局部内部类。
    3 静态内部类 静态内部类只能访问外部类的静态成员。静态内部类的对象可以直接生成:Outer.Inner in = new Outer.Inner();而不需要通过外部类的对象来生成。
    4 匿名内部类 匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。匿名内部类是唯一一种无构造方法的类,因为无构造方法,所以使用的范围非常有限。
    可以说我在第一遍学习时对内部类概念的理解非常的浅,仅仅是死记flame中的事件监听机制的内部类代码和张老师所讲的枚举中内部类代码,对内部类的分类和各种应用都不是很了解。现在这次复习的确帮我提高了很多。确实学习是量变引起质变的过程,在下部我还得更加用心的将以前不知道和忽略的知识点掌握。
    由于昨天晚上网络有问题,所以这篇博客与今天的一并发了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值