/*
异常
异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误,如程序要打开一个不存在的文件
网络连接中断,操作数越界,装载一个不存在的类等 try, catch语句
throws关键字
自定义异常与Throw关键字
如何对多个异常进行处理
我们可以在一个方法中使用throw,try...catch语句来实现程序的跳转
一个方法被覆盖时,覆盖它的方法必须扔出相同的异常或异常的子类
如果父类扔出了多个异常,那么重写(覆盖)方法必须扔出那些异常的一个子集,
也就是说不能扔出新的异常 包
1 package语句及应用
2 package语句作为java源文件的第一条语句,如果没有package语句,则为缺少无名包
3 import语句及应用
4 jdk常用的包
java.lang...包含一些java语言的核心类,如String, Math, Integer, System.和Thread,提供常用功能
java.awt..包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
java.applet...包含applet运行所需的一些类
java.net...包含执行与网络相关的操作类
java.io...包含能提供多种输入/输入功能的类
java.util...包含一些实用工具类,如定义系统特性,使用与日期日历相关的函数 javac -d . Lesson44.java 如果存在包名的话,那么就按目录生成编译文件 找不到类的三个排错方法
1: 类名写错了
2: 包名错误,是否import这个类所在的包名
3: 查看classpath是否设置类型 访问控制 private default protected public
同一类----------- 可 可 可 可
同一包中的类------ 可 可 可
子类------------- 可 可
其他包中的类----- 可 类本身也有访问控制,即在定义类的class关键字前加上访问
控制符,但类本身只有两种访问控制,
即public和 默认,父类不能是private 和protected
否则子类无法继承,public修饰的类能被所有的类访问
默认修饰(即class关键字前没有访问控制符)的类
只能被同一个懈中的所有类访问 java的命名习惯 下面是java中的一些命名习惯,假设xxx, yyy, zzz分别是一个英文单词的拼写 1 包名中的字母一律小写,如:xxxyyyzzz
2 类名,接口名应当使用名词,每个单词的首字母大写,如XxxYyyZzz
3 方法名,第一个单词小写,后面的每个单词的首字母大写,如:xxxYyyZzz
4 变量名,第一个单词小写,后面每个单词的首字母大写,如xxxYyyZzz
5 常量名中的第个字母一律大写,如XXXYYYZZZ 使用jar文件
jar -cvf
jar -tvf
jar -xvf
jar -tvf > a.txt 用rar查看jar文件中的内容
注意压缩后的jar文件中的目录结构
快速查看jar包中是否有我们想找的类 jar查看帮助 jar -cf lesson4.jar org 将org目录生成一个lesson4.jar的包文件
jar -cvf lesson4.jar org jar -tf lesson4.jar 查看包内容 jar -xvf lesson4.jar 解压包 jar -xvf rt.jar > 1.txt 重写向 */
package org.it315; //import java.awt.*;
//import java.awt.event.*; //import java.sql.*;
//import java.util.*; /*class SubTest extends Test
{
//在子类中只能扔出父类的异常,只能比父类的少,不能比父类的异常多
public int devide(int x, int y) throws NullPointerException
{ }
};*/ //定义自己的异常类
import org.it315.*;
import org.it315.example.*; class TestException
{
public static void main(String[] args) //throws Exception
{
try
{
new org.it315.example.Test().devide(3,1);
//new org.it315.example.Test().fun1();
//现在不能访问了,因为TestSub是Test类的子类,但TextException类的子类,所以不能访问 //如果为如果fun1()为public将可以被其它包中的类访问 //new Test().fun1();
//int i=1+1; }
catch(ArithmeticException e)
{
System.out.println("ArithmeticException");
e.printStackTrace();
}
catch(org.it315.DevideByMinusException e)
{
System.out.println("DevideByMinusException");
e.printStackTrace();
return;
//System.exit(0); //程序到此结束了,
//finally将不被执行了
}
catch(Exception e)
{
System.out.println(e.getMessage());
} finally
{
System.out.println("不管是否有异常,finally的代码都要执行");
}
System.out.println("program is running here!");
}
} class TestSub extends Test
{
public void fun3()
{
fun1();
}
};

  

package org.it315;

public class DevideByMinusException extends Exception
{ public DevideByMinusException(String msg)
{
super(msg);
}
};

  

package org.it315.example;
//import org.it315.*;
import org.it315.DevideByMinusException; public class Test
{
//throws Exception加上该throws Exception 在调用该函数时,那么必须实现try...catch
//多个异常类的处理
//public int devide(int x, int y) throws ArithmeticException, org.it315.DevideByMinusException
public int devide(int x, int y) throws ArithmeticException, DevideByMinusException
{
if(y<0)
{
//throw new org.it315.DevideByMinusException("devisor is "+y);
throw new DevideByMinusException("devisor is "+y);
}
int result = x/y;
return result;
} //throw try...catch还可以实现话句的跳转
/*void fun()
{
try{
if(x==0)
{
throw new XxxException("xxx"); }else{
throw new YyyException("yyy");
}
}catch(XxxException e)
{
//......
}
catch(YyyException e)
{
//.....
}
}*/ //private void fun1()
protected void fun1() //没有访问修饰的叫做包类型的访问修饰符. 在其它的包中是不可以访问
{ } private void fun2()
{
fun1();
}
} class Test1
{
public static void main(String[] args)
{
new Test().fun1();
}
};

  

java第四节 异常/访问控制/jar包的更多相关文章

  1. java jvm学习笔记七(jar包的代码认证和签名)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前言: 如果你循序渐进的看到这里,那么说明你的毅力提高了,jvm的很多东西都是比较抽像的,如果不找相对应的代码来辅助理解 ...

  2. java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException

    缺少相应jar包都会有异常,根据异常找jar包导入......     这里我说下lang包,因为这个包我找了好半天:   我用的是: commons-lang3-3.1.jar  出现异常: jav ...

  3. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

  4. 用命令行编译java并生成可执行的jar包

    用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...

  5. 转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...

  6. 不要轻易在java ext 目录放任何三方jar包

    今天在编写一个简单spi 应用demo的时候,在编译时总有一个其他的错误,如下: ERROR Failed to execute goal org.apache.maven.plugins:maven ...

  7. Java SE 9 多版本兼容 JAR 包示例

    Java SE 9 多版本兼容 JAR 包示例 作者:Grey 原文地址:Java SE 9 多版本兼容 JAR 包示例 说明 Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在 ...

  8. java中使用URLClassLoader访问外部jar包的java类

    很多时候 我们写的Java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类. 下边是一种简单的实现方法: Class ...

  9. 曹工说Spring Boot源码(25)-- Spring注解扫描的瑞士军刀,ASM + Java Instrumentation,顺便提提Jar包破解

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

随机推荐

  1. 关于Base64编码的理解

    版权声明:本文为[viclee]原创,如需转载请注明出处~ https://blog.csdn.net/goodlixueyong/article/details/52132250 之前在很多业务中都 ...

  2. Guava之FluentIterable使用示例

    FluentIterable 是guava集合类中常用的一个类,主要用于过滤.转换集合中的数据:FluentIterable是一个抽象类,实现了Iterable接口,大多数方法都返回FluentIte ...

  3. Android ActionBar使用介绍

    一.什么是ActionBar 有图有真相,看一下图片就了解的差不多了 对于大多数应用,操作栏可以分割为 4 个不同的功能区域. 1. 应用图标 应用图标是您应用的标志.在应用图标位置摆放您自己的 lo ...

  4. 【转载】Qt Creator 添加自定义注释

    原文:https://blog.csdn.net/liang19890820/article/details/54925434 自定义注释注释的原则是有助于对程序的阅读理解,不宜太多,也不能太少(一般 ...

  5. SGU536 Berland Chess

    棋盘上白子只有一个国王  黑子给出 各子遵从国际象棋的走法 黑子不动,白子不能走进黑子的攻击范围以内 问白字能不能吃掉所有的黑子 直接搜索就好了,各子状态用二进制表示 不过每个子被吃之后攻击范围会改变 ...

  6. [leetcode]Merge Intervals @ Python

    原题地址:https://oj.leetcode.com/problems/merge-intervals/ 题意: Given a collection of intervals, merge al ...

  7. LeetCode295-Find Median from Data Stream && 480. 滑动窗口中位数

    中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操 ...

  8. iOS开发-UIActionSheet简单介绍

    UIActionSheet和UIAlertView都是ios系统自带的模态视图,模态视图的一个重要的特性就是在显示模态视图的时候可以阻断其他视图的事件响应.一般情况下我们对UIAlertView使用的 ...

  9. gradlew 命令行 build 调试 构建错误 Manifest merger failed MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. 一文学会用 Tensorflow 搭建神经网络

    http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...