생성자
- 인스턴스를 생성할 때 사용함.
- 생성자는 메소드와 비슷하나 return 타입이 없음. 클래스 이름과 같아야함.
- 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용함.
- 클래스 작성시, 생성자를 하나도 만들지 않았다면 자동으로 기본 생성자가 생성됨.
- 기본생성자는 매개변수를 하나도 받지 않는 생성자를 뜻함.
- 불변객체: 인스턴스가 만들어질 때 값을 넣어주고, getter 메소드만 가지고 있음, String class는 대표적인 불변객체,
- --> string이 가지고있는 모든 메소드는 string 내부의 값을 변화시키지 않음.
생성자 오버로딩
- 생성자는 매개변수의 개수가 다르거나, 타입이 다르다면 여러개를 가질 수 있음.
자신의 생성자를 호출 할 때는 this()를 사용함.
- this는 인스턴스 자기 자신을 참조할 때 사용하는 키워드.
- this() 생성자는 자기 자신의 생성자를 말함.
- this() 생성자는 생성자 안에서만 사용가능.
- this() 생성자는 생성자 안에서 super()생성자를 호출하는 코드 다음이나, 첫번째 줄에 위치해야함.
부모 생성자를 호출할 때는 super()를 사용함.
- 부모가 기본생성자가 없으면 자식의 생성자에서는 부모가 가지고 있는 생성자를 직접 super()를 이용해서 호출을 해야함.
- super는 인스턴스 부모를 참조할 때 사용하는 키워드임.
- super()생성자는 부모 생성자를 의미함.
- super()생성자는 생성자 안에서만 사용가능
- super()생성자는 생성자 안에서 첫번째 줄에만 올 수 있음.
- 생성자는 무조건 super()생성자를 호출해야함. 사용자가 super()생성자를 호출하는 코드를 작성하지 않았다면 자동으로 부모의 기본 생성자가 호출됨.
- 부모클래스가 기본 생성자를 가지고 있지 않다면, 사용자는 반드시 직접 super()생성자를 호출하는 코드를 작성해야힘.
'Java' 카테고리의 다른 글
Java - final클래스, 불변객체 String (0) | 2023.03.22 |
---|---|
Java - 추상 클래스 (0) | 2023.03.22 |
Java - 상속 (0) | 2023.03.20 |
Java - 추상화, 다형성, 패키지 (0) | 2023.03.18 |
Java - method, field (0) | 2023.03.18 |