学习Java第十一周

课中:

理论课:

  1. 带恒定初始值的final static基本类型全用大写字母命名,并且字与字之间用下划线隔开。
  2. Java允许在参数列表中以声明的方式将参数指明为final。
  3. final有两个作用,第一个是把方法锁定,使它不能重写,第二个原因是效率,它会根据自己的谨慎判断,跳过插入程序代码这种正常方式而执行方法调用机制,并且以方法体中的实际代码的副本来替代方法调用。
  4. 类中的所有private方法都隐式地指定为是final的。
  5. 当某个类的整体定义为final时,就表明了你不打算继承该类,而且也不允许别人这样做。
  6. try catch语句后面的finally一定会执行,不管后面有没有发生异常都会执行的代码。
  7. CheckedException这类异常在编译时就必须做出处理,否则无法通过编译。
    实验课:
    这节课老师讲解了我们的第七次关于异常的作业,对于我来说,比较有难度的是第三题以后,通过老师的讲解和我后面敲代码,我学习了更多关于异常的知识点。
/*
 * 3.编写一个计算N个学生平均分数的程序编写一个程序Ch7Demo3类,程序应该提示用
 * 户输入N的值 ,并输入相应的分数,如果用户输入的一个负分数,则应该抛出一个异常
 * 并捕获,提示“分数必须是正数或者0”,并提示用户再次输入分数。
 */
public class Ch7Demo3 {
	public static void main(String[] args) throws MyException {//声明异常
		Scanner cin = new Scanner(System.in);
		System.out.println("请输入N的值:");
		 int N = cin.nextInt();
		 double all  = 0;
	
			for(int i = 0;i < N;i++){
				int score;
				score = cin.nextInt();
				scoreIf(score);
				 all += score ;
			 }
	
		 System.out.println(all/N);
	}

public static void scoreIf(double score) throws MyException{//声明异常
	if(score <0){
		throw new MyException("分数必须为正数!");//抛出异常
	}
}
}
class MyException extends Exception{//自定义一个异常类

	public MyException(String message) {
		System.out.println(message);
		// TODO Auto-generated constructor stub
	}

第四题我现在还不能够自己写出来,这对于我现在的编程能力来说是有一定难度的,所以我要通过多做这种文件类型的题目去提升我的熟练度。

/*
 * 5. 编写一个程序Ch7Demo5类,并在类中写一个方法
 * void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角
 * 形。如果不能,则抛出异常IllegalArgumentException,显示:“a,b,c不能构
 * 成三角形”,如果可以,则显示三角形的三个边长。在主方法提示用户输入三个整数,
 * 调用此方法,并捕获异常和处理异常。
 */
public class Ch7Demo5 {
	public static void isTriangle(int a,int b,int c) throws IllegalArgumentException{//静态的方法声明异常
		if((a+b>c)&&(a+c>b)&&(b+c>a)){//三角形条件
			System.out.println("三角形的三个边长为:"+a+" "+b+" "+c);
		}else{
			throw new IllegalArgumentException();//抛出异常
		}
	}
public static void main(String[] args) {
	System.out.println("请输入三角形的三条边:a、b、c:");
	Scanner cin = new Scanner(System.in);
	int a = cin.nextInt();
	int b = cin.nextInt();
	int c = cin.nextInt();
	cin.close();
	try{
	isTriangle(a,b,c);
	}catch(IllegalArgumentException e){
		System.out.println("a,b,c不能构成三角形");
	}
}

第六题和第三题题型差不多,这类题型我差不多可以掌握,但也需要加强练习。

/*
 * 7. 编写一个程序Ch7Demo7类,提示用户输入一个目录名称,然后使用File类中
 * 的mkdirs方法创建相应的目录,如果目录创建成功则显示“目录创建成功”,如果目
 * 录已经存在,则显示“目录已经存在,不需创建了”。
 */
public class Ch7Demo7 {
public static void main(String[] args) {
	System.out.println("请输入一个目录名称:");
	Scanner cin = new Scanner(System.in);
	String f = cin.nextLine();
	File file = new File(f);
	if(!file.exists()){
		System.out.println("目录创建成功");
	}else{
		System.out.println("目录已经存在,不需创建了");
	}
}

和第四题一样,我对File的用法不够了解,导致做题目的时候会卡在这个地方。

预习:

  1. 泛型和类型安全的容器。
  2. 基本概念
  3. 添加一组元素
  4. 容器的打印
  5. List
  6. 迭代器:ListIterator
  7. LinkedLink

总结:

这周我们学了final的用法和作用,进一步了解了如何去写异常的题目以及异常给我们编程带来的便利,但深入了解异常需要我们去编写大量的代码才能够得出宝贵的经验。同时,我慢慢意识到,只有在写题目的过程中碰到错误尽量自己去百度,这样才能进步比较快,在写代码过程中碰到的错误我们可以看看别人是怎么处理的,然后学习别人的过程。总之,只要功夫深,铁杵磨成针,无论在学习什么,我们都要努力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值