Java 使用this关键字实现 构造方法 调用 构造方法
Test类
public class Test { public static void main(String[] args) { Data time1 = new Data(); time1.print(); Data time2 = new Data(1999,4,28); time2.print(); } }
Data类
public class Data { private int year; private int month; private int day; public Data() { this.year=1997; this.month=4; this.day=28; } public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } public void print(){ System.out.println(this.year+"年"+this.month+"月"+this.day+"日"); System.out.println(year+"年"+month+"月"+day+"日"); } }
Data 类 的另一种写法
public class Data { private int year; private int month; private int day; public Data() { this(1997,4,28);//此代码必须出现在构造函的第一行不然会报语法错误 //隐含意思是说这种采用这种形式调用构造方法我们只能使用一次。 //这是this的另一种用法形式为"this(参数列表)",使用这种方式实现构造函数 // 之间的相互调用。可以减少代码量。 // this.year=1997; // this.month=4; // this.day=28; } public Data(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day;//此处的this. 如果省略那day=day都会变成局部变量int day // 这是由于Java默认的就近原则导致的。 } public void print(){ System.out.println(this.year+"年"+this.month+"月"+this.day+"日"); System.out.println(year+"年"+month+"月"+day+"日");//(this.)可以省略 } }