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

来源:互联网 发布:nginx获取header值 编辑:程序博客网 时间:2024/04/29 13:59
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编码规则》的写代码。
0 0
原创粉丝点击