MATLAB: ошибка, когда я пытаюсь получить доступ к свойству объекта

Это ошибка, которую он возвращает: вы не можете получить свойство 't' в Planet.

Ошибка в Problem4dot10 (строка 12) name=mercury.t(mercury);

Я создал функции getter для возврата свойств класса planet:

methods %for getter functions
        function t=get.t(obj)
            t=obj.t;
        end
        function r=get.r(obj)
            r=obj.r;
        end
        function x=get.x(obj)
            x=obj.x;
        end
        function y=get.y(obj)
            y=obj.y;
        end
        function vx=get.vx(obj)
            vx=obj.vx;
        end
        function vy=get.vy(obj)
            vy=obj.vy;
        end
        function n=get.n(obj)
            n=obj.n;
        end
        function n=get.Name(obj)
            n=obj.Name;
        end
    end

И я вызвал геттер из файла Problem4dot10.m:

mercury=Planet(1,0.002,0,2*pi,1,0,'Mercury');
mercury.sett(60);
name=mercury.t(mercury);

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

1 ответ

Мне кажется, что t собственность частная Вы можете сделать это публично, используя, например:

properties(SetAccess = public, GetAccess = public)
    t = 0;
end

или же

properties(Access = public)
    t = 0;
end

Также вам не нужно проходить mercury в т метод геттера. name=mercury.t; должно быть достаточно.

Другие вопросы по тегам