자바 final 본질 상세 설명
할당 위치:[성명 시 할당],[구조 방법 에서 할당]
예:
package com.dada.data;
public class TestFinal {
// 1.
private final int i = 0;
private final int j;
public TestF() {
// 2.
j = 10;
}
}
주의:final 은 한 번 만 값 을 부여 할 수 있다 고 말 하 는 것 이 맞습니다.그러나 자바 에서[값 은 두 가지 가 있 습 니 다],[기본 데이터 형식의 값]과[데이터 형식의 값 을 참조 하 는 것]을 알 고 있 습 니 다.기본 데이터 형식 에 있어 서 할당 은[값 을 변수 에 부여 하 는 것]입 니 다.데이터 형식 을 인용 하 는 데 있어 서[인용 을 변수 에 부여 하 는 것]입 니 다.따라서 한 번 만 값 을 부여 할 수 있 는 의 미 는 두 가지 상황 으로 나 뉜 다.1.기본 데이터 유형 이 라면 값 자체 가 변 할 수 없다.2.인용 데이터 형식의 값 이 라면 인용 은 변 할 수 없 지만 인 용 된 내용 은 변 할 수 있 습 니 다.
예:
학생 클래스 정의:
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
요약:위의 예 를 통 해 알 수 있 듯 이 변수 가 final 에 의 해 수 정 된 후에 인 용 된 내용 은 수정 할 수 있 습 니 다.왜냐하면 우 리 는 이것 이 수정 되 지 않 는 다 고 느 낄 때 가 많 습 니 다.
1.보통 우 리 는 변 수 를 정의 할 때 할당 합 니 다.이 럴 때 기본 형식 데이터 에 있어 서 는 영원히 바 꿀 수 없습니다.
2.인용 형식 데이터 에 있어 서 저 희 는 해당 하 는 인용 을 얻 을 수 없 기 때문에 인용 형식 데이터 도 수정 할 수 없다 고 생각 합 니 다.
이상 은 자바 final 본질 해석 의 상세 한 내용 입 니 다.더 많은 관심 을 가 져 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.