프로그래밍 언어에는 컴파일러에게 데이터 조각이 일정하다는 것을 알리는 방법이 있습니다. 두 가지 요구 사항이 있습니다
1. 절대 변하지 않는 컴파일러 상수
2. 런타임에 초기화 된 값은이 값이 변경되지 않습니다.
Java 에서는 최종 수정 자 변수를 사용 하여이 두 가지 요구 사항을 달성하십시오.
<pre name = "code"> // 컴파일러 상수 개인 최종 int valueone = 9; private static final int value_two = 99; public static final value_three = 39; // 런타임에서 초기화 된 값은 값이 변경되지 않습니다.
기본 데이터 유형을 최종 수정하면 데이터를 일정하게 유지하고 변경하지 않습니다.
최종 개체 참조를 수정하면 참조가 일정하게 유지됩니다. 참조가 객체를 가리키도록 초기화되면 다른 객체를 가리 키도록 변경할 수 없습니다.
그러나 객체 자체를 수정할 수 있습니다
최종 수정 메소드 매개 변수 목록의 매개 변수는 메소드에서 매개 변수 참조로 가리키는 객체를 변경할 수 없음을 의미합니다. 이 기능은 주로 데이터를 익명의 내부 클래스로 전달하는 데 사용됩니다.
또한 Java에서
최종 수정 방법의 목적은이 방법을 덮어 쓰는 것을 명시 적으로 금지하는 것입니다.
최종 수정 클래스, 상속은 금지됩니다
C#에서이 두 가지 요구 사항을 어떻게 구현합니까?
요구 사항 1 : 컴파일러 상수
Const는 상수를 수정하며 컴파일 시간에 계산에 사용해야합니다. 상수는 항상 정적이지만 상수 선언에 수정 자 정적을 포함 할 필요가 없습니다 (실제로 허용되지 않음)
요구 사항 2 : 런타임 상수
Readonly 키워드에는 값이 변경되지 않아야하는 일부 변수가 필요할 수 있지만 실행하기 전에 그 값이 알 수 없습니다.
C#이 상황에 대한 다른 유형의 변수를 제공합니다. 읽기 전용 필드
또한 C#에서
밀봉 된 수정 방법은 서브 클래스 가이 방법을 덮어 쓰는 것을 명시 적으로 금지하는 것입니다.
밀봉 된 수정 클래스, 상속은 금지됩니다
위의 것은 Java의 최종 키워드와 C#의 Const 및 Readonly 키워드에 대한 간단한 토론입니다. 모두가 wulin.com을 지원할 수 있기를 바랍니다