Constructor 생성자
특징
- 인스턴스가 생성될 때마다 호출되는 “인스턴스 초기화 메서드”
- 주요 기능은 초기화
- 인스턴스 생성시 수행할 작업에 사용
규칙
- 클래스 이름과 같은 이름의 메서드
- 오버로딩 가능, 즉 여러 개가 가능하다.
- 리턴 값이 없다. (항상 반환 값이 없으므로 void 사용 안함)
- 모든 클래스는 반드시 생성자를 가져야 한다.
Default constructor 기본 생성자
- 매개변수가 없는 생성자
- 생성자가 하나도 없을 때만 컴파일러가 자동 추가
- 자동 추가 되지만 클래스 생성시 항상 직접 만들어 놓는게 좋다. ✅
Alpabet() {}
주요 에러
- cannot resolve symbol - 이름에 문제 발생, 찾을 수 없고 이해 할 수 없다는 뜻
매개변수가 있는 생성자
class Alpabet{
Alpabet() {
}
Alpabet(String k, int n) {
kind = k;
number = n;
}
}
Alpabet abc = new Alpabet("aaa", 1);
- 참조 변수 abc 생성
new
메모리 접근 연산자가 객체 생성 (heap 힙 영역)
- 생성자 호출해서 객체 초기화
- 객체 주소 (
new
연산자 반환 값) 참조 변수에 대입
Overloading 오버로딩
특징
- 한 클래스 안에 같은 이름의 메서드 여러 개 정의 하는 것
- JVM 은 매개값 타입을 보고 메서드 선택
- 매개변수는 다르지만 같은 의미의 기능 수행 (올바른 예 ✅)
조건
- 메서드 이름이 같아야 한다.
- 매개변수의 개수, 순서 또는 타입이 달라야 한다.
- 반환 타입은 영향없다.
주요 에러
- The method is ambiguous - 어느 함수를 호출 했는지 모호, 불확실하다.