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

this问题

热度:163   发布时间:2006-10-16 20:11:47.0
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.b=b;
tir.c=c;
}

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

}
}
编译出错
改成如下就可以我知道是this的缘故 但我总是弄不清楚this是怎么一回事 望高人指点
public class tirgon {
double a,b,c;
tirgon(double a,double b,double c)
{
setABC(this,a,b,c);
}
void setABC(tirgon tir,double a,double b,double c)
{
tir.a=a;
tir.b=b;
tir.c=c;
}

}
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  double  

----------------解决方案--------------------------------------------------------
第一个程序编译出错是public写错位置了 应该在testtirgon前面
而且如果改好了 也无法得到正确的答案 因为
tirgon tir=new tirgon();
又有一个别的对象了 把那几个值付给了那个tir了
所以自己的a,b,c仍然是0
不能得到正确答案

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

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;

}

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

}
}
这样就可以了!

[此贴子已经被作者于2006-10-16 20:57:38编辑过]


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

public class tirgon {
double a,b,c;
tirgon(double a,double b,double c)
{
setABC(a,b,c);
}
void setABC(double a,double b,double c)
{

this.a=a;
this.b=b;
this.c=c;/this 为什么能指向a,b,c呢?
}

}
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(double a,double b,double c)
{
setABC(a,b,c);
}
void setABC(double a,double b,double c)
{

this.a=a;
this.b=b;
this.c=c;/this 为什么能指向a,b,c呢?//建议你去看看this的用法,this是表示当请对象的引用
}

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

}
}


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

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+",");

}
}
还有public 应该在testtirgon类前面


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

哈哈,还是上楼的仔细啊!我记得我在我的记事本里面已经把上面的问题改过来了!


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

其实this就是对使用者的对象的引用,因为它不知道它的对象名字叫什么,所以统一用this来代替,表示自己


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

其实this就是对使用者的对象的引用,因为它不知道它的对象名字叫什么,所以统一用this来代替,表示自己


----------------解决方案--------------------------------------------------------
面向对象编程中
this 这个关键字
它主要引用本身的对象的属性和方法之类的东东
super 这个关键字
它主要引用父类的对象的属性和方法之类的东东


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