1.在一个类中,类方法和普通方法有什么不同?
2.类的继承(Class_B=Class(Class_A))和类的引用(Class_B=Class of Class_A)有什么不同?
谢谢

解决方案 »

  1.   

    其实没什么太大的区别,类方法是被封装起来的,只有public的方法才能被别的类或程序调用
      

  2.   

    1、类方法不需要实例华就可以调用,而普通方法需要向实例化,否则会升起意外
    如:class_b = Class
    private
      h:integer;
      class function abc:integer;
      procedure efg;
    end;那么你可以这么用
    var
      i:integer;
      j:class_b;
    begin
      i:=class_b.abc;//注意,方法abc中不要引用类abc的field,如本例中的h,因为类可能还没有实例化
      j:=class_b.create;
      j.efg;
    end;2:不同,前者是一个类,而后者中的class_b是类class_a的引用(reference)
    如果
    class_a = class
    ...
    end;class_b = class of class_a;那么实际上可以这么使用
    var
      a:class_a;
      b:class_b;
    begin
      a:=class_a.create;
      
      if 1*2<>4 then
      begin
        b:=class_a;
        a:=b.create;
      end;
    end;
      

  3.   

    我认为firstshine(原曦)所说1、类方法不需要实例华就可以调用中的
    “i:=class_b.abc;”不对,因为i被声明为整形变量,它不能被赋予函数的内容。其实类方法主要是被用来作为参数传递,提高程序的灵活性。
      

  4.   

    说说类引用:类引用可以让你将该类及子类赋值给类引用,也就是说你可以根据赋给类引用的不同的类(子类)而调用类引用创建不同的对象,这在动态建立对象时是相当方便和节省代码的,在delphi的vcl中用很多类引用