BEDAY 13
생성자(Constructor)
생성자의 목적: 인스턴스 생성시 멤버변수들의 초기화
생성자의 이름은 반드시 클래스의 이름과 동일
생성자는 리턴 타입이 없다.
생성자도 매개변수(argument)를 가질 수 있습니다.
생성자도 오버로딩(overload) 가능
클래스를 만들 때, 생성자를 따로 만들지 않으면
'디폴트 생성자(default constructor)'를 자동으로 만들어줌.
디폴트 생성자란 : 매개변수가 없는 생성자. 모든 멤버변수는 기본값으로 초기화
****(주의) 클래스에서 하나 이상의 생성자를 만들게 되면,
****자동으로 디폴트 생성자를 만들어 주지 않습니다.****
(강력권장) 아무일도 안하더라도 디폴트 생성자는 반드시 만들어 주자.
캡슐화, 은닉, 추상화
클래스 안에 필요한 '속성' 과 '행동' 을 멤버로 묶고
외부에서의 '직접적인 접근을 제한'하여
객체의 데이터 와 메소드를 은닉(hiding)하고,
사용자에게는 필요한 기능만 제공하여 추상화(abstraction) 하는
객체지향 기술을 '캡슐화(encapsulation)' 라고 한다
클래스의 멤버변수를 접근하기 위한 기능을 제공하는 메소드를
getter , setter 라 한다
getter : 멤버변수의 값을 리턴해주는 메소드
setter : 멤버변수의 값을 변경해줄 수 있는 메소드
* getter, setter 바로만드는 단축키 ALT + SHIFT + S
클래스 안에서 this :
객체 내에서 자기자신(인스턴스)을 가리킴
메소드 체이닝 (method chaining)
자기자신을 리턴하여, 연이어 메소드
호출 가능케 하는 메소드 설계
보통 setter 와 이와 같은 동작을 수행하는 메소드들에 적용하면 좋다
메소드에서 this를 return 하면
호출한쪽에서 곧바로 연이어 호출 가능
객체.메소드1().메소드2().메소드2()....
메소드체이닝을 사용하면, 반복되는 지루한 코딩을 줄여줄수 있다.
프로그래밍시 각 메소드가 무엇을 리턴하는지는 항상 예의주시해야 합니다.
접근권한 수식어(Access Modifier) 접근제한자
1) 종류: private, (default), protected, public
2) 기능
- 멤버 변수, 멤버메소드에 대한 접근 권한을 제한
3) private
'자기자신'이 선언된 클래스에서만 사용 가능

4) (default)
'자기자신' + '같은 패키지'에 있는 클래스들에서는사용 가능

5) protected
'자기자신' + '같은 패키지' + '상속받은 클래스' 에서 사용 가능
다른 패키지의 클래스라도 '상속 받으면' 사용 가능하다.

6) public : 어디서든 사용이 가능하다.
사용범위: private < (default) < protected < public
※ 클래스에 붙는 접근제한자는 딱 두가지 입니다
(default) , public
클래스의 접근 권한 수식어: public, (default)
1. public class: 어디에서나 인스턴스 생성이 가능한 클래스
(주의) public 클래스의 이름은 .java 파일 이름과 반드시 같아야 함
2. (default) class: 같은 패키지에 있는 클래스들에서만 인스턴스 생성이 가능

'Language > JAVA1' 카테고리의 다른 글
| Singlton 디자인 패턴 응용 (0) | 2022.02.12 |
|---|---|
| [JAVA 13] static, Singleton 디자인, final, 상속 (0) | 2022.02.04 |
| [JAVA 11] 정규 표현식, 클래스 (0) | 2022.02.02 |
| [JAVA 10] 문자열 메소드, 정규표현식 (0) | 2022.01.31 |
| JAVA 09 (메소드 오버로딩, 재귀 함수, 호출) (0) | 2022.01.31 |