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

지난 주에 나는 당신이 볼 수 있는 Java 레코드 클래스에 대한 소개를 논의했습니다. 이 기사에서는 레코드 클래스에서 사용자 정의 메소드를 작성하는 방법에 대해 설명합니다.

삼각형을 예로 들겠습니다. 데이터 유형이 double인 두 속성Trianglebase의 두 속성이 있는 레코드 클래스height를 생성합니다.

아래 소스 코드 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

좋은 웹페이지 즐겨찾기