2014-01-09 3 views
0

는 다음과 같은 디자인을 가지고 말 개체? 즉, ClassA (예 : ClassA.GetVegetables())의 메소드가 있지만 ClassA 메소드는 ClassBClassC 속성에 액세스해야한다는 것입니다.액세스 부모 클래스 속성

  • 참조가 개체의 인스턴스로 회원/방법/객체의 속성

되는지 여부를 ClassA가 할 수 액세스 할 수

  • 권한을 : 당신이 두 개념을 함께 혼합 것 같은

  • +1

    아니요.이 설정에서는 아니요. 아니요. 디자인을 재구성해야합니다. 당신을 인수로 넘기는 것을 어떻게 막을 수 있습니까? –

    +0

    @JeroenVannevel 중복되지 않습니까? 기본적으로'ClassBobj.ClassAprop_obj.GetVegetables (ClassBobj.ClassCprop_obj)'를 호출해야합니다. – user3175663

    +0

    예, ClassA 인스턴스에 ClassA 액세스를 제공해야합니다. void ClassA.GetVegitables (ClassB argumentName)입니다. 그런 다음 ClassB에서 PropertyA.GetVegitables (this)를 수행합니다. – Thraka

    답변

    0

    임의의 코드를 보지 않고 접근하는 가장 좋은 방법은 원하는 정보를 GetVegetables 메소드의 인수로 전달하는 것입니다.

    일부 전역 상태에 의존하지 않고 메소드를 매우 독립적으로 만들려면 모든 필수 데이터를 인수로 전달하는 것이 가장 이상적입니다.

    이것은 현재 디자인이 최적이라고 가정합니다. 이는 디자인 세부 사항을 변경하여 문제가 해결 될 수 있지만 더 많은 코드를 보지 않고는 알 수 없습니다.

    0

    이 보이는 을 호출하는 경우 ClassB의 모든 메서드는 ClassA에 ClassB (첫 번째 개념)에 대한 참조가 있는지 여부에 따라 다릅니다. ClassB의 인스턴스를 ClassA의 생성자에 전달하면됩니다.

    ClassA에 ClassB 인스턴스에 대한 참조가 있으면 public으로 표시된 ClassB의 메서드에만 액세스 할 수 있습니다. 자세한 내용은 access modifiers을 참조하십시오.

    관련 문제