当前位置: 代码迷 >> Eclipse >> eclipse中运行的程序与预期结果不同,该如何解决
  详细解决方案

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

热度:48   发布时间:2016-04-23 14:12:34.0
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());
  相关解决方案