读书人

eclipse中运行的程序与预期结果不同,该

发布时间: 2012-03-01 10:25:46 作者: rapoo

eclipse中运行的程序与预期结果不同
class Point {
private double x;

private double y;

Point(double x1, double y1) {
x = x1;
y = y1;
}

public double getX() {
return x;
}

public double getY() {
return y;
}

public void setX(double i) {
x = i;
}

public void setY(double i) {
y = i;
}
}

class Circle {
private Point o;

private double radius;

Circle(Point p, double r) {
o = p;
radius = r;
}

Circle(double r) {
o = new Point(0.0, 0.0);
radius = r;
}

boolean contains(Point p) {
double x = p.getX() - o.getX();
double y = p.getY() - o.getY();
if (x * x + y * y > radius * radius)
return false;
else
return true;
}

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(1.0, 2.0), 2.0);
Circle c2 = new Circle(5.0);
System.out.println("c1:(" + c1.getO().getX() + "," + c1.getO().getY()
+ ")," + c1.getRadius());
System.out.println("c2:(" + c2.getO().getX() + "," + c2.getO().getY()
+ ")," + c2.getRadius());
System.out.println("c1 area = " + c1.area());
System.out.println("c2 area = " + c2.area());
c1.setO(5,6);
c2.setRadius(9.0);
System.out.println("c1:(" + c1.getO().getX() + "," + c2.getO().getY()
+ ")," + c1.getRadius());
System.out.println("c2:(" + c2.getO().getX() + "," + c2.getO().getY()
+ ")," + c2.getRadius());
System.out.println("c1 area = " + c1.area());
System.out.println("c2 area = " + c2.area());

Point p1 = new Point(5.2, 6.3);
System.out.println(c1.contains(p1));
System.out.println(c1.contains(new Point(10.0, 9.0)));
}
}
结果为c1:(1.0,2.0),2.0
c2:(0.0,0.0),5.0
c1 area = 12.56
c2 area = 78.5
c1:(5.0,0.0),2.0//此行的预期结果为c1:(5.0,6.0),2.0,不知错出在哪里,哪位高手帮我解答
c2:(0.0,0.0),9.0
c1 area = 12.56
c2 area = 254.34
true
false


[解决办法]
楼主你的代码写错了吧,System.out.println("c1:(" + c1.getO().getX() + "," + c2.getO().getY()
+ ")," + c1.getRadius());
第二个应该是c1.get吧,你写的是c2
[解决办法]
楼主,你自己敲错了一行代码,大约在90-100行左右
也就是你很诧异的那个输出结果的那个println一行

Java code
System.out.println("c1:(" + c1.getO().getX() + "," + c2.getO().getY()                + ")," + c1.getRadius()); 

读书人网 >Eclipse开发

热点推荐