题目: 创建一个Person实体类,包含三个私有的属性:age、sex和name,并为这些属性设置get和set方法,应在set方法中验证参数的合法性
在测试中根据用户输入的信息创建对象并初始化对象属性,如果用户输入的年龄不在1-120之间或者性别不是”男”或者”女”则抛出对应异常。将异常信息打印到控制台。
代码实现如下:
package cn.LianXi.reflect;
import java.util.Scanner;
public class reflectTest1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入学生的年龄");
int sage = scan.nextInt();
System.out.println("请输入学生的性别");
String sex = scan.next();
person person1 = new person();
try {
person1.setAge(sage);
person1.setnewSex(sex);
} catch (AgeException | SexException e) {
e.printStackTrace();
e.getMessage();
}
}
}
//person类
class person {
private String name;
private int age;
private String sex;
public String getnewSex() {
return sex;
}
public void setnewSex(String sex) throws SexException {
if(sex.equals("男")||sex.equals("女")){
this.sex = sex;
}else {
throw new SexException(sex);
}
}
public person(String name, int age) {
this.name = name;
this.age = age;
}
public person() {
}
@Override
public String toString() {
return "person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) throws AgeException {
if(age<=0||age>=120){
throw new AgeException(age);
}else{
this.age = age;
}
}
}
//自定义年龄异常
class AgeException extends Exception{
String message;
public AgeException(int age){
message ="年龄设置为"+age+"不合理";
}
public String toString(){
return message;
}
}
//自定义性别异常
class SexException extends Exception{
private String message;
public SexException(String sex){
message="性别设置为:"+sex+"不合理";
}
public String toString(){
return message;
}
}
运行结果如下:
请输入学生的年龄
135
请输入学生的性别
男
年龄设置为135不合理
at cn.LianXi.reflect.person.setAge(reflectTest1.java:77)
at cn.LianXi.reflect.reflectTest1.main(reflectTest1.java:14)