Java의 생성자

자바에서 생성자는 메소드와 유사한 코드 블록입니다. 클래스의 인스턴스가 생성 될 때 호출됩니다. 생성자를 호출 할 때 객체에 대한 메모리가 메모리에 할당됩니다.

객체를 초기화하는 데 사용되는 특수한 유형의 메서드입니다.

new () 키워드를 사용하여 객체를 만들 때마다 적어도 하나의 생성자가 호출됩니다.

클래스에 사용 가능한 생성자가 없으면 기본 생성자를 호출합니다. 이 경우 Java 컴파일러는 기본적으로 기본 생성자를 제공합니다.

Java에는 인수가없는 생성자와 매개 변수화 된 생성자라는 두 가지 유형의 생성자가 있습니다.

참고 : 호출됩니다. 생성자는 객체 생성시 값을 구성하기 때문입니다. 클래스에 대한 생성자를 작성할 필요는 없습니다. 클래스에 기본 생성자가 없으면 Java 컴파일러가 기본 생성자를 생성하기 때문입니다.

Java 생성자 생성 규칙

생성자에 대해 정의 된 두 가지 규칙이 있습니다.

  1. 생성자 이름은 해당 클래스 이름과 동일해야합니다.
  2. 생성자는 명시 적 반환 유형이 없어야합니다.
  3. Java 생성자는 추상, 정적, 최종 및 동기화 됨

참고 : 생성자를 선언하는 동안 액세스 수정자를 사용할 수 있습니다. 객체 생성을 제어합니다. 즉, Java에서 개인, 보호, 공용 또는 기본 생성자를 가질 수 있습니다.

h4>

Java 생성자의 유형

Java에는 두 가지 유형의 생성자가 있습니다.

  1. 기본 생성자 (인수가없는 생성자)
  2. 매개 변수화 된 생성자

Java 기본 생성자

생성자는 “기본 생성자”라고합니다. 매개 변수.

기본 생성자의 구문 :

기본 생성자의 예

이 예에서는 no- Bike 클래스의 arg 생성자. 개체 생성시 호출됩니다.

지금 테스트

출력 :

Bike is created

규칙 : 클래스에 생성자가 없으면 컴파일러는 자동으로 기본 생성자를 만듭니다.

Q) 기본 생성자의 목적은 무엇입니까?

기본 생성자는 유형에 따라 0, null 등과 같은 객체에 기본값을 제공하는 데 사용됩니다.

기본값을 표시하는 기본 생성자의 예

지금 테스트하세요.

출력 :

0 null0 null

설명 : 위 클래스에서 컴파일러가 기본 생성자를 제공하도록 생성자를 생성합니다. 여기서는 0과 null 값이 기본 생성자에 의해 제공됩니다.

Java 매개 변수화 된 생성자

특정 수의 매개 변수를 가진 생성자를 매개 변수화 된 생성자라고합니다.

매개 변수화 된 생성자를 사용하는 이유는 무엇입니까?

매개 변수화 된 생성자는 개별 개체에 다른 값을 제공하는 데 사용됩니다. 그러나 동일한 값을 제공 할 수도 있습니다.

매개 변수화 된 생성자의 예

이 예제에서는 두 개의 매개 변수가있는 Student 클래스의 생성자를 만들었습니다. 생성자에는 여러 매개 변수를 가질 수 있습니다.

지금 테스트

출력 :

111 Karan222 Aryan

Java의 생성자 오버로딩

Java에서 생성자는 메소드와 같지만 리턴 유형이 없습니다. Java 메소드처럼 오버로드 될 수도 있습니다.

Java의 생성자 오버로딩은 매개 변수 목록이 다른 생성자를 두 개 이상 갖는 기술입니다. 각 생성자가 다른 작업을 수행하는 방식으로 배열됩니다. 컴파일러는 목록의 매개 변수 수와 유형으로 구분합니다.

생성자 오버로딩의 예

지금 테스트

출력 :

111 Karan 0222 Aryan 25

Java에서 생성자와 메소드의 차이점

생성자와 메소드 사이에는 많은 차이점이 있습니다. 아래에 나와 있습니다.

Java 생성자 Java 메서드
생성자는 객체의 상태를 초기화하는 데 사용됩니다. 메소드는 객체의 동작을 노출하는 데 사용됩니다.
생성자는 반드시 반환 유형이 없습니다. 메서드에는 반환 유형이 있어야합니다.
생성자는 암시 적으로 호출됩니다. 메서드 명시 적으로 호출됩니다.
클래스에 생성자가없는 경우 Java 컴파일러는 기본 생성자를 제공합니다. 이 메소드는에서 제공하지 않습니다. 컴파일러.
생성자 이름은 클래스 이름과 동일해야합니다. 메서드 이름은 클래스와 같을 수도 있고 같지 않을 수도 있습니다. 이름.

Java 복사 생성자

Java에는 복사 생성자가 없습니다.그러나 C ++의 복사 생성자처럼 한 객체에서 다른 객체로 값을 복사 할 수 있습니다.

Java에서 한 객체의 값을 다른 객체로 복사하는 방법은 여러 가지가 있습니다. 그것들은 다음과 같습니다 :

  • 생성자에 의해
  • 한 개체의 값을 다른 개체에 할당하여
  • Object 클래스의 clone () 메서드에 의해

이 예에서는 Java 생성자를 사용하여 한 개체의 값을 다른 개체에 복사합니다.

지금 테스트

출력 :

111 Karan111 Karan

생성자없이 값 복사

객체 값을 다른 객체에 할당하여 한 객체의 값을 다른 객체로 복사 할 수 있습니다. 목적. 이 경우 생성자를 만들 필요가 없습니다.

지금 테스트

출력 :

111 Karan111 Karan

Q) 생성자가 값을 반환합니까?

예, 현재 클래스 인스턴스입니다 (반환 유형은 사용할 수 없지만 값을 반환합니다).

생성자가 초기화 대신 다른 작업을 수행 할 수 있습니까?

예, 객체 생성, 스레드 시작, 메서드 호출 등과 같은 작업을 수행 할 수 있습니다. 메서드에서 수행하는대로 생성자에서 모든 작업을 수행 할 수 있습니다.

Java에 Constructor 클래스가 있습니까?

예.

Constructor 클래스의 목적은 무엇입니까?

Java는 다음을 수행 할 수있는 Constructor 클래스를 제공합니다. 클래스에서 생성자의 내부 정보를 얻는 데 사용됩니다. java.lang.reflect 패키지에 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다