当前位置:   article > 正文

【10】面对对象6_异常格式及finally,包packge,import,jar包操作_unity error compressing tar

unity error compressing tar

4.11.7finally代码块

        

finally代码块:定义一定执行的代码,通常用于关闭资源。

 

练习一:finally代码块的应用

  1. /*
  2. 连接数据库;
  3. 数据操作;//thrownew SQLException();
  4. 关闭数据库;//该动作,无论数据操作是否成功,一定要关闭资源。
  5. */
  6. class NoException extends Exception
  7. {
  8. }
  9. public void method()throws NoException
  10. {
  11. try
  12. {
  13. 连接数据库;
  14. 数据操作;//throw new SQLException();
  15. }
  16. catch(SQLException e)
  17. {
  18. 会对数据库进行异常处理;
  19. throw new NoException();
  20. }
  21. finally
  22. {
  23. 关闭数据库;//该动作,无论数据操作是否成功,一定要关闭资源。
  24. }
  25. }


 

4.11.8异常的常见格式:

 

  1. //第一个格式:
  2. try
  3. {
  4. }
  5. catch ()
  6. {
  7. }
  8. //第二个格式:
  9. try
  10. {
  11. }
  12. catch ()
  13. {
  14. }
  15. finally
  16. {
  17. }
  18. //第三个格式:
  19. try
  20. {
  21. }
  22. finally
  23. {
  24. }
  25. //记住一点:catch是用于处理异常。如果没有catch就代表异常没有被处理过,如果该异常是检测时异常。那么必须声明。
  26. class Demo
  27. {
  28. public void method()
  29. {
  30. try
  31. {
  32. throw new Exception();
  33. }
  34. finally
  35. {
  36. //关资源。
  37. }
  38. }
  39. }


 

练习二:用异常处理出现的问题

  1. /*
  2. 有一个圆形和长方形。
  3. 都可以获取面积。对于面积如果出现非法的数值,视为是获取面积出现问题。
  4. 问题通过异常来表示。
  5. 现有对这个程序进行基本设计。
  6. */
  7. class NoValueException extendsRuntimeException
  8. {
  9. NoValueException(Stringmessage)
  10. {
  11. super(message);
  12. }
  13. }
  14. interface Shape
  15. {
  16. void getArea();
  17. }
  18. class Rec implements Shape
  19. {
  20. private int len,wid;
  21. Rec(intlen ,int wid)//throws NoValueException
  22. {
  23. if(len<=0|| wid<=0)
  24. throw new NoValueException("出现非法值");
  25. this.len= len;
  26. this.wid= wid;
  27. }
  28. public void getArea()
  29. {
  30. System.out.println(len*wid);
  31. }
  32. }
  33. class Circle implements Shape
  34. {
  35. private int radius;
  36. public static final double PI = 3.14;
  37. Circle(intradius)
  38. {
  39. if(radius<=0)
  40. thrownew NoValueException("非法");
  41. this.radius= radius;
  42. }
  43. public void getArea()
  44. {
  45. System.out.println(radius*radius*PI);
  46. }
  47. }
  48. class ExceptionTest1
  49. {
  50. public static void main(String[] args)
  51. {
  52. Rec r = new Rec(3,4);
  53. r.getArea();
  54. Circle c = new Circle(-8);
  55. System.out.println("over");
  56. }
  57. }


 

4.12包(package)

1.对类文件进行分类管理。

2.给类提供多层命名空间。

3.写在程序文件的第一行。

4.类名的全称的是  包名.类名。

5.包也是一种封装形式。

 

4.12.1  classpath

1.给JVM提供的一个环境变量。

2.指定类或者包所在的路径。

3.classpath变量值的最后有分号与无分号的区别。

 

总结:

         包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。

         不同包中的子类还可以直接访问父类中被protected权限修饰的成员。

        

4.12.2  import

         为了简化类名的书写,使用一个关键字,import.

import 导入的是包中的类。

建议,不要写通配符 * ,需要用到包中的哪个类,就导入哪个类。

 

练习三:import,包(package)练习

  1. package pack;
  2. /*
  3. c:\myclass
  4. c:\myclass\packb\DemoA.class
  5. c:\myclass\packb\haha\DemoZ.class
  6. import packb.*;
  7. import packb.haha.*;
  8. 建立定包名不要重复,可以使用url来完成定义,url是唯一的。
  9. www.itcast.cn
  10. package cn.itcast.demo
  11. package cn.itcast.test
  12. */
  13. import packb.haha.hehe.heihei.*;
  14. import packa.*;
  15. import packb.*;
  16. class PackageDemo
  17. {
  18. public static void main(String[] args)
  19. {
  20. DemoC c = new DemoC();
  21. // packa.DemoA d = new packa.DemoA();
  22. // d.show();
  23. // packb.DemoB d = new packb.DemoB();
  24. // d.method();
  25. }
  26. }
  27. /*
  28. PackageDemo.java:8: 找不到符号
  29. 符号:类 DemoA
  30. 位置:类 pack.PackageDemo
  31. DemoA d = new DemoA();
  32. ^
  33. PackageDemo.java:8: 找不到符号
  34. 符号:类 DemoA
  35. 位置:类 pack.PackageDemo
  36. DemoA d = new DemoA();
  37. ^
  38. 2 错误
  39. 错误原因:类名写错。
  40. 因为类名的全名是:包名.类名
  41. PackageDemo.java:8: 软件包 packa 不存在
  42. packa.DemoA d = newpacka.DemoA();
  43. ^
  44. PackageDemo.java:8: 软件包 packa 不存在
  45. packa.DemoA d = newpacka.DemoA();
  46. ^
  47. 2 错误
  48. 错误原因:packa包不在当前目录下
  49. 需要设置classpath,告诉jvm去哪里找指定的packa包。
  50. PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进
  51. 行访问
  52. packa.DemoA d = newpacka.DemoA();
  53. ^
  54. PackageDemo.java:8: packa.DemoA 在 packa 中不是公共的;无法从外部软件包中对其进
  55. 行访问
  56. packa.DemoA d = newpacka.DemoA();
  57. ^
  58. 2 错误
  59. 错误原因:有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限。
  60. 所以被访问的类要被public修饰。
  61. PackageDemo.java:9: show() 在 packa.DemoA中不是公共的;无法从外部软件包中对其进
  62. 行访问
  63. d.show();
  64. ^
  65. 1 错误
  66. 错误原因:类公有后,被访问的成员也要公有才可以被访问。
  67. java.lang : java的核心包 jdk1.2版本以后,该包中的类自动导入。
  68. java.awt: 用于制作图形界面。
  69. java.io:input output 用于操作设备上的数据。
  70. java.util : 这里定义是java的工具类。集合,日期。
  71. java.net:用于网络通讯的。
  72. java.applet: application let server let servlet java server page jsp
  73. class haha implements Servlet
  74. class hehe extends HttpServlet
  75. */


 

4.12.3  Jar包

Java的压缩包

方便项目的携带。

方便于使用,只要在classpath设置jar路径即可。

数据库驱动,SSH框架等都是以jar包体现的。

 

 

4.12.4  Jar包的操作

通过jar.exe工具对jar的操作。

创建jar包

jar  -cvf  mypack.jar packa packb

查看jar包

jar  -tvf  mypack.jar  [>定向文件]

解压缩

jar  -xvf  mypack.jar

自定义jar包的清单文件

jar –cvfm  mypack.jar  mf.txt packa packb

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/556434
推荐阅读
相关标签
  

闽ICP备14008679号