From 707e16dbe1e43aa6b23944a828badd2cf1b8a473 Mon Sep 17 00:00:00 2001 From: p5wft6kpg <2734174142@qq.com> Date: Sat, 25 Oct 2025 14:25:16 +0800 Subject: [PATCH] ADD file via upload --- CircleToSquareConverter.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 CircleToSquareConverter.java diff --git a/CircleToSquareConverter.java b/CircleToSquareConverter.java new file mode 100644 index 0000000..e5846f3 --- /dev/null +++ b/CircleToSquareConverter.java @@ -0,0 +1,25 @@ +public class CircleToSquareConverter implements ShapeConverter { + @Override + public Square convert(Circle source) { + if (!canConvert(source)) { + throw new IllegalArgumentException("Cannot convert null circle"); + } + + // Calculate side length of square with equal area to the circle + double circleArea = source.calculateArea(); + double squareSide = Math.sqrt(circleArea); + + // Create square with the same color as the circle + return new Square(squareSide, source.getColor()); + } + + @Override + public boolean canConvert(Circle source) { + return source != null && source.getRadius() > 0; + } + + @Override + public String getConversionDescription() { + return "Converts a circle to a square with equal area and same color"; + } +} \ No newline at end of file