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

Matlab 如何在包中引用类构造函数?,matlab,oop,constructor,packages,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 fun

假设下面的类
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
你试过使用这个函数吗?我认为应该可以这样做:

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

不是真的:,这是一个改进,因为这意味着不必跟踪封装包的名称。仍然很不幸,因为人们希望一个方法能够直接访问它自己的类的构造函数。