定义一个身份证类,其中身份证号id是它的私有属性。该类有对应的getId方法和setId方法。 在setId方法中,当给定的字符串长度是18时,赋值给id;当字符串长度不是18时,抛出IllegalArgumentException异常。(IllegalArgumentException类在java.lang中,所以无需导入该异常类,在程序中可以直接使用。) 要求捕获和处理IllegalArgumentException异常,编写程序实现以上功能。 运行结果: 请输入一个身份证号:123456 身份证不是18位。 身份证号是:null 请输入一个身份证号:123456789123456789 身份证号是:123456789123456789 将程序补充完整: package cn.wxstc.practice1; import java.util.Scanner; public class IdCard { private String id; public String getId() { return id; } public void setId(String id) throws IllegalArgumentException{//上报异常,由调用该方法的地方进行捕获和处理异常 if(id.length()!=18) .........//如果身份证号长度不是18,抛出IllegalArgumentException异常。 else this.id = id; } public static void main(String[] args){ ............... } }
时间: 2023-05-27 08:07:50 浏览: 62
package cn.wxstc.practice1;
import java.util.Scanner;
public class IdCard {
private String id;
public String getId() {
return id;
}
public void setId(String id) throws IllegalArgumentException{
if(id.length()!=18)
throw new IllegalArgumentException("身份证号不是18位。");//如果身份证号长度不是18,抛出IllegalArgumentException异常。
else
this.id = id;
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
IdCard idCard = new IdCard();
System.out.print("请输入一个身份证号:");
String id = scanner.next();
try {
idCard.setId(id);
System.out.println("身份证号是:" + idCard.getId());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
System.out.println("身份证号是:null");
}
}
}