一、this关键字
1、概念
- this是Java中一个关键字,翻译为“这个”。
- this代表当前对象
- this中保存的内存地址指向对象自身,this存储在JVM堆内存的Java对象内部。
- this在多数情况下可省略不写,但有些情况下不能省略不写。
2、作用
① 用在【实例方法】中,代表【当前对象】,语法格式:【this.】
② 用在【构造方法】中,通过当前的构造方法去调用其他的构造方法,语法格式:【this(实参);】
package javaBasis;
public class Datetime {
// 属性私有化
private int year;
private int month;
private int day;
private int hour;
private int minute;
// 构造方法
// 无参构造方法
// 需求:当程序员调用以下无参构造方法时,默认创建的日期时间是2000年1月5日10时30分,
public Datetime() {
/*
this.year = 2000;
this.month = 1;
this.day = 5;
this.hour = 10;
this.minute = 30;
*/
/*
以上代码与有参构造方法有重复部分,可以通过调用下面的构造方法来完成
但前提是不能创建新的对象,即 new Datetime(2000, 1, 5, 10, 30);是错误的。
*/
/* 需要采用this();的语法来完成构造方法的调用
* 这种方法不会创建新的java对象,但同时又可以达到调用其它的构造方法
* 注意:this();语句只能出现在构造方法的第一行。
*/
this(2000, 1, 5, 10, 30);
}
// 有参构造方法
public Datetime(int year, int month, int day, int hour, int minute) {
this.year = year;
this.month = month;
this.day = day;
this.hour = hour;
this.minute = minute;
}
// getter and setter
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 int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
// 实例方法
// 对外提供一个可以将日期时间打印输出控制台的方法
public void print() {
System.out.println(this.year + "年" + this.month + "月" + this.day + "日" + this.hour + "时" + this.minute + "分");
}
}
package javaBasis;
public class DatetimeTest {
public static void main(String[] args) {
// 创建日期时间对象1
Datetime time1 = new Datetime();
time1.print();
// 创建日期时间对象2
Datetime time2 = new Datetime(2000, 7, 26, 11, 45);
time2.print();
}
}