๐ด๐ง๐ก๐ฉ
์ด๋ฒ ์๊ฐ์๋ ์ ๋ฒ์ ํ์ตํ ๋ด์ฉ์ ํ ๋๋ก Java๋ฅผ ํ์ฉํ์ฌ ๋ํ ๋ฉด์ ๊ตฌํ๊ธฐ๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฉด์ ๊ณ์ฐ๊ธฐ์ ๊ฐ์ฒด๋ผ๋ ๊ฐ๋ ์ ์ ์ฉํ์ฌ, ์ค๋ฒ๋ก๋ฉ์ ํตํด ๋ค์ํ ๋ํ์ ๋ฉด์ ์ ๊ณ์ฐํด ๋ณด๊ฒ ์ต๋๋ค.
1. ์ฐ์ ํจํค์ง๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์. ํจํค์ง๋ช ์ ์ํ์๋ ๊ฑธ๋ก ํ์ ๋ ๋ฉ๋๋ค
์ ๋ shapeCalculator๋ก ํ์ต๋๋ค.
2. ๊ธฐ์กด์ฒ๋ผ ํด๋์ค๋ฅผ ๋ ๊ฐ๋ก ๋๋๊ฒ ์ต๋๋ค.
Main ํด๋์ค์ ShapeAreaCalculator ํด๋์ค ๋ ๊ฐ๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
3. ์ด์ ShapeAreaCalculatorํด๋์ค๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค.
์ค๋ฒ๋ก๋ฉ ์ค์ต์ด๊ธฐ ๋๋ฌธ์, ํ๋๋ ์์ฑ์ ์์ด ๋ฉ์๋๋ง ์ ์ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฒด์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๐ก
1. ๋งค๊ฐ๋ณ์๋ก ํ๋๋ง ์ ๋ ฅ ์ ์์ ๋ฉด์ ์ ๊ตฌํฉ๋๋ค.
2. ๋งค๊ฐ๋ณ์๋ก ๋ ๊ฐ๋ฅผ ์ ๋ ฅ ์ ์ง์ฌ๊ฐํ์ ๋ฉด์ ์ ๊ตฌํฉ๋๋ค.
3. ๋งค๊ฐ๋ณ์๋ก ์ธ ๊ฐ๋ฅผ ์ ๋ ฅ ์ ์ฌ๋ค๋ฆฌ๊ผด์ ๋ฉด์ ์ ๊ตฌํฉ๋๋ค.
1-1) ๋ฐ์ง๋ฆ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ต๋๋ค.
2-1) ๋๋น์ ๋์ด๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ต๋๋ค.
3-1) ๋ ๋ฐ๋ณ๊ณผ ๋์ด๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ต๋๋ค.
๋ฉ์๋๋ช ์ calculateArea๋ก ํ์ฌ 3๊ฐ์ ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ก๋ฉํ์ฌ ์ ์ํ๊ฒ ์ต๋๋ค.
๋ณด์๋ค์ํผ ๋ฉ์๋๋ช
์ ๋์ผํ์ง๋ง, ๋งค๊ฐ๋ณ์์ ๊ฐ์๊ฐ ๋ค๋ฆ
๋๋ค.
package shapeCalculator;
public class ShapeAreaCalculator {
// ์์ ๋ฉด์
// ๋ฐ์ง๋ฆ
public double calculateArea(double radius) {
return Math.PI * radius * radius;
}
// ์ง์ฌ๊ฐํ์ ๋ฉด์
// ๋๋น, ๋์ด
public double calculateArea(double width, double height) {
return width * height;
}
// ์ฌ๋ค๋ฆฌ๊ผด์ ๋ฉด์
// ๋ ๋ฐ๋ณ, ๋์ด
public double calculateArea(double base1, double base2, double height) {
return 0.5 * (base1 + base2) * height;
}
}
4. ์ด์ Main ํด๋์ค์์ ShapeAreaCalculator ๊ฐ์ฒด๋ฅผ ์์ฑํด, ๋ํ์ ๋ฉด์ ์ ๊ตฌํด๋ณด๊ฒ ์ต๋๋ค.
package shapeCalculator;
public class Main {
public static void main(String[] args) {
ShapeAreaCalculator cal = new ShapeAreaCalculator();
// ์
double circleArea = cal.calculateArea(5.0);
// ๋ฐ์ง๋ฆ์ด 5์ธ ์
System.out.println("Circle Area: " + circleArea);
// ์ง์ฌ๊ฐํ
double rectangleArea = cal.calculateArea(4.0, 6.0);
// ๋๋น๊ฐ 4, ๋์ด๊ฐ 6์ธ ์ง์ฌ๊ฐํ
System.out.println("Rectangle Area: " + rectangleArea);
// ์ฌ๋ค๋ฆฌ๊ผด
double trapezoidArea = cal.calculateArea(3.0, 5.0, 4.0);
// ๋ฐ๋ณ1์ด 3, ๋ฐ๋ณ2๊ฐ 5, ๋์ด๊ฐ 4
System.out.println("Trapezoid Area: " + trapezoidArea);
}
}
๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ต๋๋ค.
์ด๋ฒ ์๊ฐ์๋ ์ค์ต์ ํตํด ์ค๋ฒ๋ก๋ฉ์ ๋ํด ์์๋ดค์ต๋๋ค.
์ค๋ฒ๋ก๋ฉ์ ๋ฉ์๋ ์ด๋ฆ์ ์ผ๊ด๋๊ฒ ์ ์งํ๋ฉด์ ๋ค์ํ ์ ๋ ฅ์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ์ฌ
์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ฐ์ฑ์ ๋์ด๋ ์ค์ํ ๊ฐ๋ ์ ๋๋ค.
์ด๋ฅผ ํตํด ๋ ์ง๊ด์ ์ด๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ค๋ ํ์ตํ ๋ด์ฉ์ ์ง์ ์ค์ตํด ๋ณด์๋ฉด ๋ง์ ๋์์ด ๋์ค ๊ฒ๋๋ค.
๋ค์ํ ์ํฉ์์ ์ค๋ฒ๋ก๋ฉ์ ํ์ฉํด ๋ณด์ธ์!
์ง๋ฌธ์ ์ธ์ ๋ ์ง ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.
๐ฉต๐ฐ๐ฉต
'โJava' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java ์ดํดํ๊ธฐ] 21. Java์ ์์ (0) | 2024.05.31 |
---|---|
[Java ์ดํดํ๊ธฐ] 20. Java์ has-a ๊ด๊ณ (1) | 2024.05.27 |
[Java ์ดํดํ๊ธฐ] 18. Java์ ์ค๋ฒ๋ก๋ฉ (2) | 2024.05.27 |
[Java ์ดํดํ๊ธฐ] 17. Java์ this (1) | 2024.05.27 |
[Java ์ดํดํ๊ธฐ] 16. Java์ ์์ฑ์ (2) | 2024.05.27 |