lab8 finished
This commit is contained in:
89
lab/lab8/Question6/Shape.java
Normal file
89
lab/lab8/Question6/Shape.java
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Author: CHEN Yongyuan (Walter) 1930006025 from OOP(1007)
|
||||
* Date: 2022-04-15
|
||||
* Description: This is the abstract Shape class.
|
||||
*/
|
||||
|
||||
public abstract class Shape {
|
||||
/*
|
||||
* Store the position of the central point of the shape.
|
||||
*/
|
||||
private double x;
|
||||
private double y;
|
||||
|
||||
/**
|
||||
* Constructor of the Shape class.
|
||||
*
|
||||
* @param x the x-coordinate of the central point of the shape.
|
||||
* @param y the y-coordinate of the central point of the shape.
|
||||
*/
|
||||
public Shape(double x, double y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter of the x coordinate of the central point of the shape.
|
||||
*
|
||||
* @return the x coordinate of the central point of the shape.
|
||||
*/
|
||||
public double getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter of the y coordinate of the central point of the shape.
|
||||
*
|
||||
* @return the y coordinate of the central point of the shape.
|
||||
*/
|
||||
public double getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Move the central point of the shape by amounts dx and dy.
|
||||
*
|
||||
* @param dx the amount of movement in x direction.
|
||||
* @param dy the amount of movement in y direction.
|
||||
*/
|
||||
public void move(double dx, double dy) {
|
||||
x += dx;
|
||||
y += dy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract method to calculate the area of the shape.
|
||||
*
|
||||
* @return the area of the shape.
|
||||
*/
|
||||
public abstract double area();
|
||||
|
||||
/**
|
||||
* Abstract method to resize the shape.
|
||||
*
|
||||
* @param newSize the new size of the shape.
|
||||
* @throws CannotResizeException
|
||||
*/
|
||||
public abstract void resize(double newSize) throws CannotResizeException;
|
||||
|
||||
/**
|
||||
* Test.
|
||||
*/
|
||||
public static void testShape() {
|
||||
Shape s = new Shape(3.9, 4.2) {
|
||||
@Override
|
||||
public double area() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resize(double newSize) {
|
||||
}
|
||||
};
|
||||
System.out.println(s.getX() == 3.9);
|
||||
System.out.println(s.getY() == 4.2);
|
||||
s.move(1.0, 2.0);
|
||||
System.out.println(s.getX() == 4.9);
|
||||
System.out.println(s.getY() == 6.2);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user