diff --git a/Square.java b/Square.java new file mode 100644 index 0000000..e340d78 --- /dev/null +++ b/Square.java @@ -0,0 +1,57 @@ +public class Square implements Shape, Resizable { + private double side; + private String color; + + public Square(double side, String color) { + this.side = side; + this.color = color; + } + + @Override + public double calculateArea() { + return side * side; + } + + @Override + public double calculatePerimeter() { + return 4 * side; + } + + @Override + public String getColor() { + return color; + } + + @Override + public void setColor(String color) { + this.color = color; + } + + public double getSide() { + return side; + } + + public void setSide(double side) { + this.side = side; + } + + @Override + public void resize(double factor) { + if (factor <= 0) { + throw new IllegalArgumentException("Resize factor must be positive"); + } + this.side *= factor; + } + + @Override + public void resizeWidth(double factor) { + // For square, resizing width also resizes height to maintain square property + resize(factor); + } + + @Override + public void resizeHeight(double factor) { + // For square, resizing height also resizes width to maintain square property + resize(factor); + } +} \ No newline at end of file