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;
}
}
问问题
596 次
4 回答
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;
}
创建并返回一个新对象,将一个对当前对象实例的引用传递给它,以便它可以复制其日、月和年值。
于 2013-01-04T06:33:25.370 回答
1
回答 1. 在方法名之前使用类名意味着您将返回 MyDate 类型的引用变量。它只是一个返回类型。
回答 2。 this 指的是当前对象,即您的 MyDate 类对象。为了使用“new”关键字创建一个新对象,您可以使用“this”作为快捷方式。但是应该在您尝试引用对象的类中找到“this”。
于 2013-01-04T06:33:30.683 回答
0
here why do we need to use Class name before the method name.
因为这是一个返回类型引用的方法MyDate
"this" is referring to which object and why?
这是指当前对象
于 2013-01-04T06:29:16.730 回答
0
这里为什么我们需要在方法名之前使用类名。
您正在返回一个MyDate
对象,该类名是函数的返回类型。
“this”指的是哪个对象,为什么?
this
总是指调用方法的当前对象。它看起来是将当前MyDate
对象复制到一个新对象中并返回它。
于 2013-01-04T06:30:36.813 回答