package com.jsu.ex;
public class Student {
private String ID;
private String name;
private int age;
public Student() {
}
public Student(String ID, String name, int age) {
this.ID = ID;
this.name = name;
this.age = age;
}
/**
* 获取
* @return ID
*/
public String getID() {
return ID;
}
/**
* 设置
* @param ID
*/
public void setID(String ID) {
int len = ID.length();
if(len!=4){
throw new IDOutException(ID+"超出范围,长度应是4");
}
this.ID = ID;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
int len = name.length();
if(len>10){
throw new NameOutException(name+"超出范围,应在10以内");
}
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
if(age>30 || age<10){
throw new AgeOutException(age+"不符合规范,应在10~30之内");
}
this.age = age;
}
public String toString() {
return "Student{ID = " + ID + ", name = " + name + ", age = " + age + "}";
}
}
package com.jsu.ex;
public class IDOutException extends RuntimeException{
public IDOutException() {
}
public IDOutException(String message) {
super(message);
}
}
package com.jsu.ex;
public class NameOutException extends RuntimeException{
public NameOutException() {
}
public NameOutException(String message) {
super(message);
}
}
package com.jsu.ex;
public class AgeOutException extends RuntimeException{
public AgeOutException() {
}
public AgeOutException(String message) {
super(message);
}
}
package com.jsu.ex;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Student student = new Student();
while (true) {
try {
System.out.println("输入学生的ID");
String id = scan.nextLine();
student.setID(id);
System.out.println("输入学生的姓名");
String name = scan.nextLine();
student.setName(name);
System.out.println("输入学生的年龄");
int age;
while (true) {
try {
age = Integer.parseInt(scan.nextLine());
break; // 输入正确,退出循环
} catch (NumberFormatException e) {
System.out.println("年龄必须为数字,请重新输入");
}
}
student.setAge(age);
} catch (IDOutException e) {
e.printStackTrace();
} catch (NameOutException e) {
e.printStackTrace();
} catch (AgeOutException e) {
e.printStackTrace();
}
System.out.println(student.toString());
}
}
}