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

Java初学调试问题
程序出现问题:TestCircle.java:79: 需要 ')'
  System.out.println("c1:"+c1.getO().getX()+","+c1.getO().getY()+","c1.getRadius());

TestCircle.java:79: 非法的表达式开始
  System.out.println("c1:"+c1.getO().getX()+","+c1.getO().getY()+","c1.getRadius());

TestCircle.java:79: 需要 ';'
  System.out.println("c1:"+c1.getO().getX()+","+c1.getO().getY()+","c1.getRadius());

这个我不知道是怎么回事?
找了一下自己的源代码,发现没有少括号。各位高手帮一下我!~~万分感谢~

源代码如下:
class Point{
private double x;
private double y;

Point(double x1, double y1){ // 构造函数
x=x1;
y=y1;
}

public double getX(){ // 返回x坐标
return x;
}

public double getY(){ // 返回y坐标
return y;
}

public void setX(double _x){ // 设置x坐标
x=_x;
}

public void setY(double _y){ // 设置y坐标
y=_y;
}
}

class Circle{
private Point o;
private double radius;

Circle(Point _o, double _r){ // 构造函数
o=_o; // 将_o对象的引用交给了o,而不是另外复制了一个对象
radius=_r;
}

Circle(double _r){ // 构造函数
o=new Point(0.0, 0.0);
radius=_r;
}

boolean contains(Point p){ // 判断p点是否包含在圆中
double x=o.getX()-p.getX();
double y=o.getY()-p.getY();
if ((x*x+y*y)<=radius*radius) return true; // 类的私有成员不可以访问
else return false;
}

public void setO(Point p){ // 设置圆心的一种方法
o.setX(p.getX());
o.setY(p.getY());
}

public void setO(double x, double y){ // 设置圆心的另一种方法
o.setX(x);
o.setY(y);
}

public Point getO(){ // 返回圆心
return o;
}

public double getRadius(){ // 返回半径
return radius;
}

public void setRadius(double r){ // 设置半径
radius=r;
}

public double area(){ // 求面积
return (3.14*radius*radius);
}
}

public class TestCircle{
public static void main(String[] args){
Circle c1= new Circle(new Point(3.0, 4.0), 5.67);
Circle c2= new Circle(7.978);
System.out.println("c1:"+c1.getO().getX()+","+c1.getO().getY()+","c1.getRadius()); // 显示c1的成员变量
System.out.println("c2:"+c2.getO().getX()+","+c2.getO().getY()+","c2.getRadius()); // 显示c2的成员变量
System.out.println("c1 areas: "+c1.area()); // 计算c1、c2的面积
System.out.println("c2 areas: "+c2.area());
c1.setO(5,6); // 给c1设置圆心
c2.setRadius(23.9); // 给c2设置半径
System.out.println("c1:"+c1.getO().getX()+","+c1.getO().getY()+","c1.getRadius()); // 显示c1的成员变量
System.out.println("c2:"+c2.getO().getX()+","+c2.getO().getY()+","c2.getRadius()); // 显示c2的成员变量
System.out.println("c1 area:"+c1.area());
System.out.println("c2 area:"+c2.area());

Point p1=new Point(5.3, 6.3);
System.out.println(c1.contains(p1));
System.out.println(new Point(11.9,4.6));
}
}

------解决方案--------------------
后面少了个加号,改成这样你再试试。
System.out.println("c1:"+c1.getO().getX()+","+c1.getO().getY()+","+c1.getRadius());