通往黑马 —— Java学习笔记(2)

来源:互联网 发布:鬼故事粤语软件 编辑:程序博客网 时间:2024/06/08 07:12

1.Object类

所有类的超类。

equals()方法——检测两个对象是否相同

toString()方法——返回对象的字符串表示(宜复写)

getClass()方法——得到该对象所属类的名称

2.内部类

1)方便访问外部类的成员变量,包括私有成员变量。

2)内部类函数访问外部类成员变量——外部类名.this.变量名;

3)内部类可以被private修饰,则不能被其他外部类访问。

4)非私有的内部类,可以被其他外部类访问 eg. Outer.Inner a = new Outer().Inner()



静态内部类——static修饰

访问静态内部类非静态成员new Outer.Inner().function()

访问静态内部类静态成员 Outer.Inner.function()

非静态内部类不能有静态成员。


局部内部类(在方法里的内部类):

1)不可以被成员修饰符修饰

2)可以访问外部类成员,但不能访问所在局部的变量,除非该变量被final修饰。


匿名内部类——其实就是为了简写,直接省去类定义,生成并使用一个没有名称的对象。

1)匿名的内部类必须有继承或者是实现。

2)格式:new 父类(接口名)(){定义子类内容}

3)创建的匿名对象可以只用一次,也可以导入一个对象变量多次使用,但多次使用涉及到多态,只能使用父类或接口中定义的内容。


3.异常(Exception)

1)定义:程序运行时出现的不正常情况,在可以处理的范围内。(不可处理则是Error)

Throwable : Error;Exception.

异常的分类:Runtime异常——程序错误导致的异常(不用声明,也无需处理,想抛出就抛出即可,好东西啊!

                        其他异常——程序无问题,其他原因导致的异常,


2)异常的声明——throws关键字

如果程序本身没有问题,那数据本身就不会发生问题,只有数据变化过程中才会产生问题,也就是说——非Runtime异常只会发生在方法中(构造器和一般方法)。

当一个方法可能产生异常时,需要将这些异常声明在方法定义中。


自定义异常:

自定义一个继承Exception的类,利用代码实现在希望跳出异常的地方,运用throw关键字手动抛出自定义异常的对象。

格式:

class AaException extends Exception{}class Test{    ......    void function() throws AaException    {        ......        if(判断语句)              throw AaException        ......    }}
throws在函数上,抛出异常类,多个异常类用逗号隔开。

throw在函数内,抛出异常对象。


3)声明了异常后,有两种解决办法:

(1)、可在调用时直接进行手动处理,也就是try-catch流程。

(2)、也可以继续抛出异常,也就是在调用这个方法的上一级方法继续声明抛出。(这种向上抛出如果不断进行,最后会到达main函数,main函数继续抛出就抛给了虚拟机,让虚拟机自动处理)

    异常的手动处理:

格式:

try{    需要被检测的代码,发现异常则进入catch;}catch(异常类 变量){    处理异常的代码(提供各种异常信息);}finally {    一定执行的语句,通常用于关闭资源;(如果catch里执行了System.exit(0),则finally不被执行。)}

   catch块和finally块至少存在其一;

   catch块可以有多块;

   多个catch块的时候,父类的catch放在下面。


4)覆盖时的异常特点

     子类覆盖父类时,所覆盖的方法如果有异常,则子类的异常最好为父类的异常的子集和子异常。

     除非子类方法直接进行处理,不进行抛出。


0 0
原创粉丝点击