public class date312 {
private int day;
private int month;
private int year;
date312(int day,int month,int year){
setDate(day,month,year);
printDate(this);
}
private void setDate(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
}
private void printDate(date312 d) {
System.out.println("today is" + d.year + "year" + d.month + "month" +d.day+ "day");
}
public static void main(String args[]){
date312 date=new date312(31,3,2005);
}
} 我理解的执行过程:1、创建了类date312的对象date,并赋初始值31,3,2005
2、执行date312的构造函数---调用setDate方法
3、将初值传送给day,month,year,在setDate方法中,将day,month,year的值赋给对象date的私有实例变量day,month,year
4、调用printDate方法,将对象date的值传送到类date312的对象d
5、输出对象d的day,month,year的值。
这样理解可以吗有什么要注意的地方吗。。请多指教啊。
private int day;
private int month;
private int year;
date312(int day,int month,int year){
setDate(day,month,year);
printDate(this);
}
private void setDate(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
}
private void printDate(date312 d) {
System.out.println("today is" + d.year + "year" + d.month + "month" +d.day+ "day");
}
public static void main(String args[]){
date312 date=new date312(31,3,2005);
}
} 我理解的执行过程:1、创建了类date312的对象date,并赋初始值31,3,2005
2、执行date312的构造函数---调用setDate方法
3、将初值传送给day,month,year,在setDate方法中,将day,month,year的值赋给对象date的私有实例变量day,month,year
4、调用printDate方法,将对象date的值传送到类date312的对象d
5、输出对象d的day,month,year的值。
这样理解可以吗有什么要注意的地方吗。。请多指教啊。
System.out.println("today is" + this.year + "year" + this.month + "month" +this.day+ "day");
}
this究竟有什么用途那????
比如:
public void show(
(这里有个隐含的参数会传进来,就是调用该方法的对象,
这也就是为什么静态方法中不能用this的缘故,
因为静态方法可以直接用类来调用,
如果也用this的话,那这个对象是什么呢??)
,String str,boolean b){};
private int day;
private int month;
private int year; date312(int day, int month, int year) {
setDate(day, month, year);
printDate();
} private void setDate(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
} private void printDate() {
System.out.println("today is " + this.year + " year " + this.month + " month "
+ this.day + " day ");
} public static void main(String args[]) {
date312 date = new date312(31, 3, 2005);
}
}把小A的代码贴全。
也就是说
private void setDate(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
以上代码可改为
date.day=day; date.month=month;date.year=year;
因为this代表的是类date312创建的对象date,也可以代表类date312创建的任何对象
但感觉这不是多此一举吗完全可以在方法内写明是哪个对象啊除非不知道传进来的是哪个对象。。才用this来指明传进来哪个对象就对哪个对象操作。。是吗???
date.day = day;
date.month = month;
date.year = year;
}
你说这样改?
你那个date是哪来的啊?
在方法内你这么引用外面的date啊
默认传进来的引用是名叫this,不叫date.所以lz不能直接用date。
private int day;
private int month;
private int year;
date312(int day,int month,int year)
{
setDate(this,day,month,year);
printDate(this);
}
private void setDate( date312 data,int day, int month, int year) //要先声明date,才能使用。默认的叫this,不叫date.
{
data.day = day;
data.month = month;
data.year = year;
}
private void printDate(date312 d) {
System.out.println("today is" + d.year + "year" + d.month + "month" +d.day+ "day");
}
public static void main(String args[]){
date312 date=new date312(31,3,2005);
}
}
this是代表任何传递进来的对象的传进来对象date就代表date相当于对象引用变量啊对不对??
JVM已经帮我们做了,
我们又何必自己传进去呢,
而且反而会浪费栈调用该方法的临时空间!