如何引用包中的类构造函数?

时间:2013-07-05 03:59:25

标签: matlab oop constructor packages

假设下面的类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

1 个答案:

答案 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