题目1(类与对象):从身份证号码中获取年龄和性别。要求实现Person类,构造对象时初始化身份证号码,然后通过该类的getAge与getSex方法得到性别。
中华人民共和国居民身份证号码都是18位,第7到14位为别代表出生年月日,第17位数字表示性别(奇数表示男性,偶数表示女性)。年龄就用如今年份(2021)减去7-10位= ?岁。
package majorclass;
/*从身份证号码中获取年龄和性别
构造对象时初始化身份证号码
通过Person类的getAge与getSex方法得到性别
500000200104250020 20 女
500000200004250070 21 男*/
import java.util.Scanner;
import java.util.Calendar;
class Person
{
private int age;
private char sex;
private String id;
public Person(String id)
{
this.id = id;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public char getSex()
{
return sex;
}
public void setSex(char sex)
{
this.sex = sex;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public void print(String id)
{
Calendar cal = Calendar.getInstance(); //Calendar类,获取日历时间
int nowyear = cal.get(Calendar.YEAR); //获取当前年份
int birthyear = Integer.parseInt(id.substring(6,10)); //获取出生年份
/*通过substring()截取身份证需要位的数字
运用Integer.parseInt()把括号里的字符串内容转化为整数*/
age = nowyear - birthyear;
int sexnumber = Integer.parseInt(id.substring(16,17));
if(sexnumber % 2 == 0)
{
sex = '女';
}
else
{
sex = '男';
}