Java에서 toString 메서드 재정의

Rupam Yadav 2023년10월12일
Java에서 toString 메서드 재정의

우리는 종종 모든 프로그램의 필수 부분이기 때문에 Java에서 문자열을 사용합니다. 이 튜토리얼에서는 개념을 더 잘 이해하기 위해 쉬운 예제를 사용하여 Java에서tostring()메소드를 재정의하는 방법을 알아 봅니다.

Java에서@Override어노테이션을 사용하여toString()메소드 대체

toString()메소드는 Java의 모든 클래스의 수퍼 클래스 인Object클래스의 일부입니다. 이는 모든 클래스에 자체toString()메소드가 있음을 의미합니다. 하지만 매번 기본toString()메소드에서 원하는 출력을 얻지는 못합니다. 메서드를 재정의하고 필요에 따라 사용자 지정해야 할 때입니다.

toString()메서드를 재정의하는 방법을 보여주기 위해toString()메서드를 재정의하지 않은 두 가지 예제와 재정의 된 메서드가있는 다른 두 가지 예를 볼 수 있습니다.

아래 예에는 생성자에서 초기화 된 세 개의 변수가있는ExampleClass클래스가 있습니다. 인수가 전달 된ExampleClass클래스의 객체를 생성 한 다음 객체를 인쇄하면 의미가없고 사람이 읽을 수없는 객체를 얻습니다. exampleClass를 인쇄 할 때 기본toString()이 호출되기 때문입니다. 그러나 우리는 변수의 값을 문자열로 인쇄하고 싶습니다. 이를 위해 다음 예제에서toString()메소드를 재정의합니다.

public class OverrideToString {
  public static void main(String[] args) {
    ExampleClass exampleClass = new ExampleClass("Alex", "Novel", 24);

    System.out.println(exampleClass);
  }
}

class ExampleClass {
  String firstName;
  String lastName;
  int age;

  ExampleClass(String firstName, String lastName, int age) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
  }
}

출력:

ExampleClass@37bba400

다음 코드에서 이전과 동일한 예제를 사용하지만 이번에는@Override주석을 사용하여toString()메서드를 재정의하고 메서드 이름을String반환 유형으로 작성합니다. 이 작업을 수동으로 수행하거나 많은 IDE에 포함 된 바로 가기를 사용할 수 있습니다.

메서드가 문자열을 반환하므로이를 구성해야합니다. 변수를 String과 연결하여 단일 String을 만듭니다. 마지막으로exampleClass의 객체를 생성하고 인쇄 할 때 전달 된 변수 값이있는 문자열로 출력을 얻습니다. 우리 자신의 구현을 지정하기 위해toString()메소드를 재정의하기 때문에 발생합니다.

public class OverrideToString {
  public static void main(String[] args) {
    ExampleClass exampleClass = new ExampleClass("Alex", "Novel", 24);

    System.out.println(exampleClass);
  }
}

class ExampleClass {
  String firstName;
  String lastName;
  int age;

  ExampleClass(String firstName, String lastName, int age) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
  }

  @Override
  public String toString() {
    return "firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + ", age=" + age;
  }
}

출력:

firstName='Alex', lastName='Novel', age=24
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Override