美食的俘虏穿越:统计年龄DELPHI 编程

来源:百度文库 编辑:高校问答 时间:2024/05/08 18:14:53
自己写了一个POSERN类,它的属性有姓名,年龄,编号.如何实现编写初始化编程,并且统计出指定人员组的年龄总和!!!
下面是我定义的类
type
TPerson = class(TObject)
private
FAge: integer;
FName: integer;
FNo: integer;
procedure SetAge(const Value: integer);
procedure SetName(const Value: integer);
procedure SetNo(const Value: integer);
procedure Init;
public
property Age: integer read FAge write SetAge;
property Name: integer read FName write SetName;
property No: integer read FNo write SetNo;
function SaveToStream(AStream: TStream): Boolean;
function LoadFromStream(AStream: TStream): Boolean;
constructor Create;
destructor Destroy; override;
end;
procedure TPerson.Init;
begin
No:=0001;
Age:=20;
{
if No<0 then NO:=0001;
if (Age <0)or(Age>50)then Age:=20;
}
//完成初始化工作,请问我这样做初始化对吗?
end;
function TForm1.QueryTotalAge: integer;
var
Person:TPerson;
Sum:integer;
I:integer;
begin
for I:=0 to Person.No-1 do
Sum:=+Person.Age;
//统计出指定人员组的年龄总和,这个统计的对吗?
end

初始化是指构造函数么?无非也就是自定义一个带参数的构造函数,在建立类的实例的同时,把姓名、年龄、编号这些属性都赋好初值,再没有别的了

统计人员组的年龄总和应该是POSERN1.年龄+POSERN2.年龄...

创建一个类的实例,是否应该调用Person:=TPerson.Create来完成呢,我觉得应该是,你的法子只是声明了一个TPerson类型的变量,但是并没有调用构造函数来创建它的实例,或者你也可以把Init函数声明成构造函数,通过调用它来完成

不要用init
应该使用
construnctor Create;