자바에서 생성자는 메소드와 유사한 코드 블록입니다. 클래스의 인스턴스가 생성 될 때 호출됩니다. 생성자를 호출 할 때 객체에 대한 메모리가 메모리에 할당됩니다.
객체를 초기화하는 데 사용되는 특수한 유형의 메서드입니다.
new () 키워드를 사용하여 객체를 만들 때마다 적어도 하나의 생성자가 호출됩니다.
클래스에 사용 가능한 생성자가 없으면 기본 생성자를 호출합니다. 이 경우 Java 컴파일러는 기본적으로 기본 생성자를 제공합니다.
Java에는 인수가없는 생성자와 매개 변수화 된 생성자라는 두 가지 유형의 생성자가 있습니다.
참고 : 호출됩니다. 생성자는 객체 생성시 값을 구성하기 때문입니다. 클래스에 대한 생성자를 작성할 필요는 없습니다. 클래스에 기본 생성자가 없으면 Java 컴파일러가 기본 생성자를 생성하기 때문입니다.
Java 생성자 생성 규칙
생성자에 대해 정의 된 두 가지 규칙이 있습니다.
- 생성자 이름은 해당 클래스 이름과 동일해야합니다.
- 생성자는 명시 적 반환 유형이 없어야합니다.
- Java 생성자는 추상, 정적, 최종 및 동기화 됨
참고 : 생성자를 선언하는 동안 액세스 수정자를 사용할 수 있습니다. 객체 생성을 제어합니다. 즉, Java에서 개인, 보호, 공용 또는 기본 생성자를 가질 수 있습니다.
h4>
Java 생성자의 유형
Java에는 두 가지 유형의 생성자가 있습니다.
- 기본 생성자 (인수가없는 생성자)
- 매개 변수화 된 생성자
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 패키지에 있습니다.