日期:2014-05-20 浏览次数:21246 次
//要改的地方不少,构造方法都要改
class Circle{   
  Point yuanxin;
  double radius;
  final double PI = 3.14; //一个圆自身的属性  
    
  Circle(Point p,double r){
      yuanxin = p;
      radius = r;
  } //构造方法构造一个圆心和半径   
    
  Circle(double r){
      yuanxin = new Point(0,0);
      radius = r;
  } //想构造一个以圆心为原点的圆
    
  void compute(){
      double zhou;
      zhou=2*PI*radius;
      System.out.println("圆的周长是"+zhou);
  }
  
  void aera(){
      double mianji;
      mianji=PI*radius*radius;
      System.out.println("圆的面积是"+mianji);
  } //这部分基本没用上,只是想表达圆而已
  boolean contains(Point p){ //这部分有问题,我不知道boolean怎么用???
      if(((p.x-yuanxin.x)*(p.x-yuanxin.x) +(p.y-yuanxin.y)*(p.y-yuanxin.y)) <= radius*radius){
          System.out.println(p.x+"  "+p.y+"  "+yuanxin.x+"  "+yuanxin.y+"  "+radius);
          System.out.println("这个点在圆内");
          return true;
      }else{
          System.out.println(p.x+"  "+p.y+"  "+yuanxin.x+"  "+yuanxin.y+"  "+radius);
          System.out.println("这个点不在园内");
          return false;
      }
  }
}
class Point{   
  double x;
  double y;
  
  Point(double x,double y){
    this.x = x;
    this.y = y;
  }
}
public class TestCircle {
  public static void main(String args[]){
      Circle c1=new Circle(3); //以原点为圆心
      Point p1=new Point(2,4);
      System.out.println(c1.contains(p1));
        
      Point p2=new Point(2,4);
      Circle c2=new Circle(p2,1);
      Point p3=new Point(1,2);
      System.out.println(c2.contains(p3));
        
  }
}