创建一个学生类,设定一些私有属性
public class Student {
private int age;
private String name;
private String sex;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
//限定私有属性sex的条件
public void setSex(String sex) throws Exception {
//如果不为女或者男则抛出异常(检查异常)
if (sex.equals("female")||sex.equals("male")){
this.sex=sex;
}
else{
throw new Exception();
}
}
@Override
public String toString() {
return "Student{" +
"age=" + age +
", name='" + name + ''' +
", sex='" + sex + ''' +
'}';
}
public Student(){
}
//有参构造器
public Student(int age, String name, String sex) {
this.age = age;
this.name = name;
this.sex = sex;
}
}
运行main’方法
public static void main(String[] args) throws Exception {
Student student=new Student();
student.setAge(20);
student.setName("zhangzheng");
student.setSex("网二");
System.out.println(student);
}
将setsex()方法限制为不为男或女则抛出异常
接下来调用set方法对这些私有属性赋值
因为sex不符合setsex()方法,所以抛出异常(检查异常),然后用throws对外抛出异常,让调用这个方法的对象来解决这个异常
再来到main方法这边,这边调用了setsex()方法后就要解决这个异常了
解决这个检查异常,需要用throws对外抛出或者自己内部trycatch解决
②接下来用构造器来传参
如图,构造器传参后,绕过了setsex()方法,并没有对sex私有属性进行限制,做了正常输出,没有抛出异常
解决方法:
修改学生类里的构造器
修改完成以后出现异常,之后再解决异常即可



