線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1268
推到 Plurk!
推到 Facebook!

請問關於屬性的定義

答題得分者是:max5020
superbomb
一般會員


發表:3
回覆:2
積分:1
註冊:2009-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-18 09:45:20 IP:60.249.xxx.xxx 訂閱
可以請問關於Delphi中,每個物件都有許多的屬性(不知中文是否正確),且為英文(英文不好),我如何瞭解每個屬性的功能為何,是否有相關書籍或網站有相關介紹,好讓初學的我能快一點上手,謝謝。
max5020
資深會員


發表:30
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-06-18 09:51:10 IP:211.22.xxx.xxx 訂閱
一切盡在HELP中, 
將CURSOR停在你想要了解的"屬性"上面,
按F1, 就可以看說明了,
據我了解, 沒有任何一本書,
可以比HELP說明得更詳細!!

ps. Delphi-7以前(含)的HELP比較清楚

ps2.至於英文不好, 可以順便K英文, 真是一舉兩得, 呵呵!!
編輯記錄
max5020 重新編輯於 2009-06-18 09:52:29, 註解 無‧
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-06-20 07:49:41 IP:124.77.xxx.xxx 訂閱
ZT过来了的,希望对你有帮助。
问题: 属性与字段的区别?
来自: Johnny_du 时间: 2007-5-17 11:20:42 ID: 3717621
属性; “字段”一般是针对数据库库表或者视图来说的。比如说:“物资库存表”这个数据库库表具有“库存量”这个字段。
来自: vivi0108 时间: 2007-5-17 11:24:58 ID: 3717626
最好能写个类能有属性,方法,但就是没具体的例子,不怎么懂,你说的那个是针对不同的概念的,我就想字段delphi里类的区别。
来自: royal1442 时间: 2007-5-17 11:29:46 ID: 3717632
TMan = class(TObject) private FAge: Integer;//字段 FIsBoy: Boolean;//字段 procedure SetAge(const Value: Integer);//属性 end; implementation procedure TMan.SetAge(const Value: Integer); begin //在设置年龄的时候,要进行基本的取值范围的判断 if (Value > 0) and (Value < 250) and (FAge <> Value) then FAge := Value; end;
来自: Johnny_du 时间: 2007-5-17 11:41:35 ID: 3717637
:) 楼上的已经写了例子了。 其实,类的私有数据叫做“字段”似乎不是很恰当。 我个人认为叫做“类的数据存储域”或者仿照C++中的叫法“类的数据成员”可能更合适些...
来自: vivi0108 时间: 2007-5-17 12:03:57 ID: 3717665
还没看过书上有属性,那个声明不对吗?还有setage命名根据age来的?
来自: vivi0108 时间: 2007-5-17 12:05:45 ID: 3717667
区别难道在于private和public?
来自: Johnny_du 时间: 2007-5-17 12:22:42 ID: 3717679
呵呵:)看来楼主似乎对OOP还没有入门。 是这样的: private关键字是说明在该部分声明的变量(如:FAge)或函数(如:SetAge)只有类自己才能够访问,而且同一类的不同实例也不能访问; public关键字是说明在该部分声明的变量或函数,可以被大家共同访问。 还有一个关键字就是published,一般属性的部分。 royal1442大侠的例子没有错,他的例子是说类TMan的FAge数据成员是通过属性调用方法而改变类属性的接口定义。
来自: vivi0108 时间: 2007-5-17 12:39:03 ID: 3717689
是啊,刚学。 to johnny:你的那句“你可以不改变类的属性的访问限制”,不怎么明白,能不能解释下?
来自: Johnny_du 时间: 2007-5-17 14:59:22 ID: 3717766
就是说在royal1442所举的例子中你可以给TMan类实例的Age属性赋18到60之间值。
来自: vivi0108 时间: 2007-5-17 16:15:58 ID: 3717811
好象是给字段fage赋值啊,怎么给属性Age进行赋值的。这点正是OOP的优越性之一,就是你不能够对类的私有数据成员进行直接的访问,而只能够通过该属性面板上的,相当与label的caption,给age赋值就相当于调用setage方法给fage字段赋值,这样理解对吗?johnny大侠!
来自: Johnny_du 时间: 2007-5-18 16:54:56 ID: 3718473
对你说的没错,就是这样理解。 下面是我写的给你的一个示例类的代码,供你参考。 unit ClassExample; interface uses SysUtils, Dialogs; type TSex = (Male,Female); {*********************************************************************** 这里声明一个THuman的类。这个类有三个属性,该属性。 而且该属性时,若FAge数据成员没有赋值,则 返回未赋值信息; Age属性有一个写方法,且仅能够对该属性:该属性 property Age: Integer read FAge write SetAge; //只有写方法的属性 end; implementation constructor THuman.Create; begin inherited; FAge := 20; FSex := Male; end; function THuman.GetRace: String; begin if FRace = '' then Result := 'Have no Race!' else Result := FRace; end; procedure THuman.SetRace(const aRace: String); var strTmp: String; begin strTmp := Trim(aRace); if ((strTmp = 'Chinese') or (strTmp = 'USA')) then FRace := strTmp else ShowMessage('Not a legal Race!'); end; procedure THuman.SetAge(const anAge: Integer); begin if (anAge < 0) or (anAge > 150) then begin ShowMessage('Not a legal Age!'); Exit; end; end; end.

------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
系統時間:2024-05-17 5:46:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!