자바-생성자

생성자는 생성 될 때 객체를 초기화합니다. 클래스와 이름이 같고 구문 적으로 메서드와 유사합니다. 그러나 생성자에는 명시적인 반환 유형이 없습니다.

일반적으로 생성자를 사용하여 클래스에서 정의한 인스턴스 변수에 초기 값을 제공하거나 완전한 형식의 개체를 만드는 데 필요한 다른 시작 절차를 수행합니다.

Java는 모든 멤버 변수를 0으로 초기화하는 기본 생성자를 자동으로 제공하기 때문에 모든 클래스에는 생성자가 있습니다. 그러나 생성자를 정의하면 기본 생성자가 더 이상 사용되지 않습니다.

통사론

다음은 생성자의 구문입니다-

class ClassName {
   ClassName() {
   }
}

Java는 두 가지 유형의 생성자를 허용합니다.

  • 인수 생성자 없음
  • 매개 변수화 된 생성자

인수 생성자 없음

이름이 지정하는대로 Java의 인수 없음 생성자는 매개 변수를 대신 허용하지 않으므로 이러한 생성자를 사용하면 메서드의 인스턴스 변수가 모든 객체에 대해 고정 값으로 초기화됩니다.

예

Public class MyClass {
   Int num;
   MyClass() {
      num = 100;
   }
}

생성자를 호출하여 다음과 같이 객체를 초기화합니다.

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.num + " " + t2.num);
   }
}

이것은 다음 결과를 생성합니다

100 100

매개 변수화 된 생성자

대부분의 경우 하나 이상의 매개 변수를 허용하는 생성자가 필요합니다. 매개 변수는 메소드에 추가되는 것과 동일한 방식으로 생성자에 추가됩니다. 생성자 이름 뒤의 괄호 안에 선언하기 만하면됩니다.

예

다음은 생성자를 사용하는 간단한 예입니다.

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

생성자를 호출하여 다음과 같이 객체를 초기화합니다.

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

이것은 다음 결과를 생성합니다-

10 20