자바 final 본질 상세 설명

3069 단어 자바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 은 한 번 만 값 을 부여 할 수 있다 고 말 하 는 것 이 맞습니다.그러나 자바 에서[값 은 두 가지 가 있 습 니 다],[기본 데이터 형식의 값]과[데이터 형식의 값 을 참조 하 는 것]을 알 고 있 습 니 다.기본 데이터 형식 에 있어 서 할당 은[값 을 변수 에 부여 하 는 것]입 니 다.데이터 형식 을 인용 하 는 데 있어 서[인용 을 변수 에 부여 하 는 것]입 니 다.
따라서 한 번 만 값 을 부여 할 수 있 는 의 미 는 두 가지 상황 으로 나 뉜 다.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 본질 해석 의 상세 한 내용 입 니 다.더 많은 관심 을 가 져 주세요!

좋은 웹페이지 즐겨찾기