9) Java - 클래스(3)
22.3.14
3주차 시작
6장 클래스까지 종료 후 다시 복습 시작!
- 이거시 Java 다 -
6장. 클래스
1) 인스턴스 맴버
- 객체마다 가지고 있는 필드와 메서드 : 이들을 각각 인스턴스 필드, 인스턴스 메서드라고 함
- 인스턴스 맴버는 객체 소속이기에 객체 생성 없이는 사용 불가
- This : 객체 참조 번지를 가진 키워드(인스턴스 필드 소환용) / 매개변수와 필드명이 동일할때 구분용
2) 정적 맴버(Static)
- Static : 클래스에 고정된 필드와 메서드
- 정적 맴버는 클래스에 소속 / 즉 객체 내부에 존재 x, 메서드(스태틱)영역에 존재
- 정적 맴버는 객체 생성 안하고 클래스로 바로 접근해 사용
- 클래스 이름과 도트 연산자로 접근
- 정적 메소드와 정적 블럭 작성시 주의(객체가 없어도 실행 가능/블록 내부에 인스턴스 필드 or 메소드불가)
- Static블록, 정적 메서드 : 정적 맴버만 사용가능
- 생성자, 비정적 메서드 : 정적 맴버, 인스턴스 맴버 모두 사용 가능
3) 싱글톤
- 하나의 애플리케이션 내에 단 하나만 생성되는 객체
- 외부에서 new 연산자로 생성자를 호출 할 수 없도록 막기(Private 접근 제한자를 붙임)
- 클래스 자신의 타입으로 정적필드 선언 : 자신의 객체 생성해 초기화 / private 접근제한자 붙이기
- getInstance() 선언
4) Final 필드
- Final 필드는 한 번 초기화 되면 값을 변경할 수 없음
- 반드시 필드선언시 또는 생성자시 초기화 되어야함
- 상수(Static Fianl) : 정적 Final 필드(공용 데이터, 정적 맴버, 전부 대문자로 작성 및 _로 연결)
- fianl, Static final 필드는 초기화된 값을 변경 불가
5) 패키지
- 일종의 폴더(디렉토리) 개념
- 클래스를 기능별로 묶어서 그룹 이름을 붙여 놓은것
- 패키지도 클래스 이름구분에 들어가기에 클래스 이름은 같고 패키지 이름 다르면 다른 클래스 취급
- Import : 패키지 안에 포함된 클래스간 이름으로 사용가능. 임포트 문이 있어야 다른 패키지 클래스 사용가능
6) 접근제한자
- 클래스 및 클래스 구성 맴버에 대한 접근을 제한
- 다른 패키지에서 클래스 사용제한 / 클래스로 부터 객체 생성 제한 / 특정 필드 및 메서드 제한
- 클래스 접근 제한자 : public / default(즉 클래스에서 사용할 수 있는건 Public뿐)
- 필드 메서드 접근제한자 : public, protected, defaultm, private / default는 생략시 기본설정
7) Getter와 Setter
- 클래스 선언할때 필드는 일반적으로 Private 접근제한
- 읽기 전용 필드가 있을 수 있음(Getter 필요성) / 외부에서 값 변경 주지 못하도록(Setter의 필요성)
- Getter : Private 필드 값을 리턴 하는 역할(필요한 경우 필드값 가공)
- Setter : 외부에서 주어진 값을 필드값으로 수정
- 필드값 작성 후 alt shift s 로 바로 게터 세터 자동입력 가능
---------