2015-03-06 3 views
0

Это для личного проекта. Не назначение или работа. Скажем, у меня есть объект, objA, который имеет функцию callB().Функция вызова от вызывающего объекта

Когда я запустил callB(), он вызывает функцию в объекте B. Функция в objB может иметь вызовы функций в objA.

Например. objA звонки callB().
Внутри callB() есть функция, такая как setObjAName(), которая устанавливает переменную на objA.

Как бы это сделать на Java? Как мне обратиться к objA от objB?

+0

Вы передаете ссылку на objA на objB, например, с помощью метода setObjA (A a). – Kayaman

+0

Напишите класс A. Напишите класс B. Добавьте метод, называемый callB в классе A, и создайте новый экземпляр B и вызовите метод setObjName и передайте его. Как вы сказали, почему вы хотите циклическую зависимость? – CKing

ответ

1

Простейший метод - просто передать ссылку на A в вызове метода, что позволит B получить доступ к любому из общедоступных методов A.

public class ClassA { 

    public String someAVar; 

    public void callB(ClassA a){ 
     //do stuff 
     ClassB b = new ClassB(); 
     b.setObjA(this,"newValue"); 
    } 
} 
public class ClassB{ 
    public void setObjA(ClassA A, String newValue){ 
     A.someAVar = newValue; 
    } 
} 

В качестве альтернативы вы можете переменный быть устанавливаемыми без прохождения в конкретном случае, в этом случае статические методы и переменные являются вашим другом.

public class ClassA { 

    public static String someAVar; 

    public void callB(){ 
     //do stuff 
     ClassB b = new ClassB(); 
     b.setObjA("newValue"); 
    } 
} 


public class ClassB{ 
    public void setObjA(String newValue){ 
     ClassA.someAVar = newValue; 
    } 
} 
Смежные вопросы