当前位置: 代码迷 >> Java相关 >> this问题
  详细解决方案

this问题

热度:112   发布时间:2006-10-17 21:39:57.0

class tirgon {
double a,b,c;
tirgon(){}
tirgon(double a,double b,double c)
{
setABC(a,b,c);
}
void setABC(double a,double b,double c)
{
tirgon tir=new tirgon();//生成了第二个对象
tir.a=a;
tir.b=b;
tir.c=c;
System.out.println("三角形一是:"+tir.a+","+tir.b+","+tir.c+",");
}

}
public class testtirgon
{
public static void main(String args [])
{
tirgon tir=new tirgon(3,4,5);//第一个tir对象
System.out.println("三角形二是:"+tir.a+","+tir.b+","+tir.c+",");

}
}
这样看结果比较明显!


----------------解决方案--------------------------------------------------------
this可以出现在类的实例方法中,代表使用该方法的当前对象
也可以出现在构造方法中,代表使用该构造方法创建的对象
----------------解决方案--------------------------------------------------------
我在你的程序里没看到一个this,
this的意思就是代表当前类,传的是对像,如果你不加this也行,但你的参数名不要取成一样,如果取一个就要加个this让系统区别开来,你可以注意一下你的编程工具,当如果不加this,点到一个对像名时,另一个也会变成同样的颜色,这就表示成一个对像,而目的却应该是这样,有一个对像是类本身的,所以以 this加以区分
----------------解决方案--------------------------------------------------------

我有另一个结论.并不是this问题.各位请看看
public class tirgon {
double a,b,c;
tirgon(){}
tirgon(double a,double b,double c)
{
setABC(a,b,c);
}
void setABC(double a,double b,double c)
{
// tirgon tir=new tirgon(); 这一句是多余的
tir.a=a; //而这里的tir也是多余的
tir.b=b; //那么程序就是a=a;b=b;c=c;
tir.c=c; //试着把void setABC(double a,double b,double c)
//改成//试着把void setABC(double a1,double b1,double c1)
然后用a=a1; b=b1; c=c1;就什么都明白了

}

}
class testtirgon
{
public static void main(String args [])
{
tirgon tir=new tirgon(3,4,5);
System.out.println("三角形的边是:"+tir.a+","+tir.b+","+tir.c+",");

}
}


----------------解决方案--------------------------------------------------------

它实际是 变量名之间的冲突;神经塔前辈,你说我说的可正确?


----------------解决方案--------------------------------------------------------

public class tirgon {
double a,b,c;
tirgon(){}
tirgon(double a,double b,double c)
{
setABC(a,b,c);
}
void setABC(double a,double b,double c)
{
/*tirgon tir=new tirgon();*/ /* 在这儿创建个实例做什么?*/
this.a=a;
this.b=b;
this.c=c;
}

}
public class testtirgon
{
public static void main(String args [])
{
tirgon tir=new tirgon(3,4,5);
System.out.println("三角形的边是:"+tir.a+","+tir.b+","+tir.c+",");

}
}


----------------解决方案--------------------------------------------------------
  相关解决方案