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  
             } 
         } 


+ Recent posts