Java实验二

文章介绍了如何在Java中创建一个带有异常处理的学生类,以及如何使用多线程模拟多人通过山洞的场景,强调了线程安全和并发控制的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建一个学生类,包含学号和年龄两个属性。定义构造方法对这两个属性进

行赋值,如果年龄小于 0 或者大于 150,则系统抛出异常,并对异常进行处理。

(需自定义异常类)

package take.report2;

public class StudentTest {
	public static void main(String[] args){
		
		Student s1 = new Student("1333444", 160);
	}
}

class Student{
	private String sno;
	private int age;
	
	public Student(String sno,int age) {
		this.sno=sno;
		this.age=age;
		
		if(this.age<0||this.age>150){
			try {
				throw new MyException("年龄输出有无,应在0到150之间");
			} catch (MyException e) {
				// TODO Auto-generated catch block
				System.out.println(e.getMessage());
			}
		}	
	}
}
class MyException extends Exception {
	private String massage;
	public MyException(String error){
		massage = error;
	}
	public String getMessage(){
		return massage;
	}
}

2.编写多线程应用程序,模拟多个人通过一个山洞,这个山洞每次只能通过一

个人,每个人通过山洞的时间为 5 秒。随机生成 10 个人,同时准备过此山洞,

显示一下每次通过山洞人的姓名。

public class InCaveTest {
	
	public static void main(String[] args) {
		InCave incave = new InCave();
		
		String[] name = {"神里凌华","胡桃","七七","甘雨","砂糖","香菱","降魔大圣","钟离","瑶瑶","丽莎"};
		for(int i =0;i<10;i++){
			new Thread(incave,name[i]).start();	
		}
	}
}

class InCave implements Runnable{
	
	public void run(){
		cave();
	}
	
	public synchronized void cave(){
		try {
			Thread.sleep(5000);
			//System.out.println("5s后");
			String threadName = Thread.currentThread().getName();
			System.out.println(threadName+"进山洞");
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值