Java에서 상수를 선언하는 방법
우리는 항상 다음과 같이 씁니다.
public static final int A = 0;
질문:
- 가
static final
선언 할 수있는 유일한 방법 일정 클래스의는? - 내가 쓰는 경우
public final int A = 0;
대신입니다A
여전히 상수 또는 그냥 인스턴스 필드 ? - 인스턴스 변수 란 무엇입니까 ? 인스턴스 변수 와 인스턴스 필드 의 차이점은 무엇입니까 ?
enum
설명한 목적으로 Java 5 이상에서 유형을 사용할 수 있습니다 . 유형 안전합니다.- A는 인스턴스 변수입니다. (정적 수정자가 있으면 정적 변수가됩니다.) 상수는 값이 변경되지 않음을 의미합니다.
- 인스턴스 변수는 클래스가 아니라 객체에 속하는 데이터 멤버입니다. 인스턴스 변수 = 인스턴스 필드.
인스턴스 변수와 클래스 변수의 차이에 대해 이야기하고 있다면 생성 된 객체마다 인스턴스 변수가 존재합니다. 클래스 변수에는 생성 된 객체 수에 관계없이 클래스 로더 당 하나의 복사본 만 있습니다.
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
'Programing' 카테고리의 다른 글
JVM의 LookupSwitch와 TableSwitch의 차이점은 무엇입니까? (0) | 2020.12.12 |
---|---|
Ruby : console.log? (0) | 2020.12.12 |
Pandas 시리즈에 단일 항목을 추가하는 방법 (0) | 2020.12.12 |
문서 높이 변경 감지 (0) | 2020.12.12 |
테이블 형식없이 SQL 쿼리 결과 가져 오기 (0) | 2020.12.12 |