类定义中的public问题 (100分)

  • 主题发起人 主题发起人 ldaan
  • 开始时间 开始时间
L

ldaan

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是新手,有一 问题不明白,请各位帮忙解答,如下:
tmyobject=class
private
somevalue:integer;
procedure setsomevalue(avalue:integer);
public
property value:integer read somevalue write setsomevalue;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我是想问这一句是什么意思,有什么用的,怎么用的?
end;
procedure tmyobject.setsomevalue(avalue:integer);
begin
if somevalue<>avalue then
somevalue:=avalue;
end;

请问public这一行中,是什么意思,有什么作用,如何运用呢?
可否举一例子说明一下?
渴望得到各位的指点,感激涕零。
 
你的public是建立公共属性tmyobject.value.让你的其程序单元能够调用tmyobject.value.
但建议不要用value这个名称!!!
 
Public 与 Private 相对而言,Public 是公用,Private 是私用,就是说 Private 里定义的
变量、过程、函数等都只能在本身的单元里使用;而 Public 里定义的变量、过程、函数等
就可以在整个 Project 里面使用。
 
public 实现类界面的程序代码, 如类属性、方法
private 放类的私有数据,是不公开的成员
例子就如你的代码差不多。




 
分三种:
PUBLIC:公共信息,任何FORM都能调用。
PRIVATE:私有信息,只有本FORM调 用。
PROTECT:保护信息,给本FORMT和本FORM的子类调用
 
public意味着,在类的外部可以访问的部分.
property则是Delphi较c++的特色之一:
你帖的代码意味着所有对value的读访问将得到私有域somevalue的值,而对value的写访问
会通过setsomevalue方法来实现。至于加上if somevalue<>avalue的条件,在本例中没什么
意义,但如果在下面的例子中,写用方法而不用私有域就显得很有用了。
TSomething = class
private
FColor: TColor;
procedure SetColor(const Value: TColor);
procedure draw;
public
Color: TColor read FColor write SetColor;
end;

TSomeThing.SetColor(const Value: TColor);
begin
if Value<>FColor then
begin
FColor:=Value;
Draw
end
end;
 
后退
顶部