JAVA - final,static

Seongjin Jo·2023년 1월 2일
0

JAVA

목록 보기
5/5

✔ final


  • 한 번 값을 넣어두면 절대 바뀌지 않는 녀석이다.
  • 클래스, 메서드, 변수 각각에 붙을 수 있다.
  1. final이 붙어있는 클래스는 상속할 수 없다. 보안 , 효율성 측면 장점.
public final class SeongjinClass{...}
public class sss_jin extends SeongjinClass{...} //상속 불가
  1. 만약 어떤 클래스를 상속하는데 그 안에 final 메서드가 있다면, 오버라이딩으로 수정할 수 없다.
public class Post{
	public void m1(){...}
    public final void m2(){...}
}

public class Postic extends Post{
	public void m1(){...} //상속 가능
    public void m2(){...} //상속 불가능
}

3.final 변수는 한 번 값을 할당하면 수정할 수 없습니다. 즉, 초기화는 한번만 가능하다.

//이런식으로 final 붙여서 선언하면 수정 x
public static final double PI = 3.141592653589793;

final 붙여서 초기화만 해놓고 다른 값을 갖도록 할 수도 있다. 그 이후에 한 번 값을 할당하면 그 이후에는 수정할 수 없다. 'blank final' 변수라고 한다.

public class Test{
	private final int value;
	
    publuc setValue(int value){
    	this.value = value;
    }
    
    public int getValue(){
    	return value;
    }
}

4.final 변수의 짝궁, static

public static final double PI = 3.141592653589793;

static이 붙어있는 걸 볼 수 있다. 보통 이런 식으로 많이 쓴다. 이유는?

✔ static


  • static은 변수나 함수에 붙는 키워드인데, 어디에 선언하는 지에 따라 조금씩 다른 의미를 가진다.
  • 일반적 의미 : static을 붙이면 메모리에 딱 한 번만 할당되어 메모리를 효율적으로 사용할 수 있다. 메모리를 한 번 할당 한다는 것은 , 곧 같은 주소값을 공유한다는 것이다, 변수 하나로 여기저기 다 공유할 수 있다. --> final과 유사

✔ final과 static의 궁합


final 변수를 쓰면 그 값을 계속 그대로 쓴다는 의미. static과 함께 쓰면 메모리 측면에서 효율이 높아진다. blank final변수는 인스턴스마다 다른 값을 갖는다 --> 이런 경우 final이어도 초기화가 다르기 때문에 static을 사용하지 않는다.

0개의 댓글