您的位置:首页 > 编程语言 > C语言/C++

Java练笔:一个类作为另一个类的参数调用。顺带训练数据在栈和堆的走向。思考若用C++写,delete应该怎么写

2016-02-25 02:40 585 查看
class Point{
private double x = 0,y = 0;

Point(double i,double j){
x=i;
y=j;
}

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

void setY(double j){
y = j;
}

double getX(){
return x;
}

double getY(){
return y;
}
}
//定义一个Point类,含有设定,获取平面坐标的方法。
class Circle{
private Point o;
private double radius;

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

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

void contains(Point aim){
double xCoord = o.getX() - aim.getX();
double yCoord = o.getY() - aim.getY();
if ((xCoord * xCoord + yCoord * yCoord) > (radius * radius))
System.out.println("点在圆外");else
if ((xCoord * xCoord + yCoord * yCoord) < (radius * radius))
System.out.println("点再圆内");else
if ((xCoord * xCoord + yCoord * yCoord) == (radius * radius))
System.out.println("点在圆上");
}

void setDot(double _x,double _y){
o.setX(_x);
o.setY(_y);
}
//创建Circle类,把Point类作为参数传入复制构造函数。顺便练习overload。高一数学没学好,谷歌了圆的一般定义。
void setRadius(double _r){
radius = _r;
}

void reSet(double _x,double _y,double _r){
o.setX(_x);
o.setY(_y);
radius = _r;
}
Point getDot(){
return o;
}

double getRadius(){
return radius;
}

double area(){
return (3.14 * radius * radius);

}

//做了重设圆的参数,及相关细化参数的方法。面积计算
}

public class TestCircle {

public static void main(String[] args) {
Circle c1 = new Circle(new Point (1,2),2);
Circle c2 = new Circle(5);

System.out.println("第一个圆的坐标为:(" + c1.getDot().getX() + "," + c1.getDot().getY() + ")" + "," + c1.getRadius());
System.out.println("第二个圆的坐标为:(" + c2.getDot().getX() + "," + c2.getDot().getY() + ")" + "," + c2.getRadius());
System.out.println("第一个圆的面积为:" + c1.area());
System.out.println("第二个圆的面积为:" + c2.area());

c1.setDot(5,6);
c2.setRadius(9);
System.out.println("重设后第一个圆的坐标为:(" + c1.getDot().getX() + "," + c1.getDot().getY() + ")" + "," + c1.getRadius());
System.out.println("重设后第二个圆的坐标为:(" + c2.getDot().getX() + "," + c2.getDot().getY() + ")" + "," + c2.getRadius());
System.out.println("重设后第一个圆的面积为:" + c1.area());
System.out.println("重设后第二个圆的面积为:" + c2.area());

c1.reSet(7, 9, 12);
c2.reSet(10, 9, 20);
System.out.println("!重设后第一个圆的坐标为:(" + c1.getDot().getX() + "," + c1.getDot().getY() + ")" + "," + c1.getRadius());
System.out.println("!重设后第二个圆的坐标为:(" + c2.getDot().getX() + "," + c2.getDot().getY() + ")" + "," + c2.getRadius());
System.out.println("!重设后第一个圆的面积为:" + c1.area());
System.out.println("!重设后第二个圆的面积为:" + c2.area());

Point p = new Point(5.2,6.3);
c1.contains(p);
c2.contains(new Point(10,9));
}
//验证函数功能是否正常调用,参数是否正常传入
}


练手,顺带训练基于《java编码规则》的写代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息