日期:2014-05-20  浏览次数:20703 次

刚才那个..郁闷死..我都糊涂了.饶的我
刚才那题.class   hu
{
private   int   age;
void   fun()
{
System.out.println( "hufang   age   is "+age);
}
void   fun1(hu   a)
{
a.fun();

}


public   static   void   main(String   []   args)
{
hu   hudawei   =new   hu();
hu   huna=new   hu();
hudawei.fun1(this);
}
}
在编写fun1的时候对象hudawei还没有产生..那么我把huna作为参数传递为啥可以啊?
那时候huna也没产生呢吧?我还没弄明白脑袋糊涂啊.哎!

------解决方案--------------------
彻底无语,楼主还要加油

提示一下:fun1和fun和main都在类hu里面,Java是面向对象语言
------解决方案--------------------
把this改成huna
------解决方案--------------------
汗~~~~~~~~~~~~~~~~

public static void main(String [] args)
{
hu hudawei =new hu();
hu huna=new hu();
hudawei.fun1(this);
}

this 指针是hudawei对象的~~~,程序从你的main函数开始执行~~~~~~~~!

------解决方案--------------------
this 是Java使用的一个有特定意义的引用,它指向当前对象自身。
示例:
public class MyDate{
private int day, month, year;
public MyDate(int day, int month, int year){
this.day=day;
this.month=month;
this.year=year;
}
public String tommorrow(){
this.day=this.day+1;
return this.day+ "/ " +this.month + "/ " + this.year;
}

public static void main(String[] args){
MyDate md = new MyDate(12,4,2004);
System.out.println(md.tommorrow());
}
}


书上原例,说明this只能指向当前对象.
lz的那句hudawei.fun1(this);是在class lan中。
那这个this,是指向lan的对象吗????

------解决方案--------------------
lz如果用eclipse编写代码,就会发现hudawei.fun1(this);中的this报错。

说“不能在静态上下文中使用this "

是因为main函数是static的,它不能调用这个动态的this

因为静态方法的调用不是通过实例对象进行的,所以在静态方法中没有this指针,不能访问所属类的非静态变量和方法。



------解决方案--------------------
如果lz是Java的初学者(和我一样),我个人推荐你买《Java语言程序设计》这本书,适合于初学者,内容不是太深,却讲得还比较多。

是清华大学出版社 朗波 编著 书后定价是38.00