제한자

박준수·2022년 8월 20일
0

[ static ]

: '고정된'이라는 의미의 정적멤버. 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드. 객체에 소속된 멤버가 아니라 클래스에 소속된 멤버.

  • 사용처 : 필드를 선언할 때, 객체마다 가지고 있어야 할 데이터는 인스턴스 필드로 선언하고 공용 데이터라면 정적 필드로 선언.
	ex) public class Calculator {
    	String color; //계산기 별로 색깔이 다를 수 있음.
        static double pi = 3.141592; //계산기에서 사용하는 원주율 값은 동일.
  • 정적멤버 사용 : new 클래스 생성 없이 클래스 이름을 바로 호출. (클래스명.정적메소드)

  • 정적 초기화 블록 : 정적 필드는 초기값을 주는 것이 보통이나, 계산이 필요한 초기화 작업 시 정적 초기화 블록을 생성.

static String company = "Samsung";
static String model = "LCD";
static String info;

static {
	info = company + "-" + model;
    }
  • 주의점 : static은 객체없이도 실행되기에, 내부에 인스턴스 필드나 인스턴스 메소드 사용불가. 객체 자신 참조인 this도 사용불가. static은 static끼리만 사용 가능. static에서 인스턴스 멤버를 사용하고 싶다면, new 클래스 선언 후 사용.

[final]

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

  • 초기값 줄 수 있는 방법은 '필드 선언 시'와 '생성자에서' 주는 방법 두 개만 있음.

[static final]

: 원주율, 지구의 무게나 둘레 등 변하지 않는 불변의 값을 저장하는 필드. 객체마다 저장되고 매개값을 통해 여러 값을 가질 수 있는 final과 달리, 한번 초기값 저장되면 변경 불가.

  • 상수 이름은 모두 대문자로 작성하는 것이 관례.

[abstract]

: 선언부만 있고, 구현부가 없는 제한자. 오로지 오버라이딩을 위해 존재하며 abstract 자체로 클래스를 생성할 수 없고, 상속해야 사용할 수 있음.

profile
FrontofFrontEnd

0개의 댓글