JAVA
JAVA - 객체 지향 프로그램 연습문제
jonghyeon6084
2024. 1. 3. 11:30
728x90
문제. 1 - 절차 지향 직사각형 프로그램을 객체 지향으로 변경하기
다음은 직사각형 넓이, 둘레 길이, 정사각형 여부를 구하는 프로그램이다.
- 절차 지향 프로그래밍 방식으로 되어 있는 코드를 객체 지향 프로그래밍 방식으로 변경하기
- Retanngle 클래스를 만들기
- RetangleOopMain에 해당 클래스를 사용하는 main() 코드 만들기
절차 지향 코드
package oop.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 2 * (width + height);
}
static boolean isSquare(int width, int height) {
return width == height;
}
}
내가 푼 정답
public class Rectangle {
int width;
int height;
int area() {
return width * height;
}
int perimeter() {
return 2 * (width + height);
}
boolean isSquare() {
return width == height;
}
}
public static void main(String[] args) {
Rectangle rectangle = new Rectangle();
rectangle.width = 5;
rectangle.height = 8;
int area = rectangle.area();
System.out.println("넓이 : " + area);
int perimeter = rectangle.perimeter();
System.out.println("둘레 길이 : " + perimeter);
boolean square = rectangle.isSquare();
System.out.println("정사각형 여부 : " + square);
}
문제. 2 - 객체 지향 계좌
은행 계좌를 객체로 설계하기.
- Account 클래스 만들기
- int balance : 잔액
- deposit(int amount) : 입금 메서드
- 입금시 잔액이 증가한다.
- withdraw(int amount) : 출금 메서드
- 출금시 잔액이 감소한다.
- 만약 잔액이 부족하다면 잔액 부족을 출력하기
- AccountMain 클래스를 만들고 main() 메서드를 통해 프로그램을 시작하기
- 계좌에 10000원 입금.
- 계좌에 9000원 출금.
- 계좌에 2000원 출금.(잔액 부족이 출력되는지 확인)
- 잔고 출력.
public class Account {
int balance;
int amount;
void deposit(int amount) {
balance += amount;
}
void withdraw(int amount) {
if (balance >= amount) {
balance -= amount;
} else {
System.out.println("잔액이 부족합니다.");
}
}
}
public static void main(String[] args) {
Account account = new Account();
account.deposit(10000);
account.withdraw(9000);
account.withdraw(2000);
System.out.println("잔액 : " + account.balance);
}