Programing

Java에서 상수를 선언하는 방법

crosscheck 2020. 12. 12. 10:07
반응형

Java에서 상수를 선언하는 방법


우리는 항상 다음과 같이 씁니다.

public static final int A = 0;  

질문:

  1. static final선언 할 수있는 유일한 방법 일정 클래스의는?
  2. 내가 쓰는 경우 public final int A = 0;대신입니다 A여전히 상수 또는 그냥 인스턴스 필드 ?
  3. 인스턴스 변수 란 무엇입니까 ? 인스턴스 변수인스턴스 필드 의 차이점은 무엇입니까 ?

  1. enum설명한 목적으로 Java 5 이상에서 유형을 사용할 수 있습니다 . 유형 안전합니다.
  2. A는 인스턴스 변수입니다. (정적 수정자가 있으면 정적 변수가됩니다.) 상수는 값이 변경되지 않음을 의미합니다.
  3. 인스턴스 변수는 클래스가 아니라 객체에 속하는 데이터 멤버입니다. 인스턴스 변수 = 인스턴스 필드.

인스턴스 변수와 클래스 변수의 차이에 대해 이야기하고 있다면 생성 된 객체마다 인스턴스 변수가 존재합니다. 클래스 변수에는 생성 된 객체 수에 관계없이 클래스 로더 당 하나의 복사본 만 있습니다.

Java 5 이상 enum유형

public enum Color{
 RED("Red"), GREEN("Green");

 private Color(String color){
    this.color = color;
  }

  private String color;

  public String getColor(){
    return this.color;
  }

  public String toString(){
    return this.color;
  }
}

생성 한 열거 형의 값을 변경하려면 mutator 메서드를 제공하십시오.

public enum Color{
 RED("Red"), GREEN("Green");

 private Color(String color){
    this.color = color;
  }

  private String color;

  public String getColor(){
    return this.color;
  }

  public void setColor(String color){
    this.color = color;
  }

  public String toString(){
    return this.color;
  }
}

액세스 예 :

public static void main(String args[]){
  System.out.println(Color.RED.getColor());

  // or

  System.out.println(Color.GREEN);
}

final초기화 후에 값을 변경할 수 없음을 의미하므로 상수가됩니다. static즉, 각 개체의 필드에 공간을 할당하는 대신 클래스에 대해 하나의 인스턴스 만 생성됩니다.

So, static final means only one instance of the variable no matter how many objects are created and the value of that variable can never change.


Anything that is static is in the class level. You don't have to create instance to access static fields/method. Static variable will be created once when class is loaded.

Instance variables are the variable associated with the object which means that instance variables are created for each object you create. All objects will have separate copy of instance variable for themselves.

In your case, when you declared it as static final, that is only one copy of variable. If you change it from multiple instance, the same variable would be updated (however, you have final variable so it cannot be updated).

In second case, the final int a is also constant , however it is created every time you create an instance of the class where that variable is declared.

Have a look on this Java tutorial for better understanding ,

참고URL : https://stackoverflow.com/questions/12792260/how-to-declare-a-constant-in-java

반응형