[자바] final필드

BEHE_LIT·2020년 1월 20일
0

Java공부

목록 보기
13/19

final필드란

초기값이 저장되면 최종적인 값이 되어 프로그램 실행 도중에 수정할 수 없다.

Q.프로그램 실행도중에 수정할 수 없다?

사실 이게 뭔소린지 잘 모르겠지만 일단 한번 초기화된 값은 더이상 수정될 수 없다고 받아들였다.

public class Final {
	final String nation = "Korea";
	int ssn;
	
	public Final(int ssn) {
		this.ssn=ssn;
	}
	
	
	public static void main(String[] args) {
		Final flash = new Final(32342);
		System.out.println(flash.ssn);
		
		
		flash.ssn = 3434;
		System.out.println(flash.ssn);
		
	}

}

A. 실험결과 일반적인 int로 선언된 위의 코드는 ssn값이 아무 문제없이 변경되었으나 아래 코드에서 final필드로 바꾸는 순간 컴파일 에러가 발생했다.

public class Final {
	final String nation = "Korea";
	final int ssn;
	
	public Final(int ssn) {
		this.ssn=ssn;
	}
	
	
	public static void main(String[] args) {
		Final flash = new Final(32342);
		System.out.println(flash.ssn);
		
		
		flash.ssn = 3434;
		System.out.println(flash.ssn);
		
	}

주의사항

final필드로 선언해도 서로다른 객체에서 인자값을 달리하여 호출할 경우에는 final선언의 효력을 못보고 평소처럼 인자값에 따라서 각 객체에 값이 저장된다.

profile
방랑자의 현장에 오신걸 환영합니다.

0개의 댓글