>Java >java지도 시간 >자바에서 최종이란 무엇을 의미합니까?

자바에서 최종이란 무엇을 의미합니까?

(*-*)浩
(*-*)浩원래의
2019-05-22 09:29:5431605검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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