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();
}
}
}