반응형
- 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 |