黑马程序员--java基础整理十(面向对象6)

发布时间:2016-12-10 3:31:57 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"黑马程序员--java基础整理十(面向对象6)",主要涉及到黑马程序员--java基础整理十(面向对象6)方面的内容,对于黑马程序员--java基础整理十(面向对象6)感兴趣的同学可以参考一下。

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ---------------------- 关于java基础 异常相关知识点整理: 异常是什么?是对问题的描述,将问题进行对象的封装。 异常体系: Throwable |--Error |--Exception |--RuntimeException 异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。 也就是说可以被throw和throws关键字所操作。只有异常体系具备这个特点。 throw和throws的用法: throw定义在函数内,用于抛出异常对象。 throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。 当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。 注意:RuntimeException除外,也就是说,函数内如果抛出的为RuntimeException异常,函数上可以不用声明, 如果函数声明了异常,调用者需要进行处理,处理方法可以throws可以try。 异常有两种: 编译时被检测的异常 该异常在编译时,如果没有处理(没有抛也没有try),编译失败 该异常被标识,代表着可以被处理。 运行时异常(编译时不被检测) 在编译时,不需要处理,编译器不检查。 该异常的发生,建议不处理,让程序停止,需要对代码进行修正。 异常处理语句: try { 需要被检测的代码; } catch () { 处理异常的代码; } finally { 一定会执行代码; } 有三个格式: 1, try { } catch () { } 2, try { } finally { } 3, try { } catch () { } finally { } 注意: 1,finally中定义的通常是 关闭资源代码,因为资源必须释放。 2,finally只有一种情况不会执行。当执行到System.exit(0);finally不会执行。 自定义异常: 定义类继承Exception或者RuntimeException 1,为了让自定义类具备可抛性。 2,让该类具备操作异常的共性方法。 当要定义自定义异常的信息时,可以使用父类已经定义好的功能。 将异常信息传递给父类的构造函数。 class MyException extends Exception { MyException(String message) { super(message) } } 自定义异常:按照java的面向对象思想,将过程中出现的特有问题进行封装。 异常的好处: 1,将问题进行封装。 2,将正常的流程代码和问题处理代码相分离,方便于阅读。 异常的处理原则: 1,处理方式有两种:try或者throws。 2,调用到抛出异常的功能时,抛出几个处理几个。一个try对应多个catch。 3,多个catch,父类的catch放到最下面。 4,catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace,输出语句。 也不要不写。当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。 try { throw new AException(); } catch (AException e) { throw e; } 如果该异常处理不了,但并不属于该功能的出现的异常。可以将异常转换后,在抛出和该功能相关的的异常。 如果异常可以处理,但需要让异常产生后和本功能相关的问题提供出去,让调用者知道,并处理。也可以捕获异常后,转换新的异常。 try { throw new AException(); } catch (AException e) { //对AException处理。 throw new BException(); } 异常的注意事项: 在子父类覆盖时: 1,子类抛出的异常必须是父类的异常的子类或子集。 2,如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。 包:放在程序第一行 package pack;包名字母都小写。 >javac -d . PackageDemo.java //-d 表示指定包所存放的位置或目录(-d空格.空格)表示当前目录下 >java pack.PackageDemo运行口令。 >javac -d .c:\maclass PackageDemo.java//将文件存放在指定目录下 >set classpath=c:\myclass指定路径. 不同包中的类如何访问: 类名全称:包名.类名 package packa; public class DemoA extends DemoB//加public提升权限以便访问 { public void show()//类公有后,被访问的成员也要公有才可以被访问。 { System.out.println("demoa show run") } } package pack; class PackageDemo { public static void main(String[]args) { packa.DemoA d=new packa.DemoA; d.show(); } } package packb; public class DemoB  { protected void method()//public修饰不论是不是子类都能访问,加protected后只能子类访问 { System.out.println("demoB method run"); } } 上述要先编译DemoA。编译PackageDemo要设置set classpath路径 总结:包与包之间进行访问,被访问的包中的类以及类中的成员,要被public修饰。 不同包中的子类还可以直接访问父类中被protected权限修饰的成员。 包与包之间可以使用的权限只有两种,public protected。 权限下能否互访 publicprotecteddefaultprivate 同一个类中 ok ok ok ok 同一个包中 ok ok ok 子类 ok ok 不同包中 ok 类名公有后java文件名必须和类名保持一致。一个.java文件中不能出现两个以上公有类和接口。 package packb.haha.hehe;多层次存储逐级存放。 为了简化类名的书写,使用一个关键字import导入 import packb.haha.heihei.hehe.DemoC;导入目录下的类 再操作就不用加上包名了。 import packb.haha.heihei.hehe.*;表示导入目录下的所以类文件。且导入的只是最后文件夹下的 建议不要写通配符*,需要用到包中的那个类就导入哪个类,当在不同包中导入同名类时必须加包名修饰。 建议定义包名不要重复,可以使用url来完成定义,url是唯一的。 jar包:选项包括:     -c  创建新的归档文件     -t  列出归档目录     -x  从档案中提取指定的 (或所有) 文件     -u  更新现有的归档文件     -v  在标准输出中生成详细输出     -f  指定归档文件名     -m  包含指定清单文件中的清单信息     -e  为捆绑到可执行 jar 文件的独立应用程序         指定应用程序入口点     -0  仅存储; 不使用情况任何 ZIP 压缩     -M  不创建条目的清单文件     -i  为指定的 jar 文件生成索引信息     -C  更改为指定的目录并包含其中的文件 如果有任何目录文件, 则对其进行递归处理。 清单文件名, 归档文件名和入口点名称的指定顺序 与 'm', 'f' 和 'e' 标记的指定顺序相同。 示例 1: 将两个类文件归档到一个名为 classes.jar 的归档文件中:        jar cvf classes.jar Foo.class Bar.class 示例 2: 使用现有的清单文件 'mymanifest' 并            将 foo/ 目录中的所有文件归档到 'classes.jar' 中:        jar cvfm classes.jar mymanifest -C foo/。 >jar -cf haha.jar packa pack//将pack和pack压缩到haha中 >jar -tf haha.jar//查看jar包里的文件。 >ser classpath = c:\myclass\haha.jar//设置jar包访问路径 >jar -tf a.jar>c:\1.txt将数据显示在指定的文件中。 ---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ---------------------- 详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>

上一篇:QPixmap显示图片 并 修改图片
下一篇:黑马程序员--java基础整理十一(多线程1)

相关文章

相关评论