IT/자바

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

김보리 2021. 11. 30. 14:07
728x90
반응형

인스턴스 멤버와 정적 멤버

 

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

 

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

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

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

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

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

 

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

  • 싱글톤 작성 방법





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

 

final 필드의 초기값 주는 방법

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

 

인스턴스 final 필드

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

 

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

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

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

 

패키지

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

 

import문

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

 

접근제한자(Access Modifier)

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

 

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

 

클래스 접근 제한 

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

 

생성자의 접근 제한

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

 

Getter와 Setter 메소드

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

 

728x90
반응형