final 키워드 재인식
1.final 수식 데이터: 기본 형식의 데이터에 대해final은 그 수치를 변하지 않게 하고 대상 유형의 인용에 대해final은 인용을 변하지 않게 한다. 이 말은 인용의 대상에 대해final은 이 대상이 가리키는 주소를 바꿀 수 없지만 주소의 값은 바꿀 수 있다는 뜻이다.
이 말에 대해 우리는 프로그램으로 검증할 수 있다.
public class Test{
int i=9;
}
4
public class Test1 {
public static void main(String[] args){
final Test test = new Test();
//test = new Test1();
test.i = 3;
System.out.println(test.i);
}
}
출력된 i의 값이 변경되었음을 알 수 있지만 코드test=new Test1()을 작성하면컴파일러가 오류를 보고해서final 수식의 변수를 바꿀 수 없다고 알려 줍니다.이렇게 하면 대상 테스트의 주소는 변하지 않았지만 값은 바뀌었다는 것을 알 수 있다.
2. 공백final: 이른바 공백final은final 형식으로 성명되었지만 초기의 값을 정하지 않았기 때문에 프로그램이final을 사용할 때 유연성이 많아졌다. 즉, 스스로 초기화할 수 있다. 그러나 이런 변수는 일반 변수 컴파일러가 클래스 변수에 초기의 값을 주지 않는다. 그는 사용자를 통해 변수의 초기 값을 지정한다.3. final 매개 변수: 매개 변수가 가리키는 대상을 방법에서 변경할 수 없습니다.마찬가지로 객체의 멤버 변수도 변경할 수 있습니다.
4.final 방법: 다시 쓸 수 있지만 다시 불러올 수 없습니다.final 수식 방법은 방법 잠금을 말해서 상속류가 그의 의미를 수정하지 않도록 하고 계승에서 방법을 변하지 않게 한다.
final 수식을 사용하는 두 번째 이유는 효율이다.만약 방법을final 형식으로 가리킨다면, 이 방법에 대한 모든 호출을 내장 호출로 같이 전환합니다.컴파일러가final 형식의 방법을 발견할 때, 그는 프로그램 코드를 삽입하는 정상적인 방법을 건너뛰고 실행 방법 호출 메커니즘을 사용합니다.또한 방법체 중의 실제 코드의 사본으로 방법 호출을 대체합니다.이것은 방법이 호출되는 비용을 없앴다. (특히 순환할 때)
5.final 클래스: 클래스를 final 유형으로 성명하면 클래스를 계승하지 않을 뿐만 아니라 다른 사람이 이렇게 하는 것도 허락하지 않는다는 것을 의미한다.final류는 상속을 금지하기 때문에 이것은final류의 모든 방법을final로 은밀하게 제정하는 것과 같다. 왜냐하면 당신은 그를 다시 불러올 수 없기 때문이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.