여러가지 수식자(final, static, abstract)

|

################## final ##################

변수앞에 final이 붙으면 선언문이나 생성자 안에서 반드시 처음 값을 지정해야 하고, 그 변수의 값을 변경할 수 없다. 즉, final 변수에는 새로운 값을 저장할수 없다. 이때 처음 값을 설정하는 것을 '초기화' 라고 함.

 

abstract와는 대칭점에 있는, 상속/변경을 금지하는 규제.

 

한번 세팅된 값을 변경하지 못함.(필드)

 

클래스 앞에 final이 붙으면 해당 클래스는 상속할 수 없다. 즉, final 클래스를 확장하여 다른 클래스를 만들 수 없다.

 

<예시>

final String name = "Hee Eun"; 변경할수없는 문자열 값을 담는 name 이라는 변수를 선언하고 "Hee Eun'을 저장한다.

 

################## static ##################

static : '정적인, 정지된'

자바에서 static은 정지된 메모리, 즉 하나의 메모리 주소에 계속 저장한다는 의미.

 

변수 앞에 static이 붙으면 그 변수는 같은 메모리 주소에 값을 계속 저장. 해당 클래스로 생성된 객체들의 static 변수는 모두 같은 메모리 주소에 값을 저장하므로 결과적으로는 객체들끼리 그 값을 공유 할 수 있음.

 

<예시>

static int price;      같은 클래스에서 생성된 객체들과 값을 공유하고, 정수 값을 담는 price라는 변수를 선언한다.

 

메소드 앞에 static이 붙으면 클래스 메소드로 불리며 한 메모리 주소에 메소드 코드가 저장됨. 따라서 클래스와 그 클래스로 생성한 객체 모두가 메소드를 공유하고 객체를 생성하지 않아도 클래스 이름으로 바로 참조할 수 있다. 또한 static 메소드는 오버라이딩이 불가능하다.

 

<예시>

static void greeting(){   같은 클래스에서 생성된 객체들과 값을 공유하고, 리턴값이 없는 greeting 이라는 메소드를 선언한다.

 

################## abstract ##################

'Java' 카테고리의 다른 글

다형성  (0) 2019.06.07
인터페이스  (0) 2019.06.07
abstract  (0) 2019.06.07
패키지와 접근 제어(접근제한자)  (0) 2019.06.06
API와 API 문서 보는 법  (0) 2019.06.06
And