classdef
类¶一个非常基本的classdef
值类(详见值类与句柄类)定义如下:
classdef some_class properties endproperties methods endmethods endclassdef
与旧式类相比properties
-endproperties
块以及methods
-endmethods
块可以用于定义类的属性和方法。因为这两个块都是空的,所以在这种特殊情况下可以省略它们。
为了简单起见classdef
类显示使用polynomial
再举一个例子(详见创建类):
classdef polynomial2 properties poly = 0; endproperties methods function p = polynomial2 (a) if (nargin == 1) if (isa (a, "polynomial2")) p.poly = a.poly; elseif (isreal (a) && isvector (a)) p.poly = a(:).'; # force row vector else error ("polynomial2: A must be a real vector"); endif endif endfunction function disp (p) a = p.poly; first = true; for i = 1 : length (a); if (a(i) != 0) if (first) first = false; elseif (a(i) > 0 || isnan (a(i))) printf (" +"); endif if (a(i) < 0) printf (" -"); endif if (i == 1) printf (" %.5g", abs (a(i))); elseif (abs (a(i)) != 1) printf (" %.5g *", abs (a(i))); endif if (i > 1) printf (" X"); endif if (i > 2) printf (" ^ %d", i - 1); endif endif endfor if (first) printf (" 0"); endif printf ("\n"); endfunction endmethods endclassdef
类的对象polynomial2
是通过调用类构造函数创建的:
>> p = polynomial2 ([1, 0, 1]) ⇒ p = 1 + X ^ 2
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2