Я вызываю функцию для изменения параметров моего класса внутри его конструктора, однако я не могу изменить значения. Это баг или специально?
В следующем примере я вызываю функцию calculateCalculatedProperties() внутри конструктора. calculateCalculatedProperties() вызывает функции Velocity() и Length(), которые устанавливают новые значения свойств скорости и длины. Однако в конечном продукте конструктора (экземпляре объекта) свойства не изменяются.
classdef piping
%PIPING Summary of this class goes here
% Detailed explanation goes here
properties
flowRate
diameter
startLocation location
endLocation location
end
methods
function self = piping(flowRate, diameter, startLocation, endLocation)
self.flowRate = flowRate;
self.diameter = diameter;
self.startLocation = startLocation;
self.endLocation = endLocation;
self.calculateCalculatedProperties();
end
function self = calculateCalculatedProperties(self)
fprintf("hey")
self.Velocity();
self.Length();
end
function self = Velocity(self)
self.velocity = self.flowRate / (pi * self.diameter^2 / 4);
end
function self = Length(self)
self.length = location.calculateDistance(self.startLocation,self.endLocation) ;
fprintf("hey this is lengthhhh")
self.flowRate = 10000000;
end
end
properties % Calculated properties
velocity
length
end
end