栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 2022.7.19课程总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 2022.7.19课程总结

一、异常 1.异常类型         String s="123你好";
        int i=Integer.parseInt(s);//NumberFormatException
        
        Object ojb1="123";
        Easy e=(Easy)obj1;//ClassCastException
                                                                                                            
        TreeSet set=new TreeSet();
        set.add("123");
        set.add(12.2);//ClassCastException
        
        String str="123";
        str.substring(4);//ArrayIndexOutOfBoundsException
        int[] arr={};
        arr[0]=12;ArrayIndexOutOfBoundsException
        
        List list =new ArrayList();
        list.get(1);//java.lang.IndexOutOfBoundsException
        
        Object obj=null;
        obj.toString();//java.lang.NullPointerException
        
        int a=12/0;//java.lang.ArithmeticException
        double b=12/0.0;
    
2.异常知识点     //在程序运行过程中才会抛出的异常叫做运行时异常
    //在编码过程中必须处理的异常叫做检查性异常
    //java程序访问外部资源一般都会抛出检查性异常
    //程序抛出了异常就会终止
    
    //处理异常的一种方式:try{}catch(){}finally{}
    //try将正常的代码尝试运行
    //catch如果抛出了指定类型的异常,执行的方案
    //finally不管是否抛出了异常都会执行的代码
        File file;
        FileInputStream fis;
        try {
                file=new File("D:\locla\test.java");
                fis=new FileInputStream(file);    //FileNotFoundException
        }
        catch(FileNotFoundException e) {
            //try块抛出异常后,处理的预备方案
            file=null;
            fis=null;
            e.printStackTrace();//打印异常信息
        }catch(NullPointerException e){
            //多个catch块只会运行一个
        }catch(StringIndexOutOfBoundsException|ArrayIndexOutOfBoundsException e) {
            //一个catch声明捕捉多种异常
        }catch(Exception e) {
            //范围大的异常的catch块放在后面
        }
        finally {
            if(fis!=null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    //抛出异常
    //一个方法中可能会抛出异常,使用throws声明抛出的异常类型
    //所有的RuntimeException的子类都是运行时异常
    //Exception下除了RuntimeException之外所有的都是检查性异常
    
    public void put(Object k,Object v) throws NullPointerException{
        if(k==null) {
            throw new NullPointerException("Key is null");
        }
    }
    public void openFile(java.io.File file) throws FileNotFoundException,ClassNotFoundException{
        if(file==null) {
            throw new FileNotFoundException("file not found");
        }
        Class.forName("java.util.Math");
    public void checkPrice(double price) throws PriceOutOfBoundsException{
        if(price<0||price>=100000) {
            throw new PriceOutOfBoundsException("price of"+price);
    }
}
        //一个方法中抛出运行时异常,不需要明文定义
    public void checkGrade(double grade) {
        if(grade<0||grade>=100) {
            throw new GradeOutOfBoundsException();
        }
    }    
class GradeOutOfBoundsException extends RuntimeException{
    public GradeOutOfBoundsException() {
        super();
    }
}
class PriceOutOfBoundsException extends Exception{
    public PriceOutOfBoundsException() {
        super();    
    }
}
        class A{
            public void test() throws NullPointerException{}
        }
        class B extends A{
            //重写的方法只能抛出范围更小的异常
            //不能抛出更多个异常  异常类型要不一样
            public void test() throws Exception{}
            public void test() throws PriceOutOfBoundsException{}
        } 3.return补充点     //一个方法执行多次return
    //最后一次return才是生效的

    public static void main(String[] args) {
        String result=test();
        System.out.println(result);//over
    }
     public static String test() {
         try {
             int i=12/0;
             return "ok";
         }catch(Exception e) {
             return "catch";
         }finally {
             return "over";
         }
     }
}

二、彩票站例题     // 双色球
    // 生成彩球类
    // 红球:1-33
    // 蓝球1-15
    // 在定义一个彩票站,使用泛型
    // 定义摇号的方法,随机产生6红球,一个蓝球,将要出的球放到集合中(红红不可重复)
    // 提供toString方法返回红球:........,蓝球. 方法1:
package com.easy16;
import java.util.ArrayList;
import java.util.List;
public class Easy {
	public static void main(String[] args) {
		Station s1=new Station();
		ArrayList a1=new ArrayList(s1.lottery());
		String s2=s1.toString(a1);
		System.out.println(s2);
	}
}
class Station {
	String toString(List list) {
		StringBuilder strb=new StringBuilder();
		for(Ball ball:list) {
			if(ball.getColor().equals("红色")&&strb.indexOf("红球")==-1) {
				strb.append("红球:");
			}
			strb.append(ball.getNumber());
			strb.append(",");
			if(ball.getColor().equals("蓝色")) {
				//截取字符串
				strb=new StringBuilder(strb.substring(0, strb.length()-1));
				strb.append("蓝球:");
				strb.append(ball.getNumber());
			}
		}
		return strb.toString();
	}
	
	List lottery() {
		// 声明存储球的容器
		List list = new ArrayList();
		// 红球
		int number;
		Ball ball;
		while (true) {
			number = (int) (Math.random() * Ball.RED_MAX_VALUE + Ball.RED_MIN_VALUE);
			// 抽出来的球
			ball = new Ball("红色", number);
			System.out.println(ball);
			// 如果球重复了就要重新抽
			if (list.contains(ball)) {
				continue;
			}
			list.add((E) ball);
			if (list.size() == 6) {
				break;
			}
		}
		number = (int) (Math.random() * Ball.BLUE_MAX_VALUE + Ball.BLUE_MIN_VALUE);
		ball = new Ball("蓝色", number);
		list.add((E) ball);
		System.out.println(ball);
		return list;
	}
}

class Ball {
	// 声明每种球的最大值最小值
	public static final int RED_MAX_VALUE = 33;
	public static final int RED_MIN_VALUE = 1;
	public static final int BLUE_MAX_VALUE = 15;
	public static final int BLUE_MIN_VALUE = 1;
	// 声明属性
	private String color;
	private int number;

	public Ball(String color, int number) {
		super();
		this.color = color;
		this.number = number;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public String toString() {
		return "Ball [color=" + color + ", number=" + number + "]";
	}
	public boolean equals(Object obj) {
		// 比较球--颜色一样,号码一样,就是一个球
		if (this == obj) {
			return true;
		}
		if (obj instanceof Ball) {
			Ball item = (Ball) obj;
			if (this.number == item.number && this.color.equals(item.color)) {
				return true;
			}
		}
		return false;
	}
}
方法2:
//彩票站方法2
	// 双色球
	// 生成彩球类
	// 红球:1-33
	// 蓝球1-15
	// 在定义一个彩票站,使用泛型
	// 定义摇号的方法,随机产生6红球,一个蓝球,将要出的球放到集合中(红红不可重复)
	// 提供toString方法返回红球:........,蓝球.
package com.easy14;
import java.util.ArrayList;
import java.util.List;
public class Easy {
	public static void main(String[] args) {
		Station sta = new Station();
		List list = sta.lottery2();
		String str=sta.toString(list);
		System.out.println(str);
	}
}

class Station {
	String toString(List list) {
		StringBuilder strb=new StringBuilder();
		for(Ball ball:list) {
			if(ball.getColor().equals("红色")&&strb.indexOf("红球")==-1) {
				strb.append("红球:");
			}
			strb.append(ball.getNumber());
			strb.append(",");
			if(ball.getColor().equals("蓝色")) {
				//截取字符串
				strb=new StringBuilder(strb.substring(0, strb.length()-1));
				strb.append("蓝球:");
				strb.append(ball.getNumber());
			}
		}
		return strb.toString();
	}
	
	List lottery2(){
		List list = new ArrayList();
		List redNumArr=new ArrayList();
		for(int num:Ball.RED_NUMBER) {
			redNumArr.add(num);
		}
		List blueNumArr=new ArrayList();
		for(int num:Ball.BLUE_NUMBER) {
			blueNumArr.add(num);
		}
		int index;
		int number;
		Ball ball;
		for(int i=0;i<6;i++) {
			index=(int)(Math.random()*redNumArr.size());
			number=redNumArr.remove(index);
			// 抽出来的球
			ball = new Ball("红色", number);
			list.add((E)ball);
		}
		index=(int)(Math.random()*blueNumArr.size());
		number=redNumArr.remove(index);
		ball = new Ball("蓝色", number);
		list.add((E)ball);
		return list;
	}
}
class Ball {
	public static final int[] RED_NUMBER = { 1, 2, 3, 4, 5, 6, 7, 8,
			9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
			22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 };
	public static final int[] BLUE_NUMBER = { 1, 2, 3, 4, 5, 6, 7, 
			8, 9, 10, 11, 12, 13, 14, 15 };
	// 声明属性
	private String color;
	private int number;
	public Ball(String color, int number) {
		super();
		this.color = color;
		this.number = number;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public String toString() {
		return "Ball [color=" + color + ", number=" + number + "]";
	}
	public boolean equals(Object obj) {
		// 比较球--颜色一样,号码一样,就是一个球
		if (this == obj) {
			return true;
		}
		if (obj instanceof Ball) {
			Ball item = (Ball) obj;
			if (this.number == item.number && this.color.equals(item.color)) {
				return true;
			}
		}
		return false;
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020496.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号