춘식이왔엉
초보 개발자의 기록
춘식이왔엉
  • 분류 전체보기
    • ElasticSearch
    • ETL
    • 네트워크
    • 교육과정 기록
      • 🎨UI구현
      • 💻back-end
      • Java Script
      • jQuery
      • 💾DB & SQL
      • ☕ Java
      • 🧇 Python
      • 🪀알고리즘
    • 📘에러 노트
    • git
    • 자유로운 이야기
      • 📚자격증
      • 🏋️‍♂️운동 기록

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
춘식이왔엉

초보 개발자의 기록

4.8 OOP - 싱글톤 / final / 패키지
교육과정 기록/☕ Java

4.8 OOP - 싱글톤 / final / 패키지

2022. 4. 8. 22:00

싱글톤(Singleton)

하나의 애플리케이션 내에서 단 하나만 생성되는 객체

 

< 만드는 방법? >

 

* 외부에서 new 연산자로 생성자를 호출할 수 없도록 막기

- private 접근 제한자를 생성자 앞에 붙임

 

* 클래스 자신의 타입으로 정적 필드 선언

- 자신의 객체를 생성해 초기화

- private 접근 제한자 붙여 외부에서 필드 값 변경 불가하도록

 

* 외부에서 호출할 수 있는 정적 메소드인 getInstance() 선언

- 정적 필드에서 참조하고 있는 자신의 객체 리턴

 

 

final 필드

최종적인 값을 갖고 있는 필드 = 값을 변경할 수 없는 필드

 

* final이 값을 변경할 수 없다는 것은 동일하다.

그럼 언제, 왜 사용?

 

1. 필드 - 객체가 사라질 때까지 필드값이 바뀌면 안될 때

2. 매개변수 - 인자값을 보호해야할 때

3. 지역변수 - ex) final double pi = 3.14159;

4. 타입선언부 - 상속을 못하게 만든다. class 앞에 붙이면 자식 class를 가질 수 없다. 

5. 메소드 - 메소드를 오버라이딩 할 수 없게 한다. 

 

 

*상수(static final)

= 정적 final 필드

 

final 필드

- 객체마다 가지는 불변의 인스턴스 필드

ex) 주민번호 -> 바뀌지 않아. 하지만 사람마다 달라

 

상수

- 객체마다 가지고 있지 않음

- 메소드 영역에 클래스 별로 관리되는 불변의 정적 필드

- 공용 데이터로서 사용

ex) 원주율 PI

 

--> 전부 대문자로 작성 / 다른 단어가 결합되면 _로 연결

 

 

*패키지

클래스를 기능별로 묶어서 그룹 이름을 붙여 놓은 것

- 파일들을 관리하기 위해 사용하는 폴더(디렉토리)와 비슷한 개념

- 패키지의 물리적인 형태는 파일 시스템의 폴더

 

import문

- 패키지 내에 같이 포함된 클래스간 클래스 이름으로 사용 가능

- 패키지가 다른 클래스를 사용해야 할 경우

-> 패키지 명 포함된 전체 클래스 이름으로 사용

-> import문으로 패키지를 지정하고 사용

'교육과정 기록 > ☕ Java' 카테고리의 다른 글

[4.11] 접근제한자/어노테이션  (0) 2022.04.12
for문을 이용해 별찍기 [별피라미드]  (0) 2022.04.11
4.5~4.6 OOP와 클래스  (0) 2022.04.07
자바빈즈 클래스 ( java beans class)  (0) 2022.04.06
4.4 객체지향프로그래밍(OOP)  (0) 2022.04.05
    '교육과정 기록/☕ Java' 카테고리의 다른 글
    • [4.11] 접근제한자/어노테이션
    • for문을 이용해 별찍기 [별피라미드]
    • 4.5~4.6 OOP와 클래스
    • 자바빈즈 클래스 ( java beans class)
    춘식이왔엉
    춘식이왔엉
    개발 공부를 하면서 정리하는 블로그입니다.

    티스토리툴바