java第四节 异常/访问控制/jar包
/*
异常
异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误,如程序要打开一个不存在的文件
网络连接中断,操作数越界,装载一个不存在的类等 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包的更多相关文章
- java jvm学习笔记七(jar包的代码认证和签名)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前言: 如果你循序渐进的看到这里,那么说明你的毅力提高了,jvm的很多东西都是比较抽像的,如果不找相对应的代码来辅助理解 ...
- java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException
缺少相应jar包都会有异常,根据异常找jar包导入...... 这里我说下lang包,因为这个包我找了好半天: 我用的是: commons-lang3-3.1.jar 出现异常: jav ...
- 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. ...
- 用命令行编译java并生成可执行的jar包
用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...
- 转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类
在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...
- 不要轻易在java ext 目录放任何三方jar包
今天在编写一个简单spi 应用demo的时候,在编译时总有一个其他的错误,如下: ERROR Failed to execute goal org.apache.maven.plugins:maven ...
- Java SE 9 多版本兼容 JAR 包示例
Java SE 9 多版本兼容 JAR 包示例 作者:Grey 原文地址:Java SE 9 多版本兼容 JAR 包示例 说明 Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在 ...
- java中使用URLClassLoader访问外部jar包的java类
很多时候 我们写的Java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类. 下边是一种简单的实现方法: Class ...
- 曹工说Spring Boot源码(25)-- Spring注解扫描的瑞士军刀,ASM + Java Instrumentation,顺便提提Jar包破解
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
随机推荐
- 【转】ubuntu apt-get update 失败解决
FROM : http://blog.csdn.net/ronghua_liu/article/details/8609450 当运行apt-get update后出现如下错误时:E: Some in ...
- [转]关于Infobright的数据导入
FROM : http://www.mysqlsky.com/201109/infobright-data-load-error 题记 对于DW系统而言,庞大数据的迁移成本很高:所以导入和导出的速率及 ...
- 11.2.0.3 RAC(VCS)节点crash以及hang的问题分析
昨天某个客户的一套双节RAC当中一个节点crash,同一时候最后导致另外一个节点也hang住,仅仅能shutdown abort. 且出现shutdown abort实例之后,还有部分进程无法通过ki ...
- c#中的 数组
数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素. 数组是具有相同类型的一组数据.当访问数组中的数据时,可以通过下标来指明.c#中数组元素可以为任何数据类型,数 ...
- PPPOE数据包转换及SharpPcap应用
在最近写的一个程序中需要用到Sniffer功能,但由于通过.net自身的Socket做出来的Sniffer不能达到实际应用的要求(如不能监听WIFI数据包)所以找到了WinPCAP的.NET库Shar ...
- iOS开发-ViewController的生命周期和切换
ViewController在App开发中是至关重要的一环,无论是页面的展示和数据之间的交互,ViewController提供了一个框架可以管理和构建App应用.iOS中构建App提供了两种方式一种是 ...
- js 处理URL实用技巧
escape().encodeURI().encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤. 但后两者是将字符串转换为UTF-8的方式来传输,解决了 ...
- 手把手实现腾讯qq拖拽删去效果(二)
这节,就一个任务如何把上节自定义的翻页动画控件整进下拉列表中去. 由于是自定义的下拉列表控件,我们需要自定义能够上啦下滑的listview,这势必会造成这个问题,上拉刷新要响应相应touch事件,拖拽 ...
- 阿里巴巴Java开发规约插件全球首发!(转)
https://mp.weixin.qq.com/s?__biz=MzI0NTE4NjA0OQ==&mid=2658355901&idx=1&sn=3169172bfc6819 ...
- 使用unbound在RHEL7上搭建DNS服务
1.概念:DNS (Domain Name Server)域名解析服务,使用TCP&UDP的53号端口(主从DNS之间用TCP,客户端查询使用UDP).它可以完成域名与IP地址的互换,可以通过 ...