第八周课程总结 & 实验报告(六)
第八周课程总结
一、包装类
介绍
装箱与拆箱
应用
二、异常
基本概念
基本格式
异常类的继承结构
throws关键字
throw关键字
Exception类和RuntimeException类
自定义异常类
三、多线程
基本概念
进程
多线程
Java中线程的实现
继承Thread类
实现Runnable接口
Thread和Runnable的区别
一、包装类
1.介绍
8种基本类型变包装类

(1)除了Character 和 Boolean,其它六种都属于Number类的子类。
(2)Character 和 Boolean属于Object类的直接子类
2.装箱与拆箱
装箱:将一个基本数据类型变为包装类
拆箱:将一个包装类变为基本数据类型
3.应用
(1)Integer类(字符串转int型)
public static int pareInt(String s) throws NumberFormatException
(2)Float类(字符串转float型)
public static float pareFloat (String s) throws NumberFormatException
二、异常
1.基本概念
异常是导致程序中断的一种指令流,如果不对异常进行正确的处理,则可能导致程序中断执行。
2.基本格式
try{
//可能出现异常的语句
}[catch{
//编写异常的处理语句
}catch{
//编写异常的处理语句
}.......]
finally{
//一定会运行到的程序代码;
}
异常处理流程

3.异常类的继承结构
在整个Java的异常结构中,实际有两个最常用的类,分别为Exception和Error,
这两个全是Throwable的子类
Exception:一般表示程序中出现的问题,可以直接使用try....catch处理。
Error:一般指的是JVM错误,程序中无法处理。
4.throws关键字
在定义一个方法时可以使用throws关键字声明,使用throws声明的方法表示此方法
不处理异常,而交给方法的调用者进行处理。
【格式】
例
class Math{
public int div(int i,int j) throws Exception{ //方法可以不处理异常
int temp = i/j;
return temp;
} }
5.throw关键字
使用throw抛出一个异常,抛出时直接抛出异常类的实例化对象即可
【格式】
例
public class ThrowDemo{
public static void main(String args[]){
try{
throw new Exception("自己抛出异常"); //抛出异常的实例化对象
} catch(Exception e){
System.out.println(e);
}
}
}
6.Exception类和RuntimeException类

Exception: 在程序中必须使用try....catch进行处理
RuntimeException:可以不使用,但如果有异常产生,则异常将由JVM进行处理
7.自定义异常类
根据自己的需求定义自己的异常类
例
class MyException extends Exception{
public MyException(String msg){
super(msg)
}
}
public class ThrowDemo{
public static void main(String args[]){
try{
throw new Exception("自定义异常"); //抛出异常的实例化对象
} catch(Exception e){
System.out.println(e);
}
}
}
三、多线程
1.基本概念
(1)进程:进程是程序的一次动态执行过程
(2)多线程:多线程是实现并发机制的一种有效手段

2.Java中线程的实现
(1)继承Thread类
【语法】
class 类名称 extends Ttread{
属性....;
方法....;
public void run(){
线程主体;
}
}
(2)实现Runnable接口
【语法】
class 类名称 implements Runnable{
属性....;
方法....;
public void run(){
线程主体;
}
}
(3)Thread和Runnable的区别
1.如果通过继承Thread类实现多线程,需要覆写run()方法
2.如果继承Thread类则不适合用于多个线程共享资源,
而实现Runnable接口,可以方便实现
实验报告(六)
一、异常
(一)实验源码
package yichang; import java.util.*;
public class Yichang { public static void main(String[] args) {
int score[]=new int [6];
System.out.println("程序开始");
System.out.println("请输入下标");
Scanner out = new Scanner(System.in);
int n = out.nextInt();
try{
for(int i=0;i<6;i++){
score[i]=i*i; }
System.out.println("score["+n+"]="+score[n]+" ");
}catch(ArrayIndexOutOfBoundsException a){
System.out.println("数组越界:"+a);
}finally{
System.out.println("程序结束");
}
} }
(二)实验结果

二、危险品检查
(一)实验源码
异常类
package danger; public class DangerException extends Exception{
String imformation; DangerException(String imformation){
this.imformation=imformation; }
void toShow(){ System.out.println(imformation); } }
检查类
package danger; public class Machine{
String name;
Goods g; public boolean isDanger(String name) {
String score[] = {"炸弹","毒药","刀具","枪支"};
boolean flag =false;
for(int i=0;i<score.length;i++) {
if(name.equals(score[i])) {
flag = true;
break;
}
}
return flag; } void checkBag(Goods g){
this.g=g;
name=g.getName();
try{
if(isDanger(name)){
System.out.print(name);
throw new DangerException("是危险品!!!"+"\n");
}
else{
System.out.print(name);
throw new DangerException("不是危险品!"+"\n");
}
}catch(DangerException e){
e.toShow();
}
}
}
Goods类
package danger; public class Goods{ String name; public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
测试类
package danger; import java.util.Scanner; public class Test { public static void main(String[] args) { while(true) {
Scanner sc=new Scanner(System.in); System.out.println("请输入物品:");
String input=sc.nextLine();
Goods g=new Goods();
g.setName(input);
Machine m=new Machine();
m.checkBag(g); }
} }
(二)实验结果

第八周课程总结 & 实验报告(六)的更多相关文章
- 第八周课程总结-实验报告六(Java异常)
理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类的方法 实验内容 编写一个类,在其 ...
- 第八周课程总结&实验报告六
实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类 ...
- 第八周课程总结&实验报告(六)
第八周课程总结 启动多线程售票(上课老师说要加入作业的部分) public class TestDemo { public static void main(StringD args) throws ...
- 第八周课程总结&实验报告
实验六 Java异常 •实验目的 •理解异常的基本概念: •掌握异常处理方法及熟悉常见异常的捕获方法. • 实验要求 •练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. •掌 ...
- 第八周学习总结&实验报告六
实验总结 :类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 : 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异 ...
- 第六周课程总结&实验报告(四)
实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...
- 第三周课程总结&实验报告
课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...
- 第九周课程总结 & 实验报告(七)
第九周课程总结 一.多线程 1.线程的状态 2.线程操作的相关方法 二.Java IO 1.操作文件的类---File ()基本介绍 ()使用File类操作文件 .RandomAccessFile类 ...
- 第七周课程总结 & 实验报告(五)
第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...
随机推荐
- execjs执行js代码报错:Exception in thread Thread-1
最近在爬一个js数据加密的网站的时候,出了点问题,困扰了我两天 直接运行js文件的时候正常,但是用execjs运行js代码的时候总是会报错 最后翻了很多博客之后,终于找到了原因:原因是有一个程序在使用 ...
- 写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z
题目: 写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z.要求用线程间的通信. /** * 写两个线程,第一个线程打印1-52,第二个线程打印 ...
- MMU功能解析、深入剖析、配置与使用
MMU = memory management unit 1.把虚拟地址转化成物理地址,防止地址冲突 2.访问权限管理 MMU把一个虚拟地址的20位到31位作为取出来,建立 一张表,叫做transla ...
- Arch Linux 安装rust
Arch Linux 安装rust 0. 参考 Rust Toolchain 反向代理使用帮助 1. 安装 安装rustup和toolchain yaourt -S rustup rustup ins ...
- 学习Linux的准备
学习方式: 主动学习: 动手实践:40% 讲给别人:70% 被动学习: 听课:10% 笔记:20% 写博客的要求: 写博客是对某一方面知识的总结,输出:是知识的书面化的表达方式.写博客不同于写笔记,笔 ...
- 可执行程序加一个dl
add_executable(forwarder app/main.cxx) TARGET_LINK_LIBRARIES(forwarder dl)
- WinMain lpCmdLine
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, int){ //命令行参数 TCHAR pCommandLine[2 ...
- ffmpeg函数04__v_register_output_format()
注册复用器,编码器等的函数av_register_all() 注册编解码器avcodec_register_all() 注册复用器的函数是av_register_output_format(). 注册 ...
- A*算法实现(图形化表示)——C++描述
概要 A*算法是一种启发式寻路算法,BFS是一种盲目的无目标的搜索算法,相比于BFS,A*算法根据适应度构建优先队列,根据适应度值可以很好的向目标点移动,具体详情,请看搜索相关文档,我在只是实现了在无 ...
- 【BZOJ3196】【Luogu P3380】 【模板】二逼平衡树(树套树)
做数据结构一定要平\((fo)\)心\((de)\)静\((yi)\)气\((pi)\)...不然会四处出锅的\(QAQ\) 写法:线段树套平衡树,\(O(Nlog^3N)\).五个操作如果是对于整个 ...