2013-04-27 2 views
0

Runnable을 통해 액세스하려면 final 메서드에서 매개 변수를 선언해야하지만 여전히 메서드에 액세스 할 수 있습니까? 개체를 조금 편집해야합니다. 나는이 질문에 나를 도울 수있는 것을 찾을 수 없다. 그래서 바보 같은 질문이 아니길 바란다. 고마워요!최종 개체의 방법을 사용할 수 있습니까?

답변

3

개체는 final 아니지만 참조는입니다. 따라서 객체를 수정하기위한 메소드 (있는 경우)에 쉽게 액세스 할 수 있습니다.

+1

저는 실제로 변수 *라고 말하고 싶습니다. 최종 변수입니다. 변수의 값을 다른 참조로 변경할 수 없습니다. 하지만 이것은 여전히 ​​도움이됩니다 :) –

0

final으로 표시된 경우에도 개체의 상태를 변경할 수 있습니다. 참조 변수 final을 표시하면이를 다른 객체에 재 할당 할 수 없지만 해당 메소드를 호출하여 이미 참조 된 객체의 상태를 확실히 변경할 수 있습니다.

0

가능합니다. 이 예제를 확인하십시오

public class SampleA 
{ 
    private static final SampleB sampleB = new SampleB(); 
    public static void main(String[] args) 
    { 
     System.out.println(sampleB.toString()); 

     sampleB.setM1("1"); 

     System.out.println(sampleB.toString()); 

    } 

} 



public class SampleB 
{ 
    private String m1; 

    private String m2; 

    public String getM1() 
    { 
     return m1; 
    } 

    public void setM1(String m1) 
    { 
     this.m1 = m1; 
    } 

    public String getM2() 
    { 
     return m2; 
    } 

    public void setM2(String m2) 
    { 
     this.m2 = m2; 
    } 

    public String toString() 
    { 
     final String TAB = " "; 

     String retValue = "SampleB (" 
      + "m1 = " + this.m1 + TAB 
      + "m2 = " + this.m2 + TAB 
      + ")"; 

     return retValue; 
    } 
} 
관련 문제