2023. 2. 18. 14:19ㆍ자바/이론 공부
이 게시글은 내가 "이것이 자바다" 책을 읽고 노트에 정리해놨던 내용들을 검색하기 쉽게 데이터로 백업하는 용도의 글이다.
문제가 된다면 삭제하겠음.
6장 클래스
*싱글톤
- 전체 프로그램에서 단 하나의 객체만 만들도록 할때.
- 외부에서 생성자 호출되면 안됨. 생성자 호출하면 객체 만들어짐 = 호출한만큼 객체 생성.
- 생성자 앞에 private, 필드도 정적필드, 정적메소드
- 정적메소드를 통해서만 객체 이용 가능.(이것이 자바다 243~244p 확인)
*final(최종적)
- final 필드는 초기값 저장시 최종적인 값이 되어 프로그램 실행도중 수정 안됨.
- 프로그램 도중 절대 변하지 않을 값. 상수랑은 다름.
- 객체마다 다른 값의 final 변수를 가질수도 있음.(클래스에 저장되어있는게 아니라 객체에 저장되어있는 거라 가능!)
- 생성자의 매개값을 통해 여러가지 값을 가질 수 있음.
*상수 static final
- 불변의 값
- 객체마다 저장할 필요가 없는 공용성을 띔.
- 객체마다 저장x, 클래스에 포함.
- 한번 초기값 저장시 변경 x.
- 상수 이름은 모두 대문자.
+)상수와 final이 한번 초기값 저장시 변경이 안되는건 같지만 상수는 클래스에 포함이고 final은 객체에 포함이라 상수는 객체마다 저장하는게 아니라서 하나의 값을 한 프로젝트에서 계속 갖고있음. final은 한 객체마다 서로 다른 값을 한 프로젝트에서 계속 갖고있음.
*패키지는 보통
ex)naver.com 도메인이면
com.naver.projectName < 이런 식으로 지음.
*접근제한자
public > protected > default > private
1. public
- 클래스, 필드, 생성자, 메소드에 사용.
- 모든 클래스가 사용가능
2. protected
- 필드, 생성자, 메소드에 사용
- 같은 패키지나 자식 클래스만 사용
3. private
- 필드, 생성자, 메소드에 사용
- 자기빼고 다른 클래스는 다 사용 x. 오로지 getter, setter로만 접근 가능.
4. default
- 클래스, 필드, 생성자, 메소드에 사용
- 같은 패키지에 소속된 클래스에서만 사용 가능.
*import
- 다른 패키지의 클래스를 사용할 때.
*객체의 무결성
- 객체의 데이터를 외부에서 마음대로 읽고 변경하면 무결성이 깨짐.
ex)자동차의 속도는 음수가 될 수 없는데, 외부에서 음수로 변경하면 객체의 무결성이 깨짐.
=> 이를 해결하기 위해 필드데이터를 호출해서 직접적으로 변경하는 것보다 메소드를 통해서 간접적으로 데이터를 변경. 메소드를 이용해 데이터를 검증할 수 있기 때문. (setter)
'자바 > 이론 공부' 카테고리의 다른 글
"이것이 자바다" 정리 8장 인터페이스 (0) | 2023.02.22 |
---|---|
"이것이 자바다" 정리7 (2) | 2023.02.21 |
"이것이 자바다" 정리6-1 (0) | 2023.02.17 |
"이것이 자바다" 정리5-2 (0) | 2023.02.16 |
[Spring] Bean (0) | 2023.02.16 |