第八周课程总结 & 实验报告(六)
第八周课程总结
- 一、包装类
- 介绍
- 装箱与拆箱
- 应用
- 二、异常
- 基本概念
- 基本格式
- 异常类的继承结构
- 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.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...
随机推荐
- java中super总结
1:super 可以在子类调用父类中的成员变量(包括static修饰的变量)和方法(包括static修饰的方法) 2:super 可以调用父类的构造方法 super(参数列表),在没有定义时,并且没有 ...
- Filebeat7 Kafka Gunicorn Flask Web应用程序日志采集
本文的内容 如何用filebeat kafka es做一个好用,好管理的日志收集工具 放弃logstash,使用elastic pipeline gunicron日志格式与filebeat/es配置 ...
- Android Studio 配置Gradle总结
一, 问题:①换个新电脑安装完Android Sutdio第一次打开一个工程巨慢怎么办? ② 手动配置Gradle Home为什么总是无效? ③ 明明已经下载了Gradle,配置了gradle hom ...
- js 数据类型的判断
1. typeof 运算符 typeof 可以判断基本数据类型: typeof 123; // "number" typeof 'abc'; // "string&quo ...
- monkey 进阶使用手册,monkey随机测试后怎么定位问题
首先我们知道使用monkey后,我们可以查看三种类型的日志,一种是安卓内核日志,一种是安卓系统自己的日志,还有一种是monkey日志. 当我们使用monkey进行随机测试时,如何才知道我们这次随机测试 ...
- oracle数据库连接问题org.springframework.jdbc.support.MetaDataAccessException: JDBC DatabaseMetaData method not implemented by JDBC driver - upgrade your driver...
org.springframework.jdbc.support.MetaDataAccessException: JDBC DatabaseMetaData method not implement ...
- 【异常】org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
1 Phoenix远程无法连接但是本地可以连接,详细异常 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found bindin ...
- kvm虚拟机热迁移
一.热迁移描述: 相比KVM虚拟机冷迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机热迁移无需拷贝虚拟磁盘文件,但是需要迁移到的宿主机之间需要有相同的目录结构虚拟机磁盘文件,也就是共享存储,本文这部分内 ...
- 微服务架构:构建PHP微服务生态
微服务架构:构建PHP微服务生态 Linux系统技术交流QQ群(1675603)验证问题答案:刘遄 导读 诞生于 2014 年的“微服务架构”,其思想经由 Martin Fowler 阐述后,在近 ...
- Linux SUID SGID SBIT 简介和权限设定
SUID :Set UID 1 SUID 权限仅对二进制程序(binary program)有效 2 执行者对于该程序需要具有x的可执行权限 3 本权限仅在执行该程序的过程中有效(run-time) ...