final은 자바에서 "상수"를 의미하는 키워드입니다. Java의 최종 데이터에는 두 가지 구체적인 의미가 있습니다. 1. 기본 데이터 유형의 경우 절대 변경되지 않는 컴파일 타임 상수를 의미합니다. 2. 일반 객체의 경우 참조가 상수이고 다른 객체를 가리킬 수 없다는 의미입니다. 자체는 수정될 수 있습니다.
Java의 final은 키워드이며 그 의미는 일정합니다.
최종 데이터에는 두 가지 구체적인 의미가 있습니다.
1. 기본 데이터 유형의 경우 절대 변경되지 않는 컴파일 타임 상수를 나타냅니다.
2. 일반 개체의 경우 참조가 일정하고 다른 개체를 가리킬 수 없지만 개체 자체는 수정할 수 있음을 의미합니다.
따라서 다음 사항에 유의해야 합니다.
1. 클래스의 정적 최종 속성은 변경할 수 없는 저장 공간을 차지한다는 의미이며 선언에서 초기화되어야 하며 구성에서도 초기화될 수 없습니다. .
2. 클래스의 최종 속성은 정적 값이 아니기 때문에 각 생성자에서 선언할 수 있습니다.
최종으로 선언된 속성은 한 번만 초기화할 수 있다는 점에 유의하세요! 비정적은 인스턴스당 최대 한 번 초기화됩니다. 정적은 클래스 생성 중에 한 번만 초기화할 수 있습니다!
3. 최종 수정된 객체(예: 배열)의 경우 선언 후 배열을 수정할 수 있지만 새 배열로 리디렉션할 수는 없습니다.
public class Test_FinalAndStatic { static final int i=1; final int j; public Test_FinalAndStatic(int j){ //i、j只能被初始化一次 所以j在声明中不能初始化 this.j=j; //同时 i只能在声明中初始化,不能在构造中初始化 } final int[] is=new int[]{1,2,3}; //被final修饰的引用一旦被初始化指向一个对象,就不能再改变,但该对象自身可以改变 //is=new int[]{3,2,1}; error public void dois(){ //is对象自身可以改变 is[0]=4; System.out.print("is="); for(int w:is){ System.out.println(w+":"); } } public void showi(){ System.out.println("i="+i); // i只能占据一段不能改变的存储空间 // i++; error // i=5; error } public void showj(){ System.out.println("j="+j); // j++; error // j=2; error } @Override public String toString(){ dois();showi();showj(); return null; } public static void main(String[]args){ Test_FinalAndStatic t1=new Test_FinalAndStatic(100); t1.toString(); Test_FinalAndStatic t2=new Test_FinalAndStatic(200); t2.toString(); } }
결과:
is=4: 2: 3: i=1 j=100 is=4: 2: 3: i=1 j=200
최종 매개변수:
메시지의 매개변수가 final로 수정되면 매개변수 참조가 가리키는 객체는 메시지에서 변경할 수 없다는 의미입니다.
최종 메소드:
1. 상속된 클래스의 의미가 변경되는 것을 방지하고 덮어쓰지 않도록 보장하는 잠금 메소드입니다.
2. 효율성을 높이기 위해 이 메서드에 대한 모든 호출을 인라인 호출로 변경하도록 컴파일러에 동의합니다. 그러나 더 이상 권장되지 않습니다.
3. 모든 비공개 메소드는 암시적으로 최종 메소드로 지정됩니다. 개인 메서드를 얻을 수 없으므로 다시 작성할 수 없습니다.
최종 클래스:
상속될 수 없고 변경될 수 없으며 하위 클래스를 가질 수 없습니다.
위 내용은 자바에서 최종이란 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!