调用代码 //类方法可以用类直接调用 procedure TForm1.Button1Click(Sender: TObject); var kaoHao:String; begin kaoHao:=TStudent.getKaoHao('张三'); showmessage(kaoHao); kaoHao:=TStudent.getKaoHao('张三丰'); showmessage(kaoHao); end; //对比:非类方法必须在create产生实例之后才能直接。 //相当于Java的静态方法(static) procedure TForm1.btnNormalClick(Sender: TObject); var stu:TStudent; begin stu:=TStudent.Create; try stu.setName(''); showmessage('学生姓名:'+stu.getName); finally stu.Free; end; end;
类代码 //类代码 unit school; interface Type TStudent=Class private name:String; public //考号查找程序,与具体的学生实例无关 class function getKaoHao(_name:String):String; procedure setName(const Value: string); function getName: string; end; var Student:TStudent; implementation { TStudent } class function TStudent.getKaoHao(_name: String): String; begin result:=_name+'的考号是:'; //省去从数据库查找的过程 if _name='张三丰'then result:=result+'2006100' elseif _name='杨过'then result:=result+'2006101' else result:='没有找到'+_name+'的考号!'; end; function TStudent.getName: string; begin result:=self.name; end; procedure TStudent.setName(const Value: string); begin if Value=''then self.name:='新同学' else self.name:=Value; end; end.