ЯЗЫК:
Я пишу объектно-ориентированный код в MATLAB. Я написал почти все это, и теперь, когда пытаюсь проверить это, я сталкиваюсь с тем, что выглядит как очень фундаментальная проблема.
ФОН КОДА:
У меня есть класс Window и класс Tracker. Оба являются подклассами класса Singleton (то есть они имеют частные конструкторы, чтобы обеспечить создание только одного экземпляра класса Window и класса Tracker).
Я создаю экземпляр каждого из них, поэтому теперь у меня есть объекты myWindow и myTracker.
В моем основном скрипте я вызываю метод myWindow.isNewbead (). isNewbead - это открытый метод класса Window.
Это сцена. Теперь проблема:
ПРОБЛЕМА:
Внутри isNewbead () я вызываю myTracker.getpredictedPositions (). getpredictedPositions () - это открытый метод класса Tracker. Однако, когда я запускаю эту строку, я получаю сообщение о том, что переменная 'myTracker' не определена. И, конечно же, я смотрю в рабочую область переменных, и единственными переменными являются локальные переменные INSIDE myWindow.isNewbead ();
Итак, теперь у меня есть два вопроса:
Вопросы:
Это правда о ООП везде? То есть нельзя ли вызывать открытый метод для объекта изнутри метода другого объекта без явной передачи первого объекта методу второго объекта? Мне кажется, это очень хлопотно, потому что я использую свойства и методы множества объектов разных классов в каждом методе, поэтому мне придется каждый раз пропускать сотни объектов!
Если это только проблема, относящаяся к MATLAB (например, проблема отсутствия статических переменных), то как мне обойти это?
Большое спасибо!
Привет.