Проверка и редактирование частных / защищенных свойств объектов - PullRequest
4 голосов
/ 21 октября 2011

В MATLAB 2011b у меня есть несколько классов, которые имеют ряд закрытых или защищенных свойств класса. Это сделано специально, так как я не хочу, чтобы они были видимыми, читаемыми, доступными для записи и т. Д. Кем-либо, кроме собственных методов получения / установки моего класса.

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

Я могу понять, что это, вероятно, из-за замысла, но я надеюсь, что есть пропущенная настройка, которая позволит мне просматривать их.

1 Ответ

6 голосов
/ 21 октября 2011

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

classdef testObj_debug
    properties (Access=private)
        p1 = 4;
    end

    methods (Hidden)
        function checkProps(obj)
            keyboard
        end
    end
end

Если вы вызываете to = testObj_debug, to.checkProps, вы переходите в режим отладки, в котором скрытое свойство p1 доступно и доступно для проверки.

...