JAVA/공부

자바 제어자-2

GaeGim 2022. 7. 2. 23:45
반응형
  • final 제어자

필드, 지역 변수, 메서드, 클래스 앞에 위치할 수 있다. 각 위치마다 의미가 다르다.

 

 

· final 변수 : 한 번 대입된 값을 수정할 수 없다(변수가 저장한 최종값. 최종 변수)

final 필드의 초기화는 반드시 생성자에서 한다. 일반 필드와 달리 강제 초기화되지 않기  때문이다.

 

※ final 변수에 원래 값을 또 대입해도 될까?

final 변수 값을 변경할 때는 값을 기준이 아니라 한 번 대입을 했는지 안했는 지가 초기화할 수 있는 기준이 된다. 값이 동일하던 안하던 필드에 값이 한 번 대입되면 이후에 또 값을 입력하는 행위는 불가하다

 

· 메모리 구조

필드는 일단 멤버이기 때문에 final이든 아니든 객체 속에 포함되지만 객체 생성 시 final 필드값은 상수 영역에 1개 복사된다. 메서드 지역 변수일 땐 스택메모리에 저장되지만 final 지역 변수는 상수 영역에 1개 복사된다.

 

· 사용 목적 : 어떤 필요에 의해 복사본을 하나 만들어놓아 원본이 삭제된 이후에도 그 값을 활용할 수 있도록 해주기 때문

 

 

 

· final 메서드와 final 클래스

final 메서드 : 더이상 메서드 기능을 변경할 수 없다 -> 오버라이딩 불가

final 클래스 : 더 이상 자식 클래스가 없다 -> 상속 불가

 

 

 

  • abstract 제어자

· abstract 메서드, abstract 클래스

 

abstract 메서드 : 중괄호도 없고 기능도 없는 메서드

부모 클래스 메소드가 아무런 기능을 수행하지 않는다면 추상메서드로 정의하는게 효율적이다.

 

 

 

반응형

'JAVA > 공부' 카테고리의 다른 글

예외 처리  (0) 2022.07.11
이너 클래스와 이너 인터페이스  (0) 2022.07.11
클래스 상속과 다형성  (0) 2022.07.02
자바 제어자-1  (0) 2022.07.02
클래스 외부 구성 요소  (0) 2022.07.02