English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java에서 열거형의 생성자 오버로드

오버로드다중 모양을 구현하는 메커니즘 중 하나로, 하나의 클래스가 같은 이름과 다른 매개변수를 가진 두 가지 메서드를 포함하고 있습니다.

이 메서드를 언제 호출하든지, 메서드 본체는 매개변수와 메서드 호출이 연결됩니다.

생성자 오버로드

메서드와 마찬가지로, 생성자도 오버로드할 수 있습니다. 즉, 다른 매개변수를 가진 여러 개의 생성자를 작성할 수 있습니다.

또한, 인스턴스화 시 전달된 매개변수에 따라 해당 생성자를 호출합니다.

예제

public class Sample{
   public Sample(){
      System.out.println("Hello how are you");
   }
   public Sample(String data){
      System.out.println(data);
   }
   public static void main(String args[]){
      Sample obj = new Sample("Tutorialspoint");
   }
}

출력 결과

Tutorialspoint

열거형의 생성자 오버로드

일반 생성자와 마찬가지로, 열거형의 생성자도 오버로드할 수 있습니다. 즉, 생성자에 다른 매개변수를 가질 수 있습니다.

예제

이 Java 프로그램은 열거형의 생성자 오버로드를 보여줍니다.

import java.util.Arrays;
enum Student {
   Krishna("Krishna", "kasyap", "Bhagavatula"), Ravi("Ravi", "Kumar", "pyda"), Archana("Archana", "devraj", "mohonthy");
   private String firstName;
   private String lastName;
   private String middleName;
   private Student(String firstName, String lastName, String middlename){
      this.firstName = firstName;
      this.lastName = lastName;
      this.middleName = middleName;
   }
   private Student(String name) {
      this(name.split(" ")[0], name.split(" ")[1], name.split(" ")[2]);
   }
}
public class ConstructorOverloading{
   public static void main(String args[]) {
      Student stds[] = Student.values();
      System.out.println(Arrays.toString(stds));
   }
}

출력 결과

[Krishna, Ravi, Archana]
좋아할 만한 항목