内部类和异常

本文详细介绍了Java中的内部类,包括成员内部类、局部内部类、匿名内部类和静态内部类,强调了内部类的特性,如访问权限、多重继承等。同时,文章还探讨了异常的概念、分类,包括运行时异常和检查异常,强调了异常处理的重要性,并给出了try-catch-finally的使用示例。最后,提到了错误与异常的区别以及如何自定义异常。
摘要由CSDN通过智能技术生成

内部类

内部类,即类内部的类。类中类。形式如下:

public class Outter{
    // 外部类 
class Inner{
    // 内部类 
} 
}

内部类的作用
内部类可以很好的实现隐藏

一般的非内部类,是不允许有 private 与protected权限的,但内部类可以

内部类拥有外围类的所有元素的访问权限

可以实现多重继承

匿名内部类优化接口
隐藏细节
平时我们对类的访问权限,都是通过类前面的访问修饰符来限制的,一般的非内部类,是不允许
有 private 与protected权限的,但内部类可以,所以我们能通过内部类来隐藏我们的信息。这看起来没
什么作用,但是当内部类实现某个接口的时候,在进行向上转型,对外部来说,就完全隐藏了接口的实
现了。
可以无条件地访问外围类的所有元素
内部类虽然和外部类写在同一个文件中, 但是编译完成后, 还是生成各自的class文件,内部类通
过this访问外部类的成员。
可以实现多重继承
这个特点非常重要,它是内部类存在的最大理由之一。正是由于他的存在使得Java的继承机制更加
完善。大家都知道Java只能继承一个类,它的多重继承在我们没有学习内部类之前是用接口来实现的。
但使用接口有时候有很多不方便的地方。比如我们实现一个接口就必须实现它里面的所有方法。而有了
内部类就不一样了。它可以使我们的类继承多个具体类或抽象类。
通过匿名内部类来优化简单的接口实现
有了匿名内部类,可以不需要定义一个新的类,而直接通过匿名内部类创建对象。对那些只是用一
次的类是非常方便的事情。

内部类的分类

成员内部类、局部内部类、匿名内部类和静态内部类。

内部类的共性

内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部 类的类名和$符号 。
内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的 成员变量,无论是否是private的 。
内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态 成员变量

1.成员内部类

成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。

内部类中的变量访问形式

内部类在没有同名成员变量和局部变量的情况下,内部类会直接访问外部类的成员变量;若有同名
情况时,直接访问会导致内部类中的局部变量将外部类的成员变量覆盖,访问内部类本身的成员变量可
用this.属性名,访问外部类的成员变量需要使用Out.this.属性名

创建内部类实例

Out.Inner inner
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值