21.02.14 [정적 멤버, 패키지, 접근 제한자]

박종찬·2021년 2월 14일
0

TIL

목록 보기
80/89

✔️ 인스턴스(객체) 멤버

  • 객체를 생성한 후 사용할 수 있는 필드 & 메소드
    • 인스턴스 필드 : 힙 영역의 객체 마다 가지고 있는 멤버
    • 인스턴스 메소드 : 객체가 있어야 호출 가능한 메소드
  • 객체 내부에서 인스턴스 멤버(필드, 메소드)에 접근하기 위해서는 this 키워드를 사용한다

✔️ 정적 멤버

  • 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드
  • 인스턴스 멤버는 힙 영역에 있지만 정적 멤버는 메소드 영역에 있다
  • 정적 멤버는 객체마다 가지고 있을 필요가 없는 공용 데이터를 이용할 때 사용한다
    • 계산기의 더하기, 뺄셈 기능 등

정적 멤버 선언 및 사용

  • 정적 메소드에서 인스턴스 멤버를 사용할 경우 객체를 생성한 후 참조 변수로 접근해야 한다
    • 또는 인스턴스 멤버를 정적 멤버로 바꿀 수 도 있다

✔️ 패키지

  • 패키지의 형태는 폴더이며 단순히 폴더 기능만 있는 것이 아닌 클래스의 일부분
    • 즉, 클래스를 유일하게 만들어주는 식별자 역할을 한다
    • 클래스 이름이 같더라도 패키지가 다르면 다른 클래스로 인식한다
  • 상위패키지.하위패키지.클래스
  • 패키지 이름의 중복 방지를 위해 도메인 이름으로 패키지를 만든다
    • 도메인 이름의 역순으로 지어 포괄적인 이름이 상위 패키지가 되도록 하기 위함

예) com.chan.project

  • Package Explorer
  • Navigator

✔️ 접근 제한자

  • 클래스 및 인터페이스, 그리고 이들이 가지고 있는 멤버의 접근을 제한하기 위해 사용된다

public

  • 외부 클래스가 자유롭게 사용할 수 있도록 한다
  • 다른 패키지에도 사용하려면 public을 적어야한다

protected

  • 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다

private

  • 자신의 클래스에서만 사용할 수 있도록 한다
  • 외부 클래스 및 다른 패키지에서도 접근이 불가능하다

default

  • 접근 제한자를 사용하지 않을 경우 자동으로 default 접근 제한을 가진다
  • 같은 패키지에 소속된 클래스에서만 사용할 수 있다

✔️ Getter / Setter

  • 클래스의 필드는 외부에서 접근하지 못하도록 막고 메소드를 통해 외부에서 필드를 접근하도록 하기 위해 만들어진 메소드
  • 무결성을 위함
  • 필드의 값을 외부로 리턴해주는 메소드를 Getter
  • 필드의 값을 외부로부터 받아 변경하는 메소드를 Setter

profile
반가워요! 사람을 도우는 웹 개발자로 성장하기! :)

0개의 댓글