lab8 finished
This commit is contained in:
63
lab/lab8/Question6/Circle.java
Normal file
63
lab/lab8/Question6/Circle.java
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Author: CHEN Yongyuan (Walter) 1930006025 from OOP(1007)
|
||||
* Date: 2022-04-14
|
||||
* Description: Circle class inherit from Shape class
|
||||
*/
|
||||
|
||||
public class Circle extends Shape {
|
||||
private double radius;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param x the x coordinate of the center of the circle
|
||||
* @param y the y coordinate of the center of the circle
|
||||
* @param radius the radius of the circle
|
||||
*/
|
||||
public Circle(double x, double y, double radius) {
|
||||
super(x, y);
|
||||
this.radius = radius;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the area of the circle.
|
||||
*
|
||||
* @return the area of the circle
|
||||
*/
|
||||
@Override
|
||||
public double area() {
|
||||
return Math.PI * radius * radius;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resizing a circle cahnges its radius to be newRadius.
|
||||
*
|
||||
* @param newRadius
|
||||
*/
|
||||
@Override
|
||||
public void resize(double newRadius) {
|
||||
radius = newRadius;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test.
|
||||
*/
|
||||
public static void testCircle() {
|
||||
Circle c = new Circle(1.2, 3.4, 4.0);
|
||||
// getX, getY, and move are inherited from Shape.
|
||||
// area and resize come from Circle itself.
|
||||
System.out.println(c.getX() == 1.2);
|
||||
System.out.println(c.getY() == 3.4);
|
||||
System.out.println(c.area() == Math.PI * 16.0);
|
||||
// Move the circle. The area does not change.
|
||||
c.move(7.8, 9.0);
|
||||
System.out.println(c.getX() == 9.0);
|
||||
System.out.println(c.getY() == 12.4);
|
||||
System.out.println(c.area() == Math.PI * 16.0);
|
||||
// Resize the circle. The area changes but not the position.
|
||||
c.resize(8.0);
|
||||
System.out.println(c.getX() == 9.0);
|
||||
System.out.println(c.getY() == 12.4);
|
||||
System.out.println(c.area() == Math.PI * 64.0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user