📄 date2.java
字号:
//日期类的封装
public class Date2
{
private int year,month,day; //私有的成员变量
public Date2(int y,int m,int d)//指定参数的构造方法
{
set(y,m,d); //可以调用定义在后面的成员方法
}
public Date2() //无参数的构造方法
{
this(2006,1,1); //调用本类已定义的其他构造方法
}
public Date2(Date2 aday) //拷贝构造方法,有已存在对象创建新对象,重载
{
this(aday.year,aday.month,aday.day);
}
public void set(int y,int m,int d) //公有的成员方法,设置日期值,算法不全
{
this.year=y;
this.month=((m>=1)&(m<=12))? m:1;
this.day=((d>=1)&(d<=31))? d:1;
}
public void set(Date2 aday) //成员方法重载
{
set(aday.year,aday.month,aday.day); //调用同名成员方法,不能使用 this()
}
public int getYear()
{
return year;
}
public int getMonth()
{
return month;
}
public int getDay()
{
return day;
}
public boolean equals(Date2 aday2) //比较两个对象是否相等
{
return this==aday2||this.year==aday2.year&&this.month==aday2.month&&this.day==aday2.day;
}
public void tomorrow() //改变当前对象的日期值,算法不全
{
this.day++; //通过this改变当前对象的值,没有返回值
}
public Date2 daysAfter(int n) //返回n天后的新日期对象,没有改变当前对象的值
{
return new Date2(this.year,this.month,this.day);
}
public boolean isLeapYear()
{
return(year%400==0)||(year%100!=0)&&(year%4==0);
}
public String toString()
{
return this.year+"-"+this.month+"-"+this.day;
}
public void print()
{
System.out.println("date is "+this.toString());
}
}
class Date2_ex //其他类,缺省访问权限
{
public static void main(String args[])
{
Date2 aday1=new Date2(); //默认的参数的构造方法
Date2 aday2=new Date2(2006,2,28);//已知参数的构造方法
Date2 aday3=new Date2(aday2); //由已知对象创建新对象
aday3.set(2007,12,31); //改变当前对象的值,不改变aday2的值
aday1.print();
aday2.print();
aday3.print();
Date2 aday4=aday1.daysAfter(1);//返回新创建的对象
aday4.print();
aday1.tomorrow(); //改变当前对象的值
aday1.print();
System.out.println("aday4.equals(aday1) "+aday4.equals(aday1));//比较两个对象的值
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -