생성자(Constructor) / java
생성자
- 인스턴스 생성 과정에서 초기화를 위해 자동으로 호출되는 일종의 메소드
생성자와 메소드의 차이
- 생성자의 이름은 클래스의 이름과 동일해야 한다.
- 생성자는 값을 반환하지 않고 반환형도 표시하지 않는다.
- 인스턴스 생성 시 자동으로 호출되어 인스턴스를 초기화
// 인스턴스의 초기화를 위한 메소드, 인스턴스 생성 시 반드시 한번 호출해서 초기화를 진행해야 한다.
public void initAccount(String acc, String ss, int bal) {
accNumber = acc;
ssNumber = ss;
balance = bal;
}
// 위의 메소드를 클래스 BankAccount의 생성자로 수정
public BankAccount(String acc, String ss, int bal) {
accNumber = acc;
ssNumber = ss;
balance = bal;
}
BankAccount yoon = new BankAccount(“12-34-89”, “90990-9090990”, 10000);
- 소괄호 안에 값을 전달하고 이 값들은 생성자가 호출될 때 생성자의 매개변수로 전달
- ‘인스턴스 생성 마지막 단계’에서 다음의 생성자가 호출되면서 값들이 전달되고 이 값들로 인스턴스 변수가 초기화 된다.
public BankAccount(String acc, String ss, int bal) { // 생성자
accNumber = acc; // 변수 accNumber 초기화
ssNumber = ss; // 변수 ssNumber 초기화
balance = bal; // 변수 balance 초기화
}
- 인스턴스 생성의 마지막 단계는 생성자 호출이다.
- 어떠한 이유로든 생성자 호출이 생략된 인스턴스는 인스턴스가 아니다.
디폴트 생성자(Default Constructor)
- 생성자를 생략한 상태의 클래스를 정의하면 자바 컴파일러가 ‘디폴트 생성자’라는 것을 클래스의 정의에 넣어준다.
class BankAccount {
int balance;
public BankAccount() { // 컴파일러에 의해 자동 삽입되는 ‘디폴트 생성자’
// empty
}
public int deposit(int amount) { … }
public int withdraw(int amount) { … }
public int checkMyBalance() { … }
}
- 디폴트 생성자는 인자를 전달받지 않는 형태로 정의되어 삽입
- 내부적으로 하는 일이 없지만 인스턴스의 생성 규칙인 ‘생성자의 호출’은 유지가 된다.
- 컴파일러에 의해서 디폴트 생성자가 삽입이 되더라도 생성자는 직접 정의해 주는 것이 좋다.
Author And Source
이 문제에 관하여(생성자(Constructor) / java), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aljongjong/생성자Constructor-java저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)