본문 바로가기
Java/Java Examples

[Java Examples] 상자, 직사각형의 크기를 구하는 예제 및 설명

by Henry Cho 2024. 2. 5.
728x90

상자, 직사각형의 크기를 구하는 예제 및 설명

포스트 난이도: HOO_Intern


# Example Code

//Example1
public class Rectangle {

    private double length;
    private double width;

    public void setLength(double l) {
        length = l;
    }

    public double getLength() {
        return length;
    }

    public void setWidth(double w) {
        width = w;
    }

    public double getWidth() {
        return width;
    }

    public static void main(String[] args) {
        Rectangle rect = new Rectangle();
        rect.setLength(5.0);
        rect.setWidth(10.0);

        System.out.println("Length: " + rect.getLength());
        System.out.println("Width: " + rect.getWidth());
    }
}

Figure 1. Result of example code 1


//HOOAI
//Example2
import java.util.Scanner;

class Rectangle {

    double length;
    double width;

    void Area() {
        double area;
        area = this.length * this.width;
        System.out.println("Area: " + area);
    }

    void Perimeter() {
        double perimeter;
        perimeter = (this.length + this.width) * 2;
        System.out.println("Perimeter: " + perimeter);
    }
}

public class TestRectangle {

    public static void main(String args[]) {
        Rectangle R1 = new Rectangle();

        Scanner in = new Scanner(System.in);

        System.out.print("Enter length: ");
        R1.length = in.nextDouble();

        System.out.print("Enter width: ");
        R1.width = in.nextDouble();

        System.out.println("Length = " + R1.length);
        System.out.println("Width = " + R1.width);

        R1.Area();
        R1.Perimeter();
    }
}

Figure 2. Result of example code 2


# Explanations

학교에 들어가서 항상 언급되던 "철수"와 "영희"씨가 계신다면 자바를 처음 배우면 항상 다루는 예제 중 하나가 바로 상자 넓이 및 둘레에 대한 크기이다. 코딩을 배울 때 Hello world를 통해서 print에 대한 function을 배웠다면 상자 크기를 구하는 코드 작성을 통해서 자바에 필요한 간단한 계산식 및 pinrt funciton 그리고 class를 어떻게 다뤄야 할지를 배울 수 있다. 이번 포스트는 2021년 2월 8일 자에 작성된 포스트를 기반으로 업데이트된 내용이며, 추가 예제를 살펴볼 수 있도록 상자 크기를 구하는 예제코드를 추가했다.

 

첫번째 예제코드는 포스트 업데이트 과정에서 추가된 비교적 간단한 상자 크기를 구하는 예제코드이다. 이전 포스트에 있었던 두 번째 예제코드의 경우 this function을 사용하다 보니 처음 자바를 배우는 브로들에게는 어려움이 있다고 하여 this fuction을 사용하지 않은 간단한 버전의 예제코드를 추가하였다. 결과적으로 두 코드에서 산출해 내는 결과는 비슷하기 때문에 두 코드를 통해서 자바 복습이 가능하다. 특히 첫 번째 코드를 통해 학생들은 클래스 구조, 캡슐화, 개인 필드 접근을 위한 설정자와 기본 객체 인스턴스화 및 메서드 호출에 대해 복습이 가능하다. 두 번째 코드에서는 void와 this funciton이 어떤 식으로 사용되는지를 파악하는 것이 공부하는데 도움이 될 것이다.

 

우선 첫번째 코드를 간략하게 설명하자면 Rectangle 클래스 안에 직사각형의 크기를 나타내는 길이와 너비를 정의하고 있다. 클래스를 살펴보면 두 변수 모두 public setter와 getter methods를 통해서 외부에서 안전하게 액세스 되고 수정될 수 있다 (이게 무슨 소리인지 모르면 일단 무시해도 상관없다). Main method에서는 Rectangle 클래스의 인스턴스를 만들고 크기를 setting 하는 method를 통해 크기를 설정할 수 있도록 만들어주었다. 그런 다음 get method를 사용하여 직사각형의 크기를 가져오는 걸 알 수 있다.

 

두 번째 코드에 대해서 간략하게 설명하자면 Rectangle 클래스를 길이와 너비를 정의하고 Area()와 Beriary()를 각각 계산하여 출력하는 방법이다. Main method 내의 TestRectangle 클래스에서는 Rectangle 인스턴스를 만든 다음 Scanner 객체를 사용하여 사용자 입력에서 Rectangle의 크기를 읽어내고 마지막으로 직사각형의 Length와 Width를 출력한다.


# Github

https://github.com/WhoisHOO/HOOAI/blob/main/Java_examples/box1

https://github.com/WhoisHOO/HOOAI/blob/main/Java_examples/box2


 

728x90

댓글