Java의 final 변수 사용 요약

2879 단어 Javafinal변수
final 키워드는 변수 설명에 사용할 수 있으며, 이 변수가 설정되면 이 변수의 값을 바꿀 수 없습니다.일반적으로final이 정의한 변수는 상수입니다.예:

final double PI = 3.14; 
프로그램에서 PI라는 상수를 사용할 때, 그 값은 3.14입니다. 만약에 프로그램에서final로 정의된 상수에 다시 값을 부여하면 컴파일러는 받아들일 수 없습니다.
final 키워드에 정의된 변수는 설명할 때 값을 부여해야 합니다.final은 기본 데이터 형식의 상수를 수식할 수 있을 뿐만 아니라 대상 인용도 수식할 수 있습니다.수조도 하나의 대상 인용으로 사용할 수 있기 때문에final은 수조를 수식할 수 있습니다.일단 하나의 대상 인용이final로 수식되면, 하나의 대상만 가리킬 수 있고, 다른 대상으로 바꿀 수 없습니다.static이자final의 필드는 변경할 수 없는 저장 공간만 차지합니다.다음 예제:

import static java.lang.System.out; 
import java.util.Random; 
class Test{ 
  int i = 0; 
} 
public class FinalData { 
  static Random rand = new Random(); 
  private final int VALUE_1 = 9;//final  
  private static final int VALUE_2 = 10;// ; 
  private final Test test = new Test(); 
  private Test test2 = new Test(); 
  private final int[] a = {1,2,3,4,5,6}; 
  private final int i4 = rand.nextInt(20); 
  private static final int i5 = rand.nextInt(20); 
  public String toString() 
  { 
    return i4 + "" + i5 + ""; 
  } 
  public static void main(String[] args) { 
    FinalData data = new FinalData(); 
    //data.test = new Test(); 
    //data.VALUE_2++; 
    data.test2 = new Test(); 
    for(int i=0; i<data.a.length; i++) 
    { 
      //a[i] = 9; 
    } 
    out.println(data); 
    out.println("data2"); 
    out.println(new FinalData()); 
    out.println(data); 
  } 
} 

final로 정의된 대상은 유일한 대상만 가리킬 수 있고 다른 대상을 가리킬 수 없지만 대상 자체의 값은 확실히 바꿀 수 있다. 그러면 상수가 진정으로 변경할 수 없도록 하기 위해 상수를staticfinal로 설명할 수 있다.다음 예제:

import static java.lang.System.out; 
import java.util.Random; 
public class FinalStaticData { 
  private static Random rand = new Random(); 
  private final int a1 = rand.nextInt(10); 
  private static final int a2 = rand.nextInt(10); 
   
  public static void main(String[] args) { 
    FinalStaticData fdata = new FinalStaticData();//  
    out.println(" a1 :" + fdata.a1); 
    out.println(" a2 :" + fdata.a2);   
    FinalStaticData fdata2 = new FinalStaticData();//   
    out.println(" a1 :" + fdata2.a1); 
    out.println(" a2 :" + fdata2.a2); 
  } 
} 
다시 실례화된 대상 호출 a1의 값: 9
다시 실례화된 대상 호출 a2의 값: 2
다시 실례화된 대상 호출 a1의 값: 1
다시 실례화된 대상 호출 a2의 값: 2
요약:
final 상수는 고정불변이 아니라고 정의하고 무작위 수를final에 변수를 부여하면 프로그램이 실행될 때마다 a1의 값을 바꿀 수 있지만 a2는staticfinal 형식으로 정의되기 때문에 메모리에서 a2를 위해 고정된 구역을 열었습니다. 다시 FianlStaticData 대상을 실례화할 때 a2라는 메모리 구역을 가리키기 때문에 a2의 값은 변하지 않습니다.
기술:
JAVA에서 전역 상수를 정의합니다. 일반적으로public static final 수식을 사용합니다. 이런 상수는 정의할 때만 값을 부여합니다.

좋은 웹페이지 즐겨찾기