- 시작하게 된 계기 및 다짐 😮
이번 코드스테이츠의 백엔드 엔지니어링 개발자 부트캠프
에 참여하게 되면서 현직개발자 분들의 빠른 성장을 위한 조언 중 자신만의 블로그를 이용하여 배운 것 들을 정리하는게 많은 도움이 된다 하여 시작하게 되었다.
- 학습 목표 😮
목표 | 결과 |
---|---|
생성자의 이해와 활용 | O |
생성자의 매개변수 유무(오버로딩) | O |
this와 this() | O |
- 정리
생성자
1. 첫번째 생성자는 클래스의 이름과 같아야함
2. 생성자는 리턴 타입이 존재하지 않음 (Void 사용 x)
3. ★ 하위 클래스 생성자는 언제나 상위 클래스 생성자를 생성함(super()가 없을시 자동생성)
4. 생성자는 인스턴스와 될 때 인스턴스변수들을 초기화 시키는 역할
5 . new 키워드를 통해 생성자를 호출, (자식 클래스의 경우 부모클래스 생성자super()를 통해 부모 객체도 또한 생성)
★★ 자식 클래스의 heap 메모리 영역 내에 부모 클래스의 멤버의 인스턴스가 포함되어 있어 hashCode가 자식과 부모가같음
★★ 클래스를 만들 때는 자동으로 기본 생성자를 생성하는 것을 습관화하는 것이 바람직합니다.
_기본 생성자 : 매개변수가 없는 생성자 (선언하지 않을 경우 컴파일러가 자동적으로 생성)
-ex) 클래스명 (){};
_생성자(매개변수가 있는_ 기본생성자 오버로딩)
-ex) public 클래스명(타입 변수명, 타입 변수명){
this.변수명 = 변수명;
}
★ 기본 생성자 없이 매개변수가 있는 생성자만 만들 시, 아무것도 없는 기본 생성자는 사용불가
this()
- 클래스 생성자에서 다른 생성자를 호출 할 시 사용
- ★ 생성자는 this() 메서드는 항상 클래스 내 첫줄에 있어야 사용가능
this
- 클래스 내 필드 멤버를 호출 할 시 사용한다.
- 생성자의 매개변수와 클래스 내 필드의 변수가 같을시 구분하기 위해 사용
ex) public test(String model, int num){
this.model = model;
this.num = num;
(클래스 멤버) = (매개변수)
}
public class Test{
public static void main(String[] args){
Car car1 = new Car();
car1.name = "mustang";
...
Car car2 = new Car("ferrari", "red");
}
}
class Car{
String name;
String color;
Car(){System.out.println("show");};
Car(String name, String color){
this();
this.name = name;
this.color = color;
};
}
- 피드백 😮
- 앞으로 해야 될 것 😮