Вложенный класс для доступа к свойству другого вложенного класса - PullRequest
0 голосов
/ 07 октября 2018

Я ищу решение MATLAB, в котором вложенный подкласс может получить доступ к свойствам другого вложенного подкласса.

В следующем примере суперкласс имеет два свойства, каждое из которых инициализируется как два разных подкласса:

classdef superclass

  properties
    prop1
    prop2
  end

  methods

    function obj = superclass()
       obj.prop1 = subclass1;
       obj.prop2 = subclass2;
    end

  end
end

Первый подкласс имеет свойство a:

 classdef subclass1

    properties
      a
    end

 end

Второй подкласс имеет свойство b и метод calcSomething, который использует свойство a подкласса 1:

 classdef subclass2

    properties
      b
    end

    methods
      function result = calcSomething(obj)
        result = obj.b * superclass.prop1.a;
      end
    end

 end

Как можно выразить superclass.prop1.a , чтобы правильно извлечь это свойство из подкласса2?

Спасибо!:)

PS Я не уверен, что мое использование слов суперкласс и подкласс полностью правильно, так как я не утверждал

subclass < superclass

Может быть, концепция матери и детей была бы более удобной ..?!

1 Ответ

0 голосов
/ 07 октября 2018

Soo, следуя основной структуре superclass (которая не будет изменена), метод calcSomething теперь будет находиться внутри superclass:

classdef superclass
   properties
      prop1 = subclass1
      prop2 = subclass2
   end

   methods
      function result = calcSomething(obj)
         result = obj.prop1.a * obj.prop2.b;
      end
   end
end
...