본문 바로가기
Java/Java Examples

[Java Examples] Rectangle.java를 활용해서 집 크기 구하기 예제코드 및 설명

by Henry Cho 2024. 3. 4.
728x90

Rectangle.java를 활용해서 집 크기 구하기 예제코드 및 설명

포스트 난이도: HOO_Junior


# Example Code

public class Immutable_Rectangle {

    //Fields of the class rectangle
    final private double length;
    final private double width;

    //Getter methods(Accessor methods)
    public double getLength() {
        return length;
    }

    public double getWidth() {
        return width;
    }

    public double getArea() {
        return width * length;
    }

    //Constructor 
    public Immutable_Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    //No-arg constructor
    public Immutable_Rectangle() {
        length = 1;
        width = 1;
    }

    //Copy constructor
    public Immutable_Rectangle(Immutable_Rectangle rr) {
        this.length = rr.length;
        this.width = rr.width;
    }

}

public class Rectangle {

    //Fields of the class rectangle
    private double length;
    private double width;

    //Setter methods(Mutator methods)
    public void setLength(double length) {
        // len is the local variable of setLength method
        this.length = length;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    //Getter methods(Accessor methods) 
    public double getLength() {
        return length;
    }

    public double getWidth() {
        return width;
    }

    public double getArea() {
        return width * length;
    }

    //Constructor
    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    //No-arg constructor
    public Rectangle() {
        length = 1;
        width = 1;
    }

    //Copy constructor
    public Rectangle(Rectangle rr) {
        this.length = rr.length;
        this.width = rr.width;
    }
}

public class Rooms {

    private int n;
    private Rectangle[] r;

    public Rectangle room_atr(int n, int j) {

        this.n = n;
        r = new Rectangle[n];

        for(int i=0; i<r.length; i++){
            r[i] = new Rectangle(i+2, 3*(i+1)); 
        }

        return r[j];

    }

}

public class Rooms_of_house {

    public static void main(String[] args) {
        
        Double area1, area2, area3;
        
        area1 = new Rooms().room_atr(3,0).getArea();
        area2 = new Rooms().room_atr(3,1).getArea();
        area3 = new Rooms().room_atr(3,2).getArea();
        
        System.out.println("The area of the first room is: "); 
        System.out.println(area1);

        System.out.println("The area of the second room is: "); 
        System.out.println(area2);
        
        System.out.println("The area of the third room is: "); 
        System.out.println(area3);


    }

}

Figure 1. Result of the example code


# Explanations

자바를 공부하다보면 Rectangle.java를 활용한 예제코드들을 많이 접할 수 있다. 이번 포스트에서도 Rectangle.java를 활용해서 Rooms_of_house를 구해볼 수 있다. Rectangle.java에 대해서 복습이 필요하다면 "Java Examples" 카테고리에서 관련된 포스트들을 찾아볼 수 있다.

 

우선 첫번째 예제코드로 나와있는 "Immutable_Rectangle.java"는 크게 Fields와 Getter methods로 구성되어 있다. Fields에서는 length와 width가 최종적으로 수정이 불가하다고 설정이 되어 있다. Getter methods에서는 면적, 길이, 너비 등에 대한 값을 Fields에 접근하여 입력하거나 수정할 수 있도록 만들어주는 기능이다.

 

다음으로 Rectangle.java에서는 Fields가 private로 설정이 되어 있기에 해당 값들은 Rectangle.java에서만 사용이 된다는 걸 알 수 있다. 또한 SEtter methods를 사용함으로써 Rectangle, 즉 추후에 집 크기 계산 및 결과에 영향을 줄 수 있는 너비와 길이에 대한 값의 수정이 여기서 가능하다.

 

Room.java의 경우에는 집에 방이 하나가 아닐 수도 있기 때문에 배열을 활용해서 방의 갯수를 지정해줄 수 있다. 여기서 주요하게 살펴봐야할 부분은 "room_atr(int n, int j)이며 n은 방의 갯수를 나타내고 있으며 r은 Rectangle의 배열을 의미한다.

 

마지막으로 "Room_of_house.java"는 최종적으로 출력을 담당하는 코드에 해당된다. 따라서 모든 기능들은 앞선 코드들과 연결되어 사용을 할 뿐 실질적으로 출력만을 담당한다. 따라서 이번 예제코드를 통해서 각 자바 코드 간의 연결이 어떤식으로 이루지고 있으며 각기 다른 기능들을 코드별로 쉽게 살펴볼 수 있다.


 

728x90

댓글