java - 尺寸比较(周长/平方周长)等
问题描述
3 不同classes
的 1 用于处理Circle
实例,1 用于Square
实例,第 3 用于comparrisons
它们之间(main
)。在main
函数中,我找到circle
(between c1..c4
) 和square
(between s1...s5
) 并打印biggest circumference and area of them respectively
. [so circle-circle and square-square comparison]
!!!!注意:只有具有较大半径或边的那些具有最大的周长或面积,所以我只使用r
和如果我使用/a
是否可以返回(不,因为那我只会处理数字?).请纠正我。this
area
circumference
现在我想geometric shape
用biggest perimeter
. 我怎样才能做到这一点 ?我在哪里比较?新课?[方圆比较]
public class Circle {
public double x,y,r;
public double circumference() {
return 2*(3.14)*r;
}
public double area() {
return 3.14*r*r;
}
public Circle bigger(Circle c){
if(c.r>r) return c; else return this;
}
public Circle(double x, double y, double r) {
this.x=x;
this.y=y;
this.r=r;
}
}
public class Square {
public double x,y,a;
public double perimeter() {
return 4*a;
}
public double area() {
return a*a;
}
public Square bigger(Square s){
if(s.a>a) return s; else return this;
}
public Square(double x, double y, double a) {
this.x=x;
this.y=y;
this.a=a;
}
}
public class CircleAndSquareTest {
public static void main(String[] args) {
Circle c1 = new Circle(0.0,0.0,1.0);
Circle c2 = new Circle(1.0,0.0,2.0);
Circle c3 = new Circle(0.0,2.0,4.0);
Circle c4 = new Circle(1.0,3.0,1.0);
Circle cb = c1.bigger(c2).bigger(c3).bigger(c4);
System.out.println("The circle with the biggest circumference has:\n");
System.out.println("x-axis value: " + cb.x + " y-axis value: " + cb.y + " radius: " + cb.r+"\n");
Square s1 = new Square(0.0,0.0,1.0);
Square s2 = new Square(0.0,0.0,1.0);
Square s3 = new Square(0.0,0.0,5.0);
Square s4 = new Square(4.0,2.0,2.0);
Square s5 = new Square(0.0,0.0,1.0);
Square sb = s1.bigger(s2).bigger(s3).bigger(s4).bigger(s5);
System.out.println("The square with the biggest area has:\n");
System.out.println("x-axis value: " + sb.x + " y-axis value: " +
sb.y + " side: " + sb.a);
}
}
解决方案
首先声明一个基本接口,可能称为 Shape,它定义了一个方法getPerimeterLength()例如。
让所有形状类实现该接口和相应的方法。
现在,Square 也是 Shape,Circle 也是。然后你可以将所有这些对象放入一个 Shape 数组中。您迭代该数组,并确定具有最大周长长度的条目。然后您只需对该对象调用toString()即可。因为您还覆盖了所有类中的toString()方法以打印每个类内部具有的(不同的!)详细信息。
推荐阅读
- forms - 字段之间的空间 - Netsuite 地址表单
- database - 从 PostgreSQL 中的两个表创建表时传播索引
- python - 初始化类时,我如何知道 **kwargs 参数中存储了哪些参数?
- reactjs - 无法读取 Reactjs 中未定义的属性“scrollIntoView”
- arrays - 如何解析下面格式的json数组
- reactjs - 如何为 OutlinedInput 覆盖悬停 notchedOutline
- javascript - 如何在 chrome 扩展内容脚本中使用 google api?
- html - 与其他部门重叠的部门
- r - RStudio中的RMarkdown - 是否可以完全隐藏LaTeX预览
- android - 远程更改后使 Firestore 客户端缓存无效