一、抽象类:
访问修饰符 abstract class 类名{
}
抽象类和普通类的区别:
1、 抽象类不能被实例化
2、 抽象类一般含有抽象方法
抽象方法:在抽象类中只有方法签名(方法声明),没有方法实现,具体实现在继承了该抽象类的子类中实现
3、 抽象类可以没有抽象方法,但是一旦某个类有了一个抽象方法,那么该类一定是一个抽象类
4、 抽象类的特殊形式:没有抽象方法的类和所有方法都是抽象方法的类
5、 子类一旦继承抽象类,一定要实现该抽象类的抽象方法
抽象类的特殊形式:
1、 抽象类中所有的方法都是普通方法:
用于:父类本身不适合直接创建对象的情况
2、 抽象类中所有的方法都是抽象方法:(接口)
用于:定义规范或者标准
如果抽象类中都是抽象方法,这种特殊形式实际上就是接口
二、接口中所有的方法默认都是 public abstract XXXX 类型,所以抽象类中如果所有的方法都是抽象方法实际上该抽象类就是接口形式了。
接口:使用关键字 interface 定义接口,接口中只有方法声明,没有方法实现,因为接口中所有的方法默认的修饰都是public abstract,接口中的方法由实现该接口的类去实现。接口中所有的变量都是常量,在接口中声明变量默认修饰符是public static final Int num = 10;
接口不能直接new,应该创建接口实现类的实例
三、Final关键字
可以修饰类、属性、方法
修饰类表示该类不能被继承
修饰属性表示该属性一旦被赋值在运行过程中不能再被修改。
修饰方法:表示该方法不能被子类重写
Final、finally、finalize关键字的区别:
Static和final的区别:
四、内部类
把一个类定义在另一个类的内部就称为内部类
内部类可以访问外部类的所有成员,包括使用private关键字修饰的成员
如果要创建内部类的对象,必须先创建外部类的对象,因为内部类是外部类的一个成员
如果内部类中有和外部类重名的成员,在内部类中访问外部类的重名成员,使用外部类类名.this.成员名
五、异常
异常由两部分组成:
检查性异常,如果不处理,会导致编译不通过
非检查性异常,可以处理也可以不处理,又称为运行时异常
异常的处理:
1、 直接处理异常
使用关键字try-catch-finally结构
Try{
}
Catch(Exception e){
}
Finally{
}
如果try中出现异常执行顺序是:try-catch-finally
如果try中没有出现异常,执行顺序是:try-finally
Try{
//可能会出现异常的代码
}
Catch(XXException ex1){
}
Catch(XXException ex2){
}
Catch(……){
}
Finally{
}
如果捕捉多个异常,会先处理首先匹配到的异常,比如,try中首先出现了ArrayIndexOutOfBoundsException,会匹配该异常,如果没有匹配到对应的异常信息,那么这个时候就相当于没有处理异常。通常需要在所有catch的最后加一个catch(Exception ex),使用异常的父类来处理try中可能出现的异常,且Exception只能放在最后一个
注意:如果try、catch中出现return语句,这个时候会先执行try-catch-finally结构,最后执行return语句
笔试题:finally代码在try和catch有return语句时会不会执行:
会执行,在try或者catch的return之前执行
2、 抛出异常
Throws关键字声明异常,在定义方法是通过throws关键明确声明该方法需要抛出的异常
Public XX XX() throws XXException
Throw关键字创建异常对象 throw new XXException(){
}
Throws 和throw关键字的区别:
相同点:都用来处理异常
Throws是声明要抛出的异常类型
Throw是抛出一个创建的异常对象
Throws位于方法声明部分
Throw位于方法体中
Throws后面可以抛出多个异常类型
Throw只能是一个
检查性异常在父子类之间要符合以下条件:子类如果重写了父类中抛出异常的方法,子类抛出的异常不能比父类更多,或者不能比父类更宽泛的异常
以上说法不适用于RuntimeException异常类型
3、 自定义异常
Public class XXException extends Exception{
}
自定义异常都需要继承自Exception类
相关推荐
Java学习笔记-Scoket.pdf Java学习笔记-Scoket.pdf是关于Java编程语言中Socket编程的学习笔记,涵盖了Socket编程的基础知识、Java中Socket的使用、Socket通信的原理及应用等方面的内容。 Socket编程的基础知识 在...
Java学习笔记-Java后来者.exe
Java开发 - 尚硅谷JavaWeb学习笔记 - Part2: Java开发 - 尚硅谷JavaWeb学习笔记 - Part3: Java开发 - 尚硅谷JavaWeb学习笔记 - Part4: Java开发 - 尚硅谷JavaWeb学习笔记 - Part5: Java开发 - 尚硅谷JavaWeb...
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
JAVA学习笔记-第七章 面向对象中级(二)
Java学习笔记---从入门到精通之路.pdf Java是当前最流行的编程语言之一,本笔记旨在帮助初学者从基础到精通J2EE高手之路。本笔记涵盖了Java基础知识、J2EE框架、Web开发、数据库操作、图形游戏开发等方面的知识点,...
精心整理好的-Java学习笔记-供你使用
定义属性:实例变量 格式:[ 修饰符 ] 类型 变量名 [ = ?... java中所有参数都是值传递。 当没有值返回时,返回类型必须被定义为void。 返回类型必须与方法名相邻,其他修饰符可以调换位置。
Java学习笔记是专门为Java初学者设计的一套详尽的学习资源,旨在帮助新手快速掌握这门广泛使用的编程语言。这份笔记涵盖了从基础概念到高级特性的全面内容,是学习和复习Java知识的理想工具。 1. **Java简介** ...
培训机构Java教学笔记-学习资料.zip培训机构Java教学笔记-学习资料.zip培训机构Java教学笔记-学习资料.zip培训机构Java教学笔记-学习资料.zip培训机构Java教学笔记-学习资料.zip培训机构Java教学笔记-学习资料.zip
Java学习笔记->1.关键字、变量以及常量.md
这份"java学习笔记-初学者的福音"涵盖了从基础到进阶的多种概念,旨在帮助初学者系统地掌握Java编程。 首先,Java的基础部分包括语法结构。Java是一种面向对象的语言,这意味着它将数据和操作数据的方法封装在类中...