this()的用法
/*
1、this除了可以使用在实例方法中,还可以用在构造方法中。
2、新语法:通过当前的构造方法去调用另一个本类的构造方法,可以使用以下的语法格式:
this(实际参数列表);
通过一个构造方法1去调用构造方法2,可以做到代码复用
但需要注意的是:“构造方法1和构造方法2”都是在同一个类当中。
3、this()这个语法作用是什么?
代码复用
4、死记硬背:
对于this()的调用只能出现在构造方法的第一行。
*/
public class ThisTest04 {
public static void main(String[] args) {
//调用无参数构造方法
Date d1=new Date();
d1.detail();
//调用有参数构造方法
Date d2=new Date(2008,8,8);
d2.detail();
}
}
/*
需求:
1、定义一个日期类,可以表示年月日信息。
2、需求中要求:
如果调用无参数构造方法,默认创建的日期为:1970年1月1日。
当然,除了调用无参数构造方法之外,也可以调用参数的构造方法来创建日期对象。
*/
class Date{ //以后写代码都要封装,属性私有化,对外提供setter and getter
//年
private int year;
//月
private int month;
//日
private int day;
//构造方法无参
//调用无参数构造方法,初始化的日期是固定值。
public Date(){
//错误:对this的调用必须是构造器中的第一个语句
//System.out.println(11);
//this.可以省略
/*
this.year=1970;
this.month=1;
this.day=1;
*/
this(1970,1,1);
}
//构造方法有参数
public Date(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
//提供一个可以打印日期的方法
public void detail(){
// System.out.println(year+"年"+month+"月"+day+"日");
System.out.println(this.year+"年"+this.month+"月"+this.day+"日");
}
//setter and getter
public void setYear(int year){
this.year=year;
}
public int getYear(){
return year;
}
public void setMonth(int month){
this.month=month;
}
public int getMonth(){
return month;
}
public void setDay(int day){
this.day=day;
}
public int getDay(){
return day;
}
}