Java 문제, 직사각형 객체 지향 만들기
직사각형 넓이(Area), 둘레 길이(Perimeter), 정사각형 여부(square)를 구하는 프로그램이다.
요구사항
- 절차 지향 프로그래밍을 객체 지향 프로그래밍 방식으로 변경하기
- RectangleClass 클래스를 만들기
- RectangleClass 클래스를 사용 하는 main() 코드 만들기
절차 지향 코드
public class Main {
public static void main(String[] args) {
int width = 6;
int height = 10;
int area = calculateArea(width, height);
}
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;
}
}
출력 결과:
넓이: 60
둘레 길이: 32
정사각형 여부: false
직사각형 문제 풀이
절차 지향 프로그래밍에서 객체 지향으로 코드를 변경하였다.
클래스
public class Quadrangle {
int width;
int height;
int calculateArea() {
return width * height;
}
int calculatePerimeter() {
return 2 * (width + height);
}
boolean isSquare() {
return width == height;
}
}
Main 함수
public class Main {
public static void main(String[] args) {
Quadrangle quad = new Quadrangle();
quad.width = 6;
quad.height = 10;
int area = quad.calculateArea();
System.out.println("넓이: " + area);
int perimeter = quad.calculatePerimeter();
System.out.println("둘레 길이: "+ perimeter);
boolean square = quad.isSquare();
System.out.println("정사각형 여부: " + square);
}
}
출력 결과:
넓이: 60
둘레 길이: 32
정사각형 여부: false
Main 코드를 보면 마치 객체에게 물어보면 답을 꺼내는 것처럼 동작하는 것을 볼 수 있다. 이러한 느낌을 주는 이유는 캡슐화가 잘 되어있기 때문이다.
Quadrangle 사각형 클래스를 new 키워드로 메모리에 생성했기에 언제든지 메소드를 호출하여 기능을 구현할 수 있다.