"이것이 자바다" 정리6-2

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