본문 바로가기
IT/자바

자바 정리 - 인스턴스 멤버와 정적 멤버

by 김보리 2021. 11. 30.
728x90
반응형

인스턴스 멤버와 정적 멤버

 

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

 

인스턴스 멤버 : 객체마다 가지고 있는 멤버

  • 인스턴스 필드 : 힙 영역의 객체마다 가지고 있는 멤버, 객체마다 다른 데이터를 저장
  • 인스턴스 메소드 : 객체가 있어야 호출 가능한 메소드
        클래스 코드(메소드 영역)에 위치하지만, 이해하기 쉽도록 객체마다 가지고
        있는 메소드

this : 클래스를 메모리에 올렸을 때 인스턴스, 객체 자기 자신을 가리킬 때

정적 멤버(static) : 객체와 상관없는 멤버 클래스 코드(메소드 영역)에 위치

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

 

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

  • 싱글톤 작성 방법





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

 

final 필드의 초기값 주는 방법

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

 

인스턴스 final 필드

  • 객체에 한 번 초기화된 데이터를 변경 불가로 만들 경우: ex) 주민 번호

 

정적 final 필드(관례적으로 모두 대문자로 작성)

  • 불편의 값인 상수를 만들 경우
  •  

상수 : 불변의 값을 저장하는 정적 필드, final static 키워드로 선언

 

패키지

  • 패키지의 물리적인 형태는 파일 시스템의 폴더
  • 패키지는 클래스의 일부분으로, 클래스를 유일하게 만들어주는 시겨라 역할
  • 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식
  • 클래스의 전체 이름은 패키지 + 클래스 사용해서 표현
  • 패키지 선언

 

import문

  • 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속된 경우
  • 해당 패키지 클래스 또는 인터페이스 가져와 사용할 것임을 컴파일러에 통지
  • 패키지 선언과 클래스 선언 사이에 작성
  • 하위패키지는 별도로 import를 해야함

 

접근제한자(Access Modifier)

  • 클래스와 인터페이스 및 이들이 가진 멤버의 접근 제한

 

  • public 접근 제한자
  • protected 접근 제한자
  • private 접근 제한자
  • default 접근 제한

 

클래스 접근 제한 

  • 같은 패키지 내에서만 사용할 것인지 다른 패키지 내에서도 사용할 수 있도록 할 것인지 결정

 

생성자의 접근 제한

  • 생성자의 접근 제한에 따라 생성자 호출 가능 여부 결정

 

Getter와 Setter 메소드

  • 외부에서 객체에 마음대로 접근할 경우 객체의 무결성 깨질 수 있음
  • Setter 메소드
  • Getter 메소드

 

728x90
반응형

댓글