2013-10-14 2 views
2

나는 하루 종일이 문제에 대한 해답을 찾고있었습니다.Java의 여러 클래스에서 동일한 객체에 액세스하는 방법

저는 프로그램이 실행되는 동안 다양한 값을 보유하는 value 클래스를가집니다.

클래스 A에 새 값 개체를 만들고 int 값을 저장합니다.
클래스 A에는 printMoney() 메서드도 있습니다. 클래스 B에서

public class A { 
Value value = new Value(); 
value.setMoney(100); 

public void printMoney { 
System.out.println(value.getMoney); 
} 

, 정말 논리적으로 다음 작업을 수행 할, 클래스 A에서 printMoney()를 호출 할 수 있도록하려면 :

public class B { 
A a = new A(); 

a.printMoney(); 
} 

이 수행하지만, 반환 '0'이 아니라 값 대신 '100'을 입력하십시오.

나는 A 오브젝트를 생성함으로써 자동으로 기본 금액 값을 갖는 새로운 값 오브젝트를 생성한다는 것을 알고 있습니다. 그래서, 기본적으로 제 질문입니다; 어떻게 해결할 수 있을까요?

+0

'value.getMoney' 란 무엇입니까? 이것은 메소드 호출이 아니며 'Value' 클래스의 코드를 표시하지 않았습니다. 문제가 있다고 생각합니다. –

+1

Concur..the line value.setMoney (100); 메서드 외부 및 클래스 헤더에 있습니다. 이것도 컴파일됩니까? – henderso

답변

5

개체를 정적으로 설정합니다. static Value value = new Value();

  • static 변수는 그래서 static 변수에서 변경 한이 클래스의 모든 개체에 반영됩니다 모든 개체
  • 에서 공유됩니다.
1

당신이 그렇지 않으면

public class A { 
    Value value = new Value(); 

    public A() { 
    this.value.setMoney(100); 
    } 

처럼, 당신은 생성자에서 값을 할당해야 A의 그 값을 얻으려면, 당신은 정적 값

+0

나는 그것을 정적으로 선택했다. 귀하의 답변에 감사드립니다. – DaanBakbanaan

0

인스턴스를 받아야을 만들 수 있습니다 객체 B를 생성하고 저장하면 과 같이 호출 할 수 있습니다.

public class A { 
    B b = new B(this); 
} 

public class B { 
    A a; 

    public B(A a) { 
     this.a = a; 
    } 

    private someMethod() { 
     a.printMoney(); 
    } 
} 
관련 문제