일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 일반 예외
- throws 키워드
- til
- 코딩테스트준비
- 예외 처리
- 개발자취업
- 예외
- 항해99
- 예외클래스
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 실행 예외
- 다중 catch 블록
- try-catch-finally 블록
- 99클럽
- Today
- Total
innn
생성자(Constructor) 본문
생성자(Constructor) :
인스턴스 생성때마다 호출되는 인스턴스 초기화(객체 = iv묶음, = iv 초기화) 메서드
원래라면 객체 생성하고 iv초기화를 해야하는데 이걸 한줄로 표현한게 생성자임.
일반적으로 iv초기화한게 생성자지만, 메소드이기 때문에 {} 안에 행할 작업들을 적어놓을 수 있음.
생성자가 있으면 4개의 문장을 한줄로 (객체가 여러개일 때 편함)
생성자 목적 : iv 초기화 메서드가 생성자 iv 초기화를 편리하게 하려고.
기본적으로 메서드이지만, 특별한 메서드임. 고로 규칙 존재
iv 초기화 메서드라는 것은 애초에 대입문인 것임. 그래서 리턴값이 없어서 사실 void를 붙이는데
생성자는 항상 반환값이 없으므로 void를 안 붙임.
1. 클래스 이름과 같아야함.
2. 리턴값이 없음.
3. 모든 클래스는 반드시 생성자를 가져야함. (한 개 이상.)
객체 생성때, Card c = new Card(); ---> Card() 생성자 호출 부분이었음.
같은 이름의 메서드니까, 오버로딩, 그러면 매개변수가 달라야함.
기본 생성자
- 매개 변수가 없는 생성자
- 생성자가 하나도 없을 때만, 컴파일러가 자동 추가.
((((그래도 작성해두는 게 좋다. 제대로된 클래스라면 꼭 작성해야함))))))
매개변수 있는 생성자
우리가 생성자를 왜써야하냐?
여러줄 써야할 거를 1줄로만 쓸 수 있기 때문.
만약 매개변수 있는 생성자가 없다면
Car c = new Car(); // 참조변수 c를 선택해서 Car 클래스의 객체를 생성한다.
c.color = "white"; // 참조변수 c를 이용해서 필드값을 하나하나 호출하여 초기화한다. c.필드명 = ~~ 이런 식.
c.gearType = "auto";
c.door = 4;
로 작성해야함.
그런데 이를 한 줄로 줄여주는 것이 생성자. 객체 생성할때 초기화할 값을 대입해서 객체를 생성하는 것.
Car c = new Car("white", "auto", 4);
여기서 생성자는 new 연산자 이후 Car("white", "auto", 4); 이 부분.
생성자가 객체를 생성하는 게 아님. 객체를 생성하는 건 new 연산자. 생성자가 하는 일은 객체 초기화.
원하는 값으로 셋팅하기 위해 만든게 생성자임.
'JAVA > 자바의 정석 기초편_남궁성(2020)' 카테고리의 다른 글
단일 상속, Object 클래스 (0) | 2022.07.06 |
---|---|
포함 관계(Composite, has-a, 90%가 포함 관계!!) (0) | 2022.07.06 |
상속관계 (0) | 2022.07.06 |
오버로딩(Overloading) (0) | 2022.06.25 |
static 메서드와 인스턴스 메서드 (0) | 2022.06.25 |