
✅ 절차 지향 직사각형 프로그램을 객체 지향으로 변경하기
🔔 문제 설명
다음은 직사각형의 넓이(area), 둘레 길이(perimeter), 정사각형 여부(square)를 구하는 프로그램이다. 이 프로그램을 객체 지향으로 변경해보자.
🔔 요구 사항
- 절차 지향 프로그래밍 방식으로 되어 있는 코드를 객체 지향 프로그래밍 방식으로 변경해라.
- Rectangle 클래스를 만들어라.
- RectangleOopMain에 해당 클래스를 사용하는 main() 코드를 만들어라.
✏️ 절차 지향 코드
package oop1.ex;
public class RectangleProceduralMain {
public static void main(String[] args) {
int width = 5;
int height = 8;
int area = calculateArea(width, height);
System.out.println("넓이: " + area);
int perimeter = calculatePerimeter(width, height);
System.out.println("둘레 길이: " + perimeter);
boolean square = isSquare(width, height);
System.out.println("정사각형 여부: " + square);
}
static int calculateArea(int width, int height) {
return width * height;
}
static int calculatePerimeter(int width, int height) {
return (width + height) * 2;
}
static boolean isSquare(int width, int height) {
return width == height;
}
}
🖥️ 실행 결과
넓이: 40
둘레 길이: 26
정사각형 여부: false
✏️ 정답
package oop1.ex;
public class Rectangle {
int width;
int height;
// 넓이
int calculateArea() {
return width * height;
}
// 둘레
int calculatePerimeter() {
return (width + height) * 2;
}
// 정사각형 여부
boolean isSquare() {
return width == height;
}
}
package oop1.ex;
public class RectangleOopMain {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(); // 객체 생성
rectangle.width = 5;
rectangle.height = 8;
int area = rectangle.calculateArea();
System.out.println("넓이: " + area);
int perimeter = rectangle.calculatePerimeter();
System.out.println("둘레: " + perimeter);
boolean square = rectangle.isSquare();
System.out.println("정사각형 여부: " + square);
}
}
✅ 객체 지향 계좌
🔔 문제 설명
은행 계좌를 객체로 설계해보자.
🔔 요구 사항
- Account 클래스를 만들어라.
- int balance : 잔액
- deposit(int amount) : 입금 메서드
- 입금 시 잔액이 증가한다.
- withdraw(int amount) : 출금 메서드
- 출금 시 잔액이 감소한다.
- 만약 잔액이 부족하면 잔액 부족을 출력해야 한다.
- AccountMain 클래스를 만들고 main() 메서드를 통해 프로그램을 시작해라.
- 계좌에 10000원을 입금해라.
- 계좌에서 9000원을 출금해라.
- 계좌에서 2000원을 출금 시도해라. → 잔액 부족 출력을 확인해라.
- 잔고를 출력해라.
- 잔고: 1000
🖥️ 실행 결과
잔액 부족
잔고: 1000
✏️ 정답
package oop1.ex;
public class Account {
int balance; // 잔액
// 입금
void deposit(int amount) {
balance += amount;
}
// 출금
void withdraw(int amount) {
if (balance >= amount) {
balance -= amount;
} else {
System.out.println("잔액 부족");
}
}
}
package oop1.ex;
public class AccountMain {
public static void main(String[] args) {
Account account = new Account();
account.deposit(10000);
account.withdraw(9000);
account.withdraw(2000); // 오류 메시지 출력
System.out.println("잔고: " + account.balance);
}
}'Back-end > Java' 카테고리의 다른 글
| [Java - 기본] 생성자 - 필요한 이유 (0) | 2024.04.08 |
|---|---|
| [Java - 기본] Section3 - 정리 (0) | 2024.04.08 |
| [Java - 기본] 객체 지향 프로그래밍 (0) | 2024.04.07 |
| [Java - 기본] 클래스와 메서드 (0) | 2024.04.07 |
| [Java - 기본] 절차 지향 프로그래밍3 - 메서드 추출 (0) | 2024.04.06 |