Q
사람들이 'public static final String mystring = ~~~' 을 작성한 다음 많은 값을 사용하는 코드를 보았습니다.
왜 그들은 그것을해야하나요? 왜 그들은 그것을 사용하기 전에 최종 값으로 초기화해야합니까?
그 핵심 (public static final)의 의미를 이해합니다.
내가 이해하지 못하는 것은 상수가
한 곳에서만 사용되고 같은 클래스에서만 사용 되더라도 사람들이 왜 그것을 사용하는지에 대한 것입니다.
그것을 선언하는 이유는 무엇입니까? 왜 우리는 변수를 사용하지 않습니까?
A
final은 변수의 값이 변경되지 않음을 나타냅니다. 즉, 값을 선언 한 변수는 선언 된 후에 수정할 수 없습니다.
public final static String 을 사용하면 다음과 같은 String을 만들 수 있습니다.
1. 클래스 (static : 그것을 사용하는 데 필요한 인스턴스가 없음)에 속하며,
2. 클래스의 모든 인스턴스와 클래스를 사용하는 다른 객체에서 사용할 수있는
String 상수를 정의하려는 경우와 같이 변경되지 않습니다 (final).
ex)
public final static String MY_CONSTANT = "SomeValue";
// ... 다른 코드에서 다른 객체에 상수를 사용합니다.
if (input.equals(MyClass.MY_CONSTANT)
비슷하게
public static final int ERROR_CODE = 127;
즉,
final을 사용할 필요는 없지만 프로그램 실행 중에 실수로 변경되는 상수를 유지하고 변수가
상수라는 표시기로 사용됩니다.
final 상수가 현재 클래스 및 또는 한 곳에서만 사용되는 경우에도 모든 상수를 최종으로 선언하는 것이 좋습니다.
final : 코드의 수명이 다할 때까지 상수가 여러 곳에서 사용될 수 있습니다.
또한 final을 사용하면 구현시 일부 최적화를 수행 할 수 있습니다.
+ 다른 답변 해석
static 이란 클래스를 인스턴스화하거나 객체를 사용하지 않고도 사용할 수 있습니다.
final은 문자열 상수를 만드는데 사용되는 키워드입니다. 해당 문자열의 값은 변경할 수 없습니다.
아래 예를보세요.
public class StringTest {
static final String str = "Hello";
public static void main(String args[]) {
// str = "world"; // 주석을 해제하면 에러가 발생할 것입니다.
System.out.println(str); // called without the help of an object
System.out.println(StringTest.str);// called with class name
}
}
'Computer_IT > Android' 카테고리의 다른 글
안드로이드 @Override의 의미 (0) | 2017.06.21 |
---|---|
Button클릭 시 갤러리에서 이미지 가져오기 (0) | 2017.06.12 |
[안드로이드 스튜디오] 에러 Crunching Crunsher ~ .png failed 수정 (0) | 2017.05.11 |