public class MyDate {
private int day = 1;
private int month = 1;
private int year = 2000;
public MyDate(int day, int month, int year)
{
this.day = day;
this.month = month;
this.year = year;
}
public MyDate(MyDate date)
{
this.day = date.day;
this.month = date.month;
this.year = date.year;
}
/*
here why do we need to use Class name before the method name?
*/
public MyDate addDays(int moreDays)
{
// "this" is referring to which object and why?
MyDate newDate = new MyDate(this);
newDate.day = newDate.day + moreDays;
// Not Yet Implemented: wrap around code...
return newDate;
}
public String toString()
{
return "" + day + "-" + month + "-" + year;
}
}
答案 0 :(得分:1)
this
将引用您将创建的当前对象实例。在任何java方法中,this
将始终保持对其对象实例的引用。
一个例子 -
MyDate myDate = new MyDate(10, 10, 2012);
myDate.addDays(10);
您想知道的行将指向此处创建的newDate
对象。这一行 -
MyDate newDate = new MyDate(this);
将使用此构造函数 -
public MyDate(MyDate date) {
this.day = date.day;
this.month = date.month;
this.year = date.year;
}
创建并返回一个新对象,向其传递对当前对象实例的引用,以便它可以复制其日,月和年值。
答案 1 :(得分:1)
答案1。 在方法名称之前使用类名意味着您将返回MyDate类型的引用变量。它只是一个返回类型。
回答2。 这指的是您的MyDate类对象的当前对象。 为了使用'new'关键字创建一个新对象,您可以使用'this'作为快捷方式。但是,您应该在您尝试引用对象的类中找到'this'。
答案 2 :(得分:0)
here why do we need to use Class name before the method name.
因为这是一个返回MyDate
"this" is referring to which object and why?
this指的是当前对象
答案 3 :(得分:0)
这里为什么我们需要在方法名称之前使用类名。
您正在返回一个MyDate
对象,该类名是该函数的返回类型。
“this”指的是哪个对象以及为什么?
this
始终引用调用该方法的当前对象。它看起来是将当前的MyDate
对象复制到一个新对象中并将其返回。