实验3 类的定义与使用

教学目的和要求

1、掌握类的定义和使用

2、掌握类的定义和对象的声明

3、掌握构造函数的执行过程

4、掌握具有不同访问属性的成员的访问方式

教学组织

1、定义一个TDate类,包含年(year)、月(month)、日(day)等属性,有三个公有成员函数:SetDate来设置日期、AddOneDay来对日期进行加1天的操作、print来输出日期;

2、对构造函数或成员函数进行重载;

3、设置构造函数或成员函数的缺省参数

4、观察构造函数的调用顺序;

5、观察具有不同访问属性的成员的访问方式。

public class TDate {
	//缺省构造方法
    public TDate() {
        year = 2003;
        month = 1;
        day = 1;
        System.out.println("调用缺省的构造方法");
}
//带有参数的构造方法
    public TDate(int y, int m, int d) {
        year = y;
        month = m;
        day = d;
        System.out.println("调用带参数的构造方法");
}
//设置日期的方法
    public void setDate(int y, int m, int d) {
        year = y;
        month = m;
        day = d;
}
//计算某年某月最大天数的方法(私有)
    private int maxDays(int y, int m) {
        int days;
        switch (m) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days = 31; //31天
                break;
            case 2:
                if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)//闰年29天			
                {
                    days = 29;
                } else {
                    days = 28;
                }
                break;
            //}
            default://30天
                days = 30;
                break;
        }
        return days;
}
//增减天数的方法
    public void addOneDay() {
        day = day + 1;
        if (day > maxDays(year, month)) {
            month = month + 1;
            day = 1;
        }
        if (month > 12) {
            year = year + 1;
            month = 1;
        }
}
//打印日期的方法
    public void print() {
        System.out.println(year + "年" + month + "月" + day + "日");
    }
    private int year;
    private int month;
    private int day;
    public static void main(String[] args) {
        TDate d1 = new TDate();
        System.out.print("不带参数的日期对象:");
        d1.print();
        TDate d2 = new TDate(2004, 10, 14);
        d2.addOneDay();
        System.out.println("带3个参数的日期对象加一天后:");
        d2.print();
        d2.setDate(2005, 4, 8);
        System.out.println("重新设定日期后:");
        d2.print();
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值