자바에서final의 사용법을 상세히 설명하다
final은'바꿀 수 없는'의미를 가지고 비추상류, 비추상적 구성원 방법과 변수를 수식할 수 있다.
final은 구조 방법을 수식하는 데 사용할 수 없다.'방법 덮어쓰기'라는 개념은 클래스의 구성원 방법에만 적용되고 클래스의 구조 방법에는 적용되지 않기 때문에 부류의 구조 방법과 자류의 구조 방법 사이에는 덮어쓰는 관계가 존재하지 않기 때문에final로 구조 방법을 수식하는 것은 아무런 의미가 없다.
부류에서private로 수식하는 방법은 이불류로 덮어쓸 수 없기 때문에private 유형으로 이해할 수 있는 방법은 기본적으로final 형식입니다.
final 클래스
클래스를final로 정의하여 이 클래스가 계승되지 못하게 합니다.장면은 다음과 같습니다.
public final class String{...}
final 방법
어떤 경우, 보안상의 이유로 부류는 부류가 어떤 방법을 덮어쓰는 것을 허락하지 않습니다. 이 방법을final 형식으로 설명할 수 있습니다.
예: JDK의 java.lang.Object 클래스에서 getClass () 방법은final 형식이고, equals () 방법은final 형식이 아닙니다.
모든 Object의 하위 클래스는 equals() 메서드를 덮어쓸 수 있지만 getClass() 메서드는 덮어쓸 수 없습니다.
final 변수
final 수식의 변수로 값이 변하지 않는 상수를 표시합니다.
예: JDK의 java.lang. Integer 클래스에는 두 개의 상수가 정의되어 있습니다.
public static final int MIN_VALUE = 0x80000000;
public static final int MAX_VALUE = 0x7fffffff;
final 변수에는 다음과 같은 특징이 있습니다.
public class Demo{
public static final int MAX_VALUE = 23; //
public static final int MIN_VALUE = 10; //
private final Date birthday = new Date(); //
}
정적 상수는 일반적으로 대문자로 명명되며 단어 간에는 "_"기호가 분리되다.
public class FinalTest {
final int a = 1; //
static final int b = 2; //
final int c; //
static final int d; //
public FinalTest(){
c = 3; // ,
}
static {
d = 4; // ,
}
}
final 변수는 한 번만 값을 부여할 수 있습니다. 인용 형식의 변수를final로 수식하면 이 변수는 항상 하나의 대상만 인용할 수 있지만 대상의 내용을 바꿀 수 있습니다.
public class FinalTest {
String str = "";
public void print(){
System.out.println(str);
}
public static void main(String[] args){
final FinalTest finalTest = new FinalTest();
finalTest.str = "xixihaha";
finalTest.print();
}
}
요약:실제 프로그램에서 final 수식자를 통해 상수를 정의합니다. 목적은 다음과 같습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.