Point (double x1,double y1){ x=x1; y=y1;}这有没有具体的什么意思,我觉得这简直是多此一举?

bbs0422 2008-03-26 05:40:44
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){r=radius;}
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("c1 area:"+c1.area());
c1.setO(5,6);
c2.setRadius(9.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("c1 area = "+c2.area());
Point p1=new Point(5.2, 6.3);
System.out.println(c1.contains(p1));
System.out.println(c2.contains(new Point(10.0,9.0)));
}

}
...全文
371 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyy830606 2008-03-26
  • 打赏
  • 举报
回复
你要是分析不好,就去侃侃马士兵的视频讲座,很有收获的,尤其是第三章,面向对象,内存分析,很透彻
dyy830606 2008-03-26
  • 打赏
  • 举报
回复
在Java中,如果你有一个重载了的构造函数,那么默认的无参构造函数就不存在了。
java中能够有多个构造函数,其重载就是其参数个数,或者参数的类型不同,有多个构造函数,当然其他方法也构成了重载.
我觉得构造函数说白了就是给类的属性初始化.
chendabian 2008-03-26
  • 打赏
  • 举报
回复
1 5楼 说的很对
cmm_brandon 2008-03-26
  • 打赏
  • 举报
回复
这个东西重载了你的构造函数啊。
在Java中,如果你有一个重载了的构造函数,那么默认的无参构造函数就不存在了。
所以如果你这样写, 那么你就不能 用 Point p = new Ponit()来构造Point对象了。
kingssq 2008-03-26
  • 打赏
  • 举报
回复
带参数的构造函数,用你传的参数来初始化x,y。这里没有声明无参数的构造函数,传参数具有强制性
bbs0422 2008-03-26
  • 打赏
  • 举报
回复
什么叫多选择的方式?能说具体点吗?
mdog26 2008-03-26
  • 打赏
  • 举报
回复
sun给用户的一种多选择的方式
gryes 2008-03-26
  • 打赏
  • 举报
回复
Point (double x1,double y1){
x=x1;
y=y1;
}
是Point 的构造方法,用来初始化这个类的
初始化一个类是构造方法的一个典型用法

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧