관리 메뉴

Frog is cry

멤버 본문

JAVA/개념정리

멤버

Frog is cry 2020. 7. 20. 20:48

클래스에 선언된 필드와 메소드가 모두 객체 내부에 포함되는 것은 아니다.
객체가 있어야 사용 가능한 멤버가 있고, 그렇지 않는 멤버도 있다.

인스턴스 멤버 :
> 객체마다 가지고 있는 넘버, 객체를 생성한 후 사용할 수 있는 필드와 메소드
인스턴스 필드 : 
> 힙 영역의 객체 마다 가지고 있는 멤버, 객체마다 다른 데이터를 저장
인스턴스 메소드 :
> 객체가 있어야 호출 가능한 메소드, 클래스 코드(메소드 영역)에 위치하지만, 이해하기 쉽도록 객체마다
가지고 있는 메소드라고 생각해도 됨.



정적 멤버 :
> 객체와 상관없는 멤버, 클래스 코드(메소드 영역)에 위치
> 클래스에 고정된 멤버로서 객체 생성하지 않고 사용할 수 있는 필드와 메소드


정적 필드 및 상수 :
> 객체 없이 클래스만으로도 사용 가능한 필드

정적 메소드 : 
> 객체가 없이 클래스만으로도 호출 가능한 메소드
> 정적 메소드 선언 시 그 내부에 인스턴스 필드 및 메소드 사용 불가
> 정적 메소드 선언 시 그 객체 자신을 참조한 this 키워드 사용 불가

this
> 객체 내에서 인스턴스 멤버에 접근하기 위해 사용
> 생성자와 메소드의 매개 변수 이름이 필드와 동일할 경우, 필드 임을 지정하기 위해 주로 사용

인스턴스 멤버와 정적 멤버 선택 기준
> 객체마다 다를 수 있는 필드 값 -> 인스턴스 필드로 선언
ex) String color;  // 계산기별로 색깔이 다를 수 있음

> 그렇지 않고 객체마다 다를 필요가 없는 필드값 -> 정적 필드로 선언''

싱글톤(singleton)
> 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 코딩 기법

싱글톤 작성 방법
> 클래스 외부에서 new 연산자 등에 생성자 호출하는 것 불가하도록 private 접근 제한자 사용
> 자신의 타입인 정적 필드 선언 후 자신의 객체 생성해 초기화
> 외부에서 호출할 수 있는 getInstance() 선언
> 정적 필드에서 참조하는 자신의 객체 리턴

final 필드
> 초기값이 저장되면 최종값이 되어 프로그램 실행 도중 수정 불가

final 필드의 초기값 주는 방법
> 단순 값일 경우 필드 선언 시 초기화(주로 정적 필드(상수)일 경우)
> 객체 생성 시 외부 데이터로 초기화 필요한 경우 생성자에서 초기화(주로 인스턴스 필드일 경우)

인스턴스 fianl 필드
> 객체에 한번 초기화된 데이터를 변경 불가로 만들 경우. ex) 주민번호

정적 final필드 (관례적으로 모두 대문자로 작성)
> 불변의 값인 상수를 만들 경우. ex) PI



'JAVA > 개념정리' 카테고리의 다른 글

상속  (0) 2020.07.22
접근권한 제어자  (0) 2020.07.20
메소드 오버로딩  (0) 2020.07.20
생성자  (0) 2020.07.20
메소드  (0) 2020.07.20
Comments