자바의 정석
스터디 노트
static
인스턴스변수는 하나의 클래스로에서 각기 다른 값을 유지
클래스변수는 인스턴스에 관계없이 같은 값을 갖는다(하나의 변수를 모든 인스턴스가 공유하기 때문)
static이 붙은 멤버변수, 메서드, 초기화 블럭은 인스턴스를 생성하지 않고도 사용할 수 있다.
인스턴스메서드와 static 메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다.
static 멤버변수
1. 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다.
2. 클래스변수는 인스턴스를 생성하지 않고도 사용 가능 하다.
3. 클래스가 메모리에 로드될 때 생성된다.
static 메서드
1. 인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다.
2. static메서드 내에서는 인스턴스 멤버들을 직접 사용할 수 없다.
static 초기화 블럭
1. 클래스가 메모리에 로드될 때 한번만 수행
2. 주로 클래스변수를 초기화 하는데 사용
final
1. 변수에 사용되면 값을 변경할 수 없는 상수
2. 메서드에 사용되면 오버라이딩 할 수 없다.
3. 클래스에 사용되면 자신을 확장하는 자손 클래스를 정의하지 못하게 된다. (조상이 될 수 없다)
abstract
메서드의 선언부만 작성하고 실제 수행내용은 구현하지 않은 추상 메서드를 선언하는데 사용한다.
클래스에 사용되면 클래스 내에 추상 메서드가 선언되어 있음을 의미한다.
미완성 이기 때문에 인스턴스 생성할 수 없다.
접근제어자
public> protected > default > private
private : 같은 클래스 내에서만 접근 가능
protected : 같은 패키지 + 다른 패키지의 자손 클래스에서 접근
default : 같은 패키지 내에서만 접근 가능
'개발 > java' 카테고리의 다른 글
[java] 오버라이딩 / 오버로딩 / super (0) | 2018.10.07 |
---|---|
[java]객체지향프로그래밍1 (0) | 2018.10.07 |
[java] 자리수 맞추기, printf (1) | 2018.10.07 |