>  기사  >  Java  >  Java Final의 본질에 대한 설명

Java Final의 본질에 대한 설명

(*-*)浩
(*-*)浩앞으로
2019-09-23 16:32:512525검색

Java Final의 본질에 대한 설명

의미: final은 [한 번만 할당할 수 있음]을 의미합니다.

할당 위치: [선언 시간]에 할당, [생성자에서 할당]

예: #🎜🎜 ## 🎜🎜#

package com.dada.data;
 
public class TestFinal {
    // 1.声明时赋值
    private final int i = 0;
    private final int j;
    public TestF() {
        // 2.构造方法中赋值
        j = 10;
    }
}
참고: final은 한 번만 할당할 수 있다고 말하지만 Java에는 [두 가지 유형의 값], [기본 데이터 유형의 값] 및 [values ​​of of 참조 데이터형] ], 기본 데이터형의 경우 할당은 [변수에 값을 직접 할당]을 의미하고, 참조 데이터형은 [변수에 참조를 할당]을 의미합니다.

따라서 값을 한 번만 지정할 수 있다는 의미는 두 가지 상황으로 나눌 수 있습니다. 1. 기본 데이터 유형인 경우 값 자체를 변경할 수 없습니다. 참조 데이터 유형의 값입니다. 즉, 참조는 변경할 수 없지만 참조되는 내용은 변경할 수 있습니다.

예:

학생 수업 정의:

package com.dada.data;
 
public class Student {
	private int id;
	private String name;
	private int score;
	public Student(int id, String name, int score) {
		this.id = id;
		this.name = name;
		this.score = score;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	
	@Override
	public String toString() {
		return "id: " + id + "\t name:" + name + "\tscore:" + score;
	}
}
#🎜🎜 # 테스트 클래스 정의:

package com.dada.data;
 
public class TestFinal {
	private final Student ss;
	
	public static void main(String[] args) {
		TestFinal tf = new TestFinal();
	}
	public TestFinal() {
		Student student = new Student(1, "dada", 3);
		// 第一次赋值
		ss = student;
		System.out.println(ss.toString());
		
		// 修改引用所对应的对象的内容
		student.setId(2);
		student.setName("hehe");
		student.setScore(10);
		System.out.println(ss.toString());
	}
}
출력 결과:

id: 1     name:dada    score:3
id: 2     name:hehe    score:10
요약:

#🎜 🎜#

위의 예를 보면 최종 변수가 참조된 변수의 내용이 여전히 수정될 수 있다는 것을 알 수 있습니다. 수정이 불가능하다고 느끼는 이유는 다음과 같습니다. #🎜 🎜#1 .보통 변수를 정의할 때 값을 할당합니다. 이때 기본 유형 데이터는 절대 변경할 수 없습니다.

2. 참조 유형 데이터의 경우 해당 참조를 얻을 수 없기 때문에 참조 유형 데이터도 수정할 수 없다고 느낍니다.

위 내용은 Java Final의 본질에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제