2015-01-22 2 views
-2

ClassA에서 생성 된 개체를 얻으려면 ClassB이 필요합니다.이 개체는 u입니다. 어떻게해야합니까? ClassAClassB이 패턴 간단한 클래스없이 동일한 오브젝트 (u)다른 클래스에서 생성 된 개체 호출

public class ClassA 
{ 
    Utility u = new Utility() 
    u.setSomething("David"); 
} 

public class ClassB 
{ 
    //How do I get the 'u' Utility object from ClassA 
} 

public class Utility 
{ 
private String fullName; 

    public void setSomething(String name) 
    { 
     this.fullName = name 
    } 

    public String getSomething() 
    { 
     return fullName; 
    } 

} 
+2

이것은 유효한 코드가 아니며 메소드 외부에 선언문을 가질 수 없습니다. – Maroun

+0

첫째, 개체에는 이름이 없습니다. – immibis

+1

당신은 한 걸음 물러서서 변수, 생성자 및 방법에 대해 알 필요가 있습니다. 나는 아직도 대답을 게시 할 것이다. –

답변

1

수월한 방법의 getSomething()를 사용 ClassA 설정 값을 취득한다하면서 Utility 클래스 setSomething()를 사용하여 값을 설정한다.

public class ClassA { 
    private Utility u = new Utility() 

    public ClassA() { 
     u.setSomething("David"); 
    } 

    public Utility getU() { 
     return u; 
    } 
} 

public class ClassB { 
    private ClassA classA = new ClassA(); 

    public ClassB() { 
     System.out.println(classA.getU().getSomething()); 
    } 

} 

public class Utility { 
    private String fullName; 

    public void setSomething(String name) { 
     this.fullName = name; 
    } 

    public String getSomething() { 
     return fullName; 
    } 
} 

public static void main(String[] args) { 
    ClassB b = new ClassB(); 
} 

'David'을 출력해야합니다.

+0

죄송합니다. 나는 ClassA와 ClassB에 main 메소드를 포함하는 것을 잊어 버렸습니다. 동작은 생성자에 있으므로 기본 메서드에서 생성자를 호출하려면 어떻게해야합니까? –

+0

일반적으로 모든 메소드에서 모든 생성자를 호출 할 수 있습니다.'ClassA objectA = new ClassA();'- 생성자가 정의 된 경우 (java가 생성자가 정의되지 않은 경우 표준 생성자를 추가 함). –

1

일을하는 데는 한 가지 방법이 없다는 점에 유의하십시오. 더 나은 일을하는 한 가지 방법이있을 수 있습니다. 모두 디자인과 필요에 따라 달라지며, 단지 예일뿐입니다.

public class ClassA{ 
    Utility u = new Utility() 
    public Utility getU(){ 
     return u; 
    } 
    public void buildB(){ 
     ClassB classB = new ClassB(this); 
    } 
} 

public class ClassB{ 
    ClassA classA; 
    Utility u; 
    public ClassB(ClassA classA){ 
     this.classA = classA; 
     u = classA.getU(); 
    } 
} 
관련 문제