2012-07-06 5 views
1

나는 그것을 호출 할 것을 확실히 모르겠지만, 나는이 코드를 실행하면 기본적으로, :Java Object는 다른 인스턴스에서 변수를 가져 옵니까?

public class test { 

    static Device one; 
    static Device two; 

    public static void main(String[] args) throws Exception { 

     one = new Device("One", "ONE"); 
     System.out.println(one.getName()); 
     two = new Device("Two", "TWO"); 

     System.out.println(one.getName()); 
     System.out.println(two.getName()); 

    } 
} 

출력은을 :

ONE 
TWO 
TWO 

그것은해야 할 때 :

ONE 
ONE 
TWO 

장치 객체는 매우 간단합니다. 두 개의 문자열을받습니다. 두 번째 문자열은 "이름"입니다. 전에 OOP를 해봤지만, 중요한 부분을 잊어 버리고있는 것처럼 느껴지지만 그것을 파악하지 못하는 것 같습니다. 어떤 도움을 주셔서 감사합니다, 감사합니다! 당신이 너무 Devicestatic 필드를 사용하는 것 같은

public Device(String iP, String Name) { 
    //Set the IP address 
    IP = iP; 
    //Set the device's name 
    name = Name; 
    // Set the string version of the device (for transmitting) 
    stringVersion = IP + ";" + name; 
} 
+4

Device 생성자를 인쇄하면 대답하는 데 도움이됩니다. – BlackVegetable

+2

전체 Device 클래스를 표시합니다. IP와 이름은 정적입니까? – assylias

+0

네, 정말 고마워요. 내가 잊어 버린 남자 ... 다시 한번 감사드립니다! – kakonsan

답변

8

가 보이는 : 여기

그리고

장치 생성자입니다. 이들은 인스턴스 필드가 아닙니다. 변경할 수있는 필드는 피해야합니다. 코멘트에서

+0

네가 맞아, 고마워, 내가 눈치 채지 못했다니 믿을 수가 없어. – kakonsan

0

:

는 전체 장치 클래스를 표시합니다. IP와 이름은 정적입니까? - assylias 2 분 전

예, 그들이

당신이 그 동작을 얻을 이유 Device의 새로운 인스턴스를 인스턴스화 할 때마다 귀하의 장치 정적 멤버가 다시 초기화 얻을. onetwostatic으로 가질 수 있지만 가변 멤버 변수가 없어야합니다. static

관련 문제