Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 기본 생성자와 매개변수화된 생성자의 차이점은 무엇입니까?

<시간/>

기본 생성자

  • 기본 생성자는 0 인수 생성자 입니다. 슈퍼 클래스 생성자에 대한 인수 없는 호출이 포함되어 있습니다.
  • 새로 생성된 객체에 기본값을 할당하는 것은 기본 생성자의 주요 책임입니다.
  • 컴파일러는 프로그램이 클래스에 생성자를 작성하지 않는 경우에만 코드에 기본 생성자를 작성합니다.
  • 기본 생성자의 액세스 수정자는 항상 클래스 수정자와 동일하지만 이 규칙은 "공개" 에만 적용됩니다. 및 '기본값' 수정자.

컴파일러는 언제 기본 생성자를 추가할까요?

  • 컴파일러는 프로그래머가 코드에 생성자를 작성하지 않은 경우에만 코드에 기본 생성자를 추가합니다.
  • 프로그래머가 코드에 생성자를 작성하면 컴파일러는 생성자를 추가하지 않습니다.
  • 모든 기본 생성자는 0 인수 생성자이지만 모든 0 인수 생성자는 기본 생성자가 아닙니다.

매개변수화된 생성자

  • 매개변수화된 생성자는 특정 개수의 인수가 있는 생성자입니다. 통과해야 합니다.
  • 매개변수화된 생성자의 목적은 사용자가 원하는 특정 값을 다른 개체의 인스턴스 변수에 할당하는 것입니다.
  • 매개변수화된 생성자는 프로그래머가 명시적으로 작성합니다.
  • 기본 생성자의 액세스 수정자는 항상 클래스 수정자와 동일하지만 이 규칙은 "공개"에만 적용됩니다. 및 '기본값' 수정자.

예시

public class Student {
   int roll_no;
   String stu_name;
   Student(int i, String n) { // Parameterized constructor
      roll_no = i;
      stu_name = n;
   }
   void display() {
      System.out.println(roll_no+" "+stu_name);
   }
   public static void main(String args[]) {
      Student s1 = new Student(1,"Adithya");
      Student s2 = new Student(2,"Jai");
      s1.display();
      s2.display();
   }
}

위의 프로그램에서 프로그래머는 2개의 매개변수가 있는 하나의 매개변수화된 생성자를 정의합니다. 이제 컴파일러는 코드에 기본 생성자를 추가하지 않으며 프로그래머도 0 인수 생성자를 작성하지 않았습니다.

출력

1 Adithya
2 Jai