티스토리 뷰
static과 final의 사용 방법
final은 상속불가 또는 변할수 없는 상수 선언에 사용되고,static은 공용의 변수를 만들때 사용되는 예약어 이다.
1.static
-인스턴스 변수는 하나의 클래스로 부터 생성되었더라도 각기 다른 값을 유지하지만, 클래스변수(static 멤버변수)
인스턴스에 관계 없이 같은 값을 갖는다. 하나의 변수는 모든 인스턴스가 공유하기 때문이다.
-멤버변수(클래스 변수는 인스턴스를 생성하지 않고 사용가능하다. 클래스명.static변수명 이런식으로 접근가능)
-메서드(인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다. 단 static 메서드 내에서는 인스턴스 멤버 들을 직접 사용할수 없다.)
-static이 선언된 메소드는 오버라이딩 되지 않고 메소드 숨김이 일어나 상속받은 클래스에서 사용이 불가능하다.
-static메소드 객체의 레퍼런스를 통한 call이아닌 클래스의 이름으로 메소드를 호출할 수 있습니다.
static 초기화블록
static {
//초기화 할 내용 선언
//main() 보다 먼저 수행되는 내용이 들어갑니다.
}
2.final
-변수에 사용하면 값을 변경할 수 없는 상수가 된다.
-메서드에 사용하면 오버라이딩을 할수 없게 된다.
-클래스에 사용되면 자신을 확장하는 자손클래스를 정희하지 못한다.(상속x)
public final int age = 40;
static int height = 180;
public class ssw_test {
public final int age = 40;
static int height = 180;
public static void main(String[] args) {
age = 40; //여기서 에러
height = 50;
}
}
위와 같이 age는 final로 정의 되어있기 때문에 새 할당이 불가능하기 때문에 에러가 난다.
'Java' 카테고리의 다른 글
Builder패턴 (0) | 2018.03.06 |
---|---|
자바7의 몇 가지 특징 (0) | 2017.03.30 |
JAVA8에 대해 알아보자(2) (0) | 2017.03.29 |
JAVA8에 대해 알아보자(1) (0) | 2017.03.29 |
jvm 메모리 (0) | 2017.03.29 |