-
CHAPTER 6. (6) 생성자란?java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:15
생성자
- 인스턴스 생성 시 호출되는 인스턴스 초기화 메서드
특징
- 메서드와 유사한 구조
- 리턴 값 없음
- void 사용하지 않음 (모든 생성자가 리턴값이 없기 때문에 void도 생략)
- 클래스의 이름과 같음
ex.12345678910class Point {Point() { // 매개변수 없는 기본 생성자}Point(int a) { // 매개변수 있는 생성자}}
주의
- 연산자 new가 인스턴스를 생성하는 것 (생성자가 인스턴스를 생성하는 것이 아님)
기본 생성자 default constructor
- 매개변수도 없고 아무런 내용도 없는 것
- 모든 클래스에 반드시 하나 이상의 생성자 정의되어 있어야 함
지금까지 안적었는데?
ㄴ 소스파일 클래스에 생성자가 하나도 정의되어 있지 않은 경우, 컴파일 시 컴파일러가 자동으로 기본 생성자를 추가해줬음
주의
- 기본 생성자 작성하지 않고 매개변수를 받는 생성자를 작성 시, 컴파일러가 기본 생성자를 자동 생성해주지 않음
=> 다른 생성자 사용시, 사용자가 직접 기본 생성자 생성 하는 것 추천
매개변수가 있는 생성자
- 인스턴스마다 각기 다른 값으로 초기화되어야 하는 경우에 사용장점
기본 생성자 사용 시 = 인스턴스 생성 후 인스턴스 변수들 따로 초기화
매개변수가 있는 생성자 사용 시 = 인스턴스 생성과 초기화를 동시에 가능
ex.기본 생성자 사용 시
Car c = new Car();
c.color = "white";
c.gearType = "auto";
c.door = 4;
매개변수가 있는 생성자 사용 시Car c = new Car("white", "auto", 4);
훨씬 간결하고 직관적'java > ㄴ CHAPTER 6. 객체지향 프로그래밍 1' 카테고리의 다른 글
CHAPTER 6. (7) this란? (this(), 명시적 초기화 포함) ★ (0) 2020.03.23 CHAPTER 6. (5) 오버로딩이란? ★ (0) 2020.03.23 CHAPTER 6. (4) return문이란? (호출 스택, Call by Value, Call by Reference 등 포함) ★★ (0) 2020.03.23 CHAPTER 6. (3) 멤버 변수란? (지역, 인스턴스, 클래스 변수, 메서드 포함) (0) 2020.03.23 CHAPTER 6. (2) 객체 배열이란? (변수, 객체, 클래스, 사용자 정의 타입 포함) (0) 2020.03.23