在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPacka...

题目补充:

在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackageD:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YMD的方法来计算年龄。

主要考包的运用

用到java.util.Calendar;求时间日期

YMD类:

 

 1 import java.util.Calendar;
 2 
 3 
 4 public class YMD {
 5 private int year,month,day;
 6 YMD(){}
 7 public YMD(int year,int month,int day){
 8 this.year=year;
 9 this.month=month;
10 this.day=day;
11 }
12 public int getYear(){
13 return year;
14 }
15 public int getMonth(){
16 return month;
17 }
18 public int getDay(){
19 return day;
20 }
21 public static int nowYear(){//返回当前年份
22 return Calendar.getInstance().get(Calendar.YEAR);
23 }
24 public static int nowMonth(){//返回当前月份
25 return Calendar.getInstance().get(Calendar.MONTH);
26 }
27 public void showYMD(){//字符串形式输出年月日
28 System.out.println("出生日期:"+year+"-"+month+"-"+day);
29 }
30 }

测试类:(注意:对象的运用很特别)

 1 import myPackage.YMD;
 2 class personINfo{
 3 private String name;
 4 private YMD birthdate;//创建类的私有引用
 5 personINfo(){}
 6 personINfo(String name,YMD d){
 7 this.name=name;
 8 birthdate=d;//初始化对象
 9 }
10 personINfo(String name,int year,int month,int day){
11 this(name,new YMD(year,month,day));//对对象d进行初始化,赋初值,引用当前类的两个形参的构造方法
12 }
13 public int month(){//计算月份,小于则不满一年
14 return YMD.nowMonth()-birthdate.getMonth();
15 }
16 public int age(){//计算年份
17 return YMD.nowYear()-birthdate.getYear();
18 }
19 public String getName(){
20 return name;
21 }
22 public void output(){
23 System.out.println("姓名:"+getName());
24 if(month()<0)
25 System.out.println("年龄:"+(age()-1));
26 else
27 System.out.println("年龄:"+age());
28 birthdate.showYMD();    //以字符串形式显示年月日
29 }
30 }
31 public class Test5_4 {
32 public static void main(String args[]){
33 personINfo p=new personINfo("张三",1997,12,30);
34 p.output();
35 }
36 
37 }

 

转载于:https://www.cnblogs.com/silenTJ/p/7786923.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值