class Circle
{
private double radius;
public Circle(double r)
{
radius=r;
}
public Circle compare(Circle cir)
{
//程序代码




}
}
class TC
{
public static void main(String[] args)
{
Circle cir1=new Circle(1.0);
Circle cir2=new Circle(2.0);
Circle cir;
cir=cir1.compare(cir2);
if(cir1==cir)
System.out.println("圆1的半径比较大");
else
System.out.println("圆2的半径比较大");
}
}

解决方案 »

  1.   

    public Circle compare(Circle cir) {
    if (Double.compare(this.radius, cir.radius) == -1) {
    return cir;
    } else
    return this;
    }
      

  2.   

    所以方法最好改为
    public int compare(Circle cir) {
    return Double.compare(this.radius, cir.radius);
    }
    -1表示2比1大,1表示1比2大,0表示相等。
      

  3.   

    public int compare(Circle cir) { 
    if(null == cir)return -1;
    return Double.compare(this.radius, cir.radius); 
      

  4.   

    我忘记了,不可以添加其他函数?这样完善不?根据你们的启发,写出来的
    public Circle compare(Circle cir) 

    //程序代码 
     return this.radius>cir.radius?this:cir;} 
      

  5.   


    不会通过编译的,你的方法定义要求返回一个Circle,而你实际上内部返回一个double,类型不对,编译通不过的
      

  6.   


    请教不敢,大部分我也是baidu或google来的,哈哈哈