Java 레코드 클래스의 사용자 정의 메소드

Java 레코드 클래스의 사용자 정의 메소드

2022-10-19 last update

10 minutes reading java beginners tutorial programming
지난 주에 볼 수 있는 Java 레코드 클래스에 대한 소개에 대해 설명했습니다. 이 문서에서는 레코드 클래스에서 사용자 지정 메서드를 만드는 방법에 대해 설명합니다.

삼각형을 예로 들겠습니다. 두 가지 속성, 즉 Trianglebase가 있는 레코드 클래스height를 생성하고 두 속성 모두 데이터 유형이 double인 경우.

아래 소스 코드 1에서 Triangle 레코드 클래스의 구현을 볼 수 있습니다.

소스 코드 1:

public record Triangle(double base, double height) {}


예, 그것이 우리에게 필요한 모든 Triangle 클래스입니다. 소스 코드 2에서 볼 수 있듯이 이 클래스의 생성자, 속성 접근자, equals, hashCode 및 toString을 테스트해 보겠습니다.

소스 코드 2:

public static void main(String[] args) {
    double base = 4.0;
    double height = 4.0;

        // Objects initialization using constructor
    Triangle triangle1 = new Triangle(base, height);
    Triangle triangle2 = new Triangle(base, height);

        // Property accessor
    System.out.println("Base of triangle1: " + triangle1.base());
    System.out.println("Height of triangle1: " + triangle1.height());

    System.out.println("Base of triangle2: " + triangle2.base());
    System.out.println("Height of triangle2: " + triangle2.height());

        // isEqual method
    System.out.println("Triangle1 and triangle2 is equal: " + triangle1.equals(triangle2));

        // hashCode method
    System.out.println("Hashcode of triangle1: " + triangle1.hashCode());
    System.out.println("Hashcode of triangle2: " + triangle2.hashCode());

        // toString method
    System.out.println(triangle1.toString());
    System.out.println(triangle2.toString());
}


클래스 테스트의 결과는 출력 1에서 볼 수 있습니다.

출력 1:

Base of triangle1: 4.0
Height of triangle1: 4.0
Base of triangle2: 4.0
Height of triangle2: 4.0
Triangle1 and triangle2 is equal: true
Hashcode of triangle1: 33554432
Hashcode of triangle2: 33554432
Triangle[base=4.0, height=4.0]
Triangle[base=4.0, height=4.0]


위의 출력에서 ​​테스트 결과가 우리가 예상한 것과 일치함을 알 수 있으며 이제 레코드 클래스에서 사용자 지정 메서드 구현으로 이동합니다.


사용자 정의 메소드 자체의 구현을 위해 레코드 클래스는 Java의 일반 클래스와 크게 다르지 않습니다. 다음 예제와 같이 레코드 클래스에서 메서드를 정의하기만 하면 됩니다.

데이터 유형이 double인 getArea() 호출할 삼각형의 면적을 계산하는 방법을 구현하려고 한다고 가정해 보겠습니다.

수학식 1은 삼각형의 넓이를 구하는 공식입니다.

방정식 1:

삼각형의 넓이 = (삼각형의 밑변 * 삼각형의 높이)/2

코드에서 이 getArea() 메서드의 구현은 소스 코드 4에서 볼 수 있습니다.

소스 코드 4:

public record Triangle(double base, double height) {

    public double getArea() {
        return (base * height) / 2;
    }
}


이것이 바로 우리가 레코드 클래스에서 사용자 지정 메서드를 구현하는 방법입니다. 다음으로 결과가 예상한 것과 일치하는지 여부를 확인하기 위해 메서드를 테스트해 보겠습니다. 소스 코드 5는 getArea() 메서드에서 수행한 테스트를 보여줍니다.

소스 코드 5:

public static void main(String[] args) {
    double base = 4.0;
    double height = 4.0;

    Triangle triangle = new Triangle(base, height);

    System.out.println("Base of triangle: " + triangle.base());
    System.out.println("Height of triangle: " + triangle.height());
    System.out.println("Area of triangle: " + triangle.getArea());
}


출력 2는 위에서 수행한 테스트 결과를 보여줍니다.

출력 2:

Base of triangle: 4.0
Height of triangle: 4.0
Area of triangle: 8.0


위의 출력에서 ​​우리는 밑변이 4이고 높이가 4인 삼각형의 면적이 8임을 보여줌으로써 사용자 정의 방법이 잘 작동함을 알 수 있습니다.

삼각형의 넓이 = (삼각형의 밑변 * 삼각형의 높이)/2

삼각형의 면적 = (4 * 4)/2 = 8


이것이 Java의 레코드 클래스에 대한 사용자 정의 메소드를 생성하는 방법입니다. 이 기사가 Java 프로그래밍 언어를 사용하여 프로그래밍할 때 생산성을 높이는 데 도움이 되기를 바랍니다. 이 Java 기능에 관심이 있으시면 아래 링크를 통해 레코드 클래스에 대해 자세히 알아보십시오.

https://docs.oracle.com/en/java/javase/15/language/records.html


표지 이미지:

https://i.picsum.photos/id/443/1920/720.jpg?hmac=lgXcpJtQ_DWNuuVbahKL1siBhn34DfnCCcrn_GmKpnU