一、抽象类:

访问修饰符 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学习笔记--二的更多相关文章

  1. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

  2. 数组排序、递归——(Java学习笔记二)

    升序:      选择排序:         选定一个元素,一次和后面的元素相比较,如果选定的元素大雨后面的比较元素,就交换位置         先出现最小值,最后出现最大值. public stat ...

  3. Java学习笔记二:数据类型II

    GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/Intpractice3.java 一  Java中的数据类型 Java ...

  4. Java学习笔记二十八:Java中的接口

    Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...

  5. Java学习笔记二十七:Java中的抽象类

    Java中的抽象类 一:Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就 ...

  6. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  7. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  8. Java学习笔记二十二:Java的方法重写

    Java的方法重写 一:什么是方法的重写: 如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法. 语法规则 返回值类型.方法名.参数类型及个数都要与父类继承的 ...

  9. Java学习笔记二十一:Java面向对象的三大特性之继承

    Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...

  10. Java学习笔记二十:Java中的内部类

    Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...

随机推荐

  1. open files

    /* * * Copyright (c) International Business Machines Corp., 2001 * * This program is free software; ...

  2. ie8如何支持html5

    两种方法 : 一:Coding JavaScript <!--[if lt IE9]> <script>    (function() {     if (!      /*@ ...

  3. C语言嵌入式系统编程修炼之三:内存操作

    数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力.在嵌入式系统的实际调试中,多借助C语言指针所具 ...

  4. SCP和SFTP(都使用SSH。但SCP上传不能中断,而SFTP可以续传,这是最大区别)

    不管SCP还是SFTP,都是SSH的功能之一.都是使用SSH协议来传输文件的. 不用说文件内容,就是登录时的用户信息都是经过SSH加密后才传输的,所以说SCP和SFTP实现了安全的文件传输. SCP和 ...

  5. servlet单例多线程

    Servlet如何处理多个请求访问? Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在 ...

  6. BZOJ3687: 简单题

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3687 小呆开始研究集合论了,他提出了关于一个数集四个问题: 1.子集的异或和的算术和. 2.子 ...

  7. 利用python分析nginx日志

    最近在学习python,写了个脚本分析nginx日志,练练手.写得比较粗糙,但基本功能可以实现. 脚本功能:查找出当天访问次数前十位的IP,并获取该IP来源,并将分析结果发送邮件到指定邮箱. 实现前两 ...

  8. Linux学习笔记24——进程管道

    一 管道的作用 通常把一个进程的输出通过管道连接到另一个进程的输入. 二 popen和pclose函数 #include <stdio.h> FILE *popen(const char ...

  9. 折腾iPhone的生活——设置“查找我的iPhone”,让iPhone更防盗

    对于iPhone,防盗一直是一个非常那啥的话题,很多买过iPhone的人都被偷过,但疼,然而苹果也看到了这个问题,所以在iOS7,我们终于看到了一个比较靠谱的防盗软件:查找我的iPhone 之前小偷解 ...

  10. [cocos2d-x3.0]Android+NDK+Eclipse环境搭建及编译步骤~

    1: 必要准备 1): jdk&jre 2): adt-bundle 3): android ndk r9 4): python2.7 5): cocos2d-x 3.0 alpha0 2: ...