实验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();
    }
}

 

你可能感兴趣的:(java实验,上机)