学习关键字this和代码的封装
总结:
- this是一个引用,保存内存地址指向自身;
- this可以使用在实列方法中,也可用在构造方法中,不可用在静态方法中;
- this可以使用在实列方法中,代表当前对象;
- this. 大部分可以省略,但在实列变量和全局变量同名时,不可以省略;
- this() 这种语法只能出现在构造方法的第一行,表示当前构造方法调用本类其他的构造方法,目的是代码复用;
- 一个对象一份是实例变量,所有对象一份是静态变量;
代码实列:
package day1;
/*题目:
* 定义一个日期类,可以表示年,月,日
* 如果调用无参数构造方法,默认创建的日期为:1970年1月1日
* 也可以调用有参数的构造方法来创建日期对象
* 以后代码养成封装的习惯
* */
class Date{//封装:先属性私有化,在对外提供 get和set方法
private int year;
private int month;
private int day;
//1.无参数构造方法
public Date() {
this.year=1997;
this.month=1;
this.day=1;
}
//2.有参数构造方法
public Date(int year, int month, int day) {
super();
this.year = year;
this.month = month;
this.day = day;
}
//3.set和get
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 dayin(){
System.out.println(year+"年"+month+"月"+day+"日");
}
}
//主函数,即入口
public class Book{
public static void main(String[] args) {
//调用无参数构造方法
Date a1=new Date();
a1.dayin();
//调用有参数构造方法
Date a2=new Date(2021,10,5);
a2.dayin();
}
}