假设下面的类fee
是在包中定义的,例如+fee/fee.m
。为了使flip
方法调用类构造函数,似乎有必要使用完整的命名空间,即foo.fee
。如果可以在不引用包含的情况下定义对象,那将是很好的。
有没有办法避免通话foo.fee
?
classdef fee
properties
x
y = 1
end
methods
function self = fee(x)
self.x = x;
end
function self2 = flip(self)
self2 = foo.fee(self.x);
self2.y = xor(self.y,1);
end
end
end
答案 0 :(得分:1)
您是否尝试过使用import功能?我认为应该可以这样做:
classdef fee
properties
x
y = 1
end
methods
function self = fee(x)
self.x = x;
end
function self2 = flip(self)
import(mfilename('class'));
self2 = fee(self.x);
self2.y = xor(self.y,1);
end
end
end