OOP: matlab class as a property of another class

Hi, I'm a newbie to matlab. The class individual as follows has a property named Genotype. I need this property to be another class which would have some other properties a constructor and functions. The property Genotype should correspond to the class genotype.
This can be easily achieved in other OO languages as java or c++ since they are type constrained. I don't understand how to do this with matlab. Any help would be appreciated
classdef Individual
properties
Genotype
end % properties
methods
function
end % function
end % methods
end % classdef
classdef Genotype
properties
X
Y
Z
end % properties
methods
function
end % function
end % methods
end % classdef

 采纳的回答

I think the following should work for setting this property from the Constructor function. The following assumes that you have created at Genotype object called Genotype_obj.
I might recommend renaming the Genotype parameter of Individual to something else to distinguish it from the class name, but I think Matlab is smart enough to know the difference.
function obj = Individual(Genotype_obj)
assert(isa(Genotype_obj,'Genotype'),'Individual Constructor Error: Genotype_obj is of class %s, not a Genotype object.', class(Genotype_obj));
obj.Genotype = Genotype_obj;
return
The idea is to pass the object to the constructor and then check that it is the right type of object. This could also be handled in a Set() function. You might want to perform this error checking in a Set() function in addition to this code if you will ever be setting the property that way.
Good luck,
Eric

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Software Development 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by