`

黑马程序员----面向对象(下)

 
阅读更多
面向对象(下)

---------------------- android培训java培训、期待与您交流! ----------------------


final
表示“最终的”意思
1. fianl标记的类不能被继承
2. final标记的方法不能别子类重写
3. fianl标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
4. fianl标记的成员变量必须在声明的同时赋值,如果在声明是没有赋值,那么只能在构造方法中赋值,然后才能使用。
5. final标记的局部变量可以只声明不赋值,然后在进行一次性的赋值。

接口
1.什么是接口
接口是一种特殊的抽象类, 其中所有方法都是抽象的
和抽象类相比优点在于: 一个类只能继承一个抽象类, 一个类可以实现多个接口
2.接口和抽象类的区别
抽象类是abstract class, 接口是interface
抽象类中的方法没有默认修饰符, 接口中的方法默认被public abstract修饰
抽象类中的属性没有默认修饰符, 接口中的属性某人被public static final修饰
抽象类使用extends继承, 接口使用implements实现
3.什么时候用接口, 什么时候用抽象类
如果我们在定义一个类, 需要写抽象方法时, 就要考虑使用接口还是抽象类
如果这个类中所有方法都是抽象的, 那么就使用接口, 因为别人实现接口时不占用继承位置
如果这个类中还需要有其他不抽象的方法, 那么就只能用抽象类了

异常
1.什么是异常
程序运行过程中出现的错误
2.异常的分类
Java中所有可被抛出的对象都是Throwable的子类
Throwable有两个子类, Error, Exception
Error: 虚拟机运行时的严重错误, 程序中无法对其进行处理
* Exception: 程序运行时出现的错误
运行时异常: RuntimeException的子类, 如果代码中有可能出现运行时异常, 在程序编译的时候可以不声明或捕捉
编译时异常: Exception中除了RuntimeException的子类的部分, 必须声明或捕捉
3.异常的处理
* throws声明抛出:
如果调用一段有可能出现异常的代码, 那么可以在当前方法签名上使用throws关键字声明抛出该异常
运行代码时如果出现了这个异常, 该方法也会将此异常继续向上抛出
如果抛出了异常, 方法中未执行的代码不会再执行
* try...catch捕获:
如果调用一段有可能出现异常的代码, 也可以将有可能出异常的代码放入try代码块中, 使用catch代码块做异常处理
运行代码时如果出现了异常, 就会执行catch中的代码
如果捕获住异常之后, 下面的代码还会继续
4.finally的使用
可以配合try使用, 只要执行了try中的代码, 无论如何都会执行finally.
通常我们会将一些必须执行的代码放在finally代码块中. 例如: 使用IO流时释放资源
5.异常细节:
子类重写父类方法的时候, 不能抛出更多的异常
多个异常的处理:
throws后面可以用逗号分隔, 抛出多个异常
try后面可以跟多个catch, 捕获多个异常
6.自定义异常
定义一个类, 继承Exception, 在程序中就可以创建对象并抛出了. 这类异常是编译时异常, 编译之前必须进行处理
定义一个类, 继承RuntimeException, 在程序中也可以创建对象抛出, 这类异常是运行时异常, 编译之前可以不处理

package包
1.定义带包的类
在源代码第一个语句使用package关键字定义一个包名.
包名全部小写
2.编译和运行
javac -d 目录 源文件
java 包名.类名
3.使用带包的类
如果直接以类名方式使用, 那么是在当前包中找
如果使用不同包中的类, 那么需要使用"包名.类名"的形式
4.导入包
每次使用一个带包的类都加包名很麻烦, 我们可以使用import关键字导入其他包中的类
星号:
用"包名.*"方式导入, 可以导入一个包中的所有类
但是如果当前包中有同名的类, 会直接使用当前包中的类, 如果当前包中没有同名的类才会使用导入的包中的类
具体类名:
用"包名.类名"方式导入, 指定一个类
这种方式导入, 无论当前包中是否有同名的类, 都不使用, 直接找导入的包中的类
5.有包的类和无包的类之间访问
无包的类可以访问有包的类
有包的类不能访问无包的类, 因为不导入包是找当前包, 而无包的类由于没有包名也无法导入
* 6.总结
以后写类都要带包, 用public修饰, 类名和文件名一致
编译的时候加上-d, 运行时加上包名
导包的时候使用包名.类名形式

jar文件
1.什么是jar
jar是一种java文件的压缩格式, 可以将多个文件压缩成一个jar包
* 2.怎么打jar包
使用jar.exe打包. 命令如下:
jar cvf jar包名 文件名(文件夹名)
* 3.运行jar包
用解压缩工具打开jar包, 找到META-INF文件夹中的MANIFEST.MF文件
在其中加入一行: Main-Class: 包名.类名
java -jar jar包名
* 4.使用jar包中的类
需要把jar包的绝对路径配置到classpath中

---------------------- android培训java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics