Backend/Do it 자바 완전 정복 강의

11장 자바 제어자 - final, abstract

solog 2025. 1. 20. 04:34

11.1 자바 제어자(modifier) #2 (final, abstract)

<final>

- final은 1) 필드/지역변수 앞에  2) 메서드 앞에 3) 클래스 앞에 붙는다.

- final은 생성자 안에서라도 꼭 마지막으로 초기화를 해줘야한다. (3번)

- final이 필드이든 지역변수이든 지정된 값을 바꿀 수 없다.

- 모든 지역변수들은 stack 메모리에 생성 

- 파이널 변수들은 생성될 때 파이널 영역에 복사되어 생성된다. (힙-필드이든 스택-지이든)

- 값을 바꿀 수 없는 이유는 값이 처음 들어간 순간에 (선언되는 순간) 1번 복사되기 때문에 그 순간 이후에는 값을 바꿀 수 없게 만드는 것. (원본을 바꿀 수 있다면 복사본은 쓸모없어지기 때문이다.)

- final 메서드는 마지막 메서드라는 의미이므로 override가 불가한 것이다.

- final 클래스는 마지막 클래스라는 의미로, 상속이 불가능하다.

<abstract>

- 추상클래스는 내부에 추상메서드를 하나 꼭 포함해야 한다. (필수)

- 장점은 오류 발생을 체크할 수 있다. => 오류가 발생하는 이유는 abstract 클래스를 사용하면 상속이 되어지는데, 새로운 메서드를 추가정의하면 abstract 메서드를 하나라도 가지고 있으면 abstract 클래스여야하는데 일반 class로 정의되었기 때문에 오류가 발생하는 것이다. 

- 정확하게 오버라이딩해서 완성된 메서드를 완성된 메서드로 덮어섰을 때 제대로된 class를 생성할 수 있다.

 

 

https://www.youtube.com/@doit4312/playlists

 

Do it 자바 완전 정복 동영상 강의

Do it 자바 완전 정복 동영상 강의입니다.

www.youtube.com

위 강의를 듣고 작성하였습니다.