>  기사  >  Java  >  자바에서 최종이란 무엇입니까?

자바에서 최종이란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-12-26 13:33:194068검색

자바에서 최종이란 무엇입니까?

final 키워드의 기본 사용법

Java에서는 final 키워드를 사용하여 클래스, 메소드, 변수(멤버 변수 및 로컬 변수 포함)를 수정할 수 있습니다. 이 세 가지 측면에서 최종 키워드의 기본 사용법에 대해 알아 보겠습니다. (추천 학습: java 강좌)

1, 수식자 카테고리

클래스가 final로 수정되면 이 클래스를 상속할 수 없음을 나타냅니다. 즉, 클래스를 절대 상속하지 않으려면 final로 수정할 수 있습니다. final 클래스의 멤버 변수는 필요에 따라 final로 만들 수 있지만 final 클래스의 모든 멤버 메서드는 암시적으로 final 메서드로 지정된다는 점에 유의하세요.

final을 사용하여 클래스를 수정할 때는 이 클래스가 나중에 상속에 사용되지 않거나 보안상의 이유로 사용되지 않는 한 신중하게 선택해야 합니다. 클래스를 final 클래스로 설계하지 마세요.

2. 수정 방법

다음 구절은 "Java 프로그래밍 생각" 4판 143페이지에서 발췌합니다.

"최종 방법을 사용하는 이유는 두 가지입니다. 첫 번째 이유는 두 번째 이유는 효율성 때문입니다. 초기 Java 구현 버전에서는 최종 메소드가 인라인 호출로 변환되지만 메소드가 너무 크면 인라인 호출 밴드가 표시되지 않을 수 있습니다. . 최신 Java 버전에서는 이러한 최적화를 위해 최종 메서드를 사용할 필요가 없습니다. "

따라서 하위 클래스에서 재정의되지 않도록 명시적으로 메서드를 설정하세요. 즉, 상위 클래스의 마지막 메서드는 하위 클래스에 의해 재정의될 수 없습니다. 즉, 하위 클래스는 상위 클래스와 동일한 메서드를 가질 수 없습니다.

최종 수정 메서드는 이 메서드가 이미 "최종 및 최종"이라는 의미입니다. 즉, 이 메서드는 재정의될 수 없습니다(여러 최종 수정 메서드가 오버로드될 수 있음).

여기서 주목해야 할 점은 재작성의 전제는 하위 클래스가 상위 클래스로부터 이 메서드를 상속할 수 있다는 것입니다. 상위 클래스의 최종 수정된 메서드에도 비공개 액세스 제어 권한이 있으면 하위 클래스가 발생하게 됩니다. 이 메서드에 직접 상속할 수 없습니다.

따라서 이번에는 서브클래스에서 동일한 메소드 이름과 매개변수를 정의할 수 있습니다. 이때 덮어쓰기와 최종 충돌은 더 이상 발생하지 않지만 서브클래스에서 새로운 메소드가 재정의됩니다. (참고: 클래스의 private 메소드는 암시적으로 final 메소드로 지정됩니다.)

3. 수정된 변수 수정된 변수는 final에서 가장 일반적으로 사용되는 위치이며, 이 글에서 다음에 중점을 둘 부분이기도 합니다.

최종 멤버 변수는 상수를 나타내며 한 번만 할당할 수 있으며 할당 후에도 값이 변경되지 않습니다.


final이 기본 데이터 유형을 수정한다는 것은 기본 데이터 유형이 초기화되면 값을 변경할 수 없음을 의미합니다. final이 참조 유형을 수정하면 초기화 후에는 다른 객체를 가리킬 수 없습니다. 참조가 가리키는 객체의 내용이 변경될 수 있습니다. 참조되는 값은 주소이고 final은 값, 즉 주소의 값이 변하지 않도록 요구하기 때문에 본질적으로 같은 것입니다.


final은 멤버 변수(속성)를 수정하며 명시적으로 초기화되어야 합니다. 초기화 방법에는 두 가지가 있는데, 하나는 변수 선언 시 초기화하는 방법이고, 두 번째 방법은 변수 선언 시 초기값을 할당하지 않고, 변수가 위치한 클래스의 모든 생성자에서 변수에 할당하는 것이다. . 초기값.


함수의 매개변수 유형이 final로 선언되면 매개변수가 읽기 전용이라는 의미입니다. 즉, 매개변수를 읽고 사용할 수 있지만 매개변수의 값을 변경할 수는 없습니다.

위 내용은 자바에서 최종이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.