접근 지정자(Access Modifier)
: 객체지향 프로그래밍은 캡슐화가 중요 합니다.
클래스 외부에서 클래스 내부로 쉽게 접근하지 못하게 함으로써 클래스 정보를 보호할 수 있습니다.
이처럼 클래스와 클래스의 멤버(변수, 메소드)에 대한 접근 정도를 지정할 때
사용하는 것이 접근지정자 입니다.
자바에서 많이 사용하는 접근 지정자는 아래와 같습니다.
수정자 클래스내부 같은 패키지 서브 클래스 다른 클래스
(같은 폴더)
public O O O O
protected O O O X
default O O X X
(안쓰는게 default)
private O X X X
클래스 변수
: 클래스 변수는 static 키워드를 사용하여 선언하고 전역변수의 개념을
포함하고 있습니다. 전역 변수라는 의미는 객체가 메모리에서 완전히
사라지기 전까지 여러개의 객체 참조 변수에서 값을 공유 할 수 있습니다.
그렇기 때문에 클래스 변수는 객체 사이의 통신이나 공용 데이터를
처리할 때 사용하고, 객체 참조 변수 없이 직접 클래스 이름을 통해 접근해서
사용할 수 있습니다. 클래스 변수는 같은 클래스의 인스턴스 변수에서 값을
공유합니다. 또한 '클래스.클래스변수이름' 으로 직접 값을
불러올 수 있습니다.
Math.random();
종단 변수
: 종단 변수는 final 키워드를 사용해 변수를 상수로 만드는 것을 의미합니다.
변수를 선언할 때 final 키워드를 변수 앞에 붙여서 사용합니다.
종단 변수는 단 한번만 초기화 될 수 있습니다.
값을 변경할 수 없습니다. 상수는 변하지 않는 값이기 때문에
변수를 상수로 만든다는 의미는 값을 변경할 수 없다는 뜻입니다.
종단 변수는 관례상 대문자를 사용합니다.
멤버 변수
: 자바의 멤버 변수는 4가지 종류가 있습니다.
객체 속성변수와 객체 참조변수는 객체에서 사용하는 객체변수입니다.
클래스 변수는 전역 변수의 역할을 하며 종단 변수는 상수를 만들 때
사용합니다.
- 객체 속성 변수 (필드)
- 객체 참조 변수
멤버 변수 - - 클래스 변수 (static)
- 종단 변수 (final)
멤버 변수를 선언하는 방법은 일반적인 변수 선언과 동일합니다.
멤버 변수를 초기화하지 않으면 default 값을 갖습니다.
public int a; => 일반 멤버변수 a선언
private final int B = 7; => 상수 B선언
protected static int c = 88; => 클래스 변수 c선언