题目补充:
在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YMD的方法来计算年龄。
主要考包的运用
用到java.util.Calendar;求时间日期
YMD类:
import java.util.Calendar; public class YMD {
private int year,month,day;
YMD(){}
public YMD(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
public int getYear(){
return year;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public static int nowYear(){//返回当前年份
return Calendar.getInstance().get(Calendar.YEAR);
}
public static int nowMonth(){//返回当前月份
return Calendar.getInstance().get(Calendar.MONTH);
}
public void showYMD(){//字符串形式输出年月日
System.out.println("出生日期:"+year+"-"+month+"-"+day);
}
}
测试类:(注意:对象的运用很特别)
import myPackage.YMD;
class personINfo{
private String name;
private YMD birthdate;//创建类的私有引用
personINfo(){}
personINfo(String name,YMD d){
this.name=name;
birthdate=d;//初始化对象
}
personINfo(String name,int year,int month,int day){
this(name,new YMD(year,month,day));//对对象d进行初始化,赋初值,引用当前类的两个形参的构造方法
}
public int month(){//计算月份,小于则不满一年
return YMD.nowMonth()-birthdate.getMonth();
}
public int age(){//计算年份
return YMD.nowYear()-birthdate.getYear();
}
public String getName(){
return name;
}
public void output(){
System.out.println("姓名:"+getName());
if(month()<0)
System.out.println("年龄:"+(age()-1));
else
System.out.println("年龄:"+age());
birthdate.showYMD(); //以字符串形式显示年月日
}
}
public class Test5_4 {
public static void main(String args[]){
personINfo p=new personINfo("张三",1997,12,30);
p.output();
} }