刚才那个..郁闷死..我都糊涂了.饶的我
刚才那题.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