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编码规则》的写代码。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树