2011-05-12 10 views
-3

내가 사용할 수있는 String 클래스와 비슷한 클래스를 만들고 싶습니다.Java에서 값을 할당하는 방법은 무엇입니까?

MyClass mc = "testvalue";

"testvalue"가 할당되는 방법은 혼란 스럽습니다.

감사합니다.

+0

질문이 명확하지 않습니다. – Bozho

+0

당신은 무엇을하려고하는지 더 잘 정의해야합니다. – amit

답변

2
MyClass mc="testvalue"; 

MyClass가 무엇이든간에 이것은 불가능합니다. "testvalue"은 문자열 리터럴이고 String은 최종 클래스입니다 (확장 할 수 없음). 따라서 위의 구문은 Java로 컴파일 할 수 없습니다.

+1

Java에서 연산자 오버로딩이있는 것은 말할 필요도 없습니다. – pickypg

+1

비록 String이 참으로 final이지만 정확한 oposite String에 대해서만 중요합니다. str = new MyClass(); 문자열은 최종이기 때문에 절대로 작동하지 않습니다. MyClass mc = "testvalue"; String은 MyClass에서 상속받지 않기 때문에 절대로 작동하지 않습니다. 그것은 객체 obj = "testvalue"; – amit

+0

좋아, 그래서 "MyClass 문자열을 확장 할 수 없습니다"라고 깜빡. 고소해라. 그러나 나는 그것이 명백했다라고 생각했다 –

0
MyClass mc="testvalue"; 

여기 값은 "testvalue"입니다.이 값은 문자열이며 참조 변수에 지정하려고합니다. 허용되지 않는, mc 예를

String str ="testValue"; 
2

일반적인 방법에 대해

당신은 String의 기준에 할당 할 수있는 MyClass의 객체 참조 (또는 그 하위 유형)를 개최 가정 그래서 당신은 이런 식으로 뭔가를 할 수

class YourClass{ 
    private String value; 

    public YourClass(String value){ 
    // Constructor 
    this.value = value; 
    } 

    public String getValue(){ 
    return value; 
    } 

    public void setValue(String new_value){ 
    this.value = new_value; 
    } 

} 

: 자바의 클래스에 값을 저장하는 멤버-변수가있는 클래스를 생성하고 GET/set 메소드를 사용/그들에게 읽기/쓰기입니다

YourClass yc = new YourClass("Your Value"); 
yc.getValue(); // Returns your Value 
vc.setValue("A new Value"); // Sets your Value 
+2

나는 * global * 변수가 아니라 * member * 변수를 의미한다고 생각한다. –

+0

죄송합니다. –

0

Java는 암시 적 변환이나 연산자 오버로드를 지원하지 않으므로 문자열을 사용하는 생성자 또는 정적 팩토리 메소드를 구현해야합니다.

프리 프로세서 경로를 사용하여 언어 변형을 만들 수도 있지만, 다른 모든 방법과는 다른 방법 일 수 있습니다.

관련 문제