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 ...
随机推荐
- 如何设置浏览器禁止使用UC浏览器
通过UA可以判断浏览器是否是UC浏览器 if(navigator.userAgent.indexOf('UCBrowser')>-1) { alert("当前浏览器不支持本站,建议更 ...
- head first--------------state pattern
head first----------浅谈状态模式 状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类 实现代码如下: package com.cl ...
- 奇怪吸引子---Chua
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- 用JQuery 判断某个属性是否存在hasAttr的解决方法
在jquery编码中,我们会判断元素是否存在某个属性.比如是否包含 class="new" 的样式呢.JQuery判断就非常简单了,因为有 hasClass这个方法 $(" ...
- vue项目实现列表页-详情页返回不刷新,再点其他菜单项返回刷新的需求
问题背景:有时候一些列表会有一些跳转的需求,比如跳到详情页.或者是其他相关的页面(比如跳到用户列表去查看用户的相关信息)等,此时再返回列表页,列表页会刷新重置.目前需求就是需要改成如下情况: 问题1. ...
- 【Scala】Scala-调用Java-集合
Scala-调用Java-集合 sacla 遍历 java list_百度搜索 13.11 Scala混用Java的集合类调用scala的foreach遍历问题 - 简书
- NLP 中的embedding layer
https://blog.csdn.net/chuchus/article/details/78386059 词汇是语料库的基本元素, 所以, 使用embedding layer来学习词嵌入, 将一个 ...
- 斯坦福大学CS224d课程目录
https://www.zybuluo.com/hanxiaoyang/note/404582 Lecture 1:自然语言入门与次嵌入 1.1 Intro to NLP and Deep Learn ...
- 【转载】springboot:如何优雅的使用mybatis
这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis.到网上找了一下关于spring boot ...
- 在linux 中wget 无法解析主机
vim /etc/resolv.cof 在里面加入节点 nameserver 8.8.8.8 / nameserver 8.8.4.4 即可 失败时: 成功时: