다음은 직사각형의 넓이(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()
메서드를 통해 프로그램을 시작해라.잔액 부족
출력을 확인해라.잔고: 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);
}
}