a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 68|回复: 1

[系统分析师] 2011年软考系统分析师整理资料:面向对象(10)

[复制链接]
发表于 2012-8-2 08:48:37 | 显示全部楼层 |阅读模式
 十、面向对象的例子  这里我们将通过一个具体的实例来认识它的封装性! 在面向对象方法
8 O- _4 z. Z( z, M  中,对象可看成是属性(数据)以及这些属性上的专用操作的封装体。  l4 h# d  m$ Z5 u8 l; k
  封装是一种信息屏蔽技术,封装的目的是使对象的定义和实现分离。" M/ k: B+ Q$ t# W5 ?
  Step1:
8 n+ n; L* t# m+ G' [4 p: R  1.1新建一个工程命名为VBOOP;' }% b. u& \4 C
  1.2单击工程菜单,选择添加类模块后并单击确定按钮;1 [9 g. W/ h& a5 I0 m
  1.3在其属性窗口中将类的名称改为TScore。) p$ ?+ h9 ^: ~# H' P
  Step2:编辑TScore类模块代码
; R% m% [8 V; m9 l/ w. H  2.1.这里为TScore类定义四个私有(Private)变量,它们只能在本模块- b8 r& ~9 y; r4 i; v- J
  中是可见的,即类的一些成员被隐藏起来,用户只能通过属性过程& D+ O. u0 X2 R( B
  或函数等方法来访问,从而对对象进行封装。  |1 P  \& [7 s1 i) M) A
  定义变量的基本语法:
- m  }( `0 V1 q3 y* w  Private/Publc  As
4 v$ V, V% E' i8 X/ Z# k  代码部分:6 ?) U, i8 i4 y3 N. Q* g
  Private FName As String\'学生的姓名. ~" h& p+ Q% a* r# d
  Private FMath As Single\'数学成绩& |; }# n6 D( p, Z; g
  Private FEnglish As Single \'英语成绩
- G) C4 z& j/ f/ V* I  2.2.为TScore类定义六个公用(Public)的属性(Property)过程和一2 H1 F6 e& ^7 j. `6 t  \& Q
  个计算总分的方法函数。
0 j1 {- a3 F  j+ c  定义方法的基本语法:
/ {; W- z3 g6 L- a) h- T( Q  Private/Publc Property Get  As ;  [( E' X: W4 A8 F6 B/ K" e
  Private/Public Property Let (ByVal 变量名 As 返回值类型);' f. U8 ^/ x8 o6 r+ u+ i
  Private/Publc Function  As ;
, r. g  v! D$ j" A  get: 将模块中的私有变量的值赋给属性过程,通常称为读;) y) s# r2 y5 n/ U9 D& z( W( @
  Let: 通过属性过程给模块中的私有变量值赋,通常称为写。" b, x1 G' p# v) r9 y* R0 t6 Q9 c; D
  代码部分:
( E" ?. L1 T2 V+ W% D0 }  Public Property Get GetName() As String
+ @! P% e3 d! S8 ~" d  GetName = FName6 K$ B) l6 p" J* \
  End Property
3 g9 M0 C1 V5 t) _6 m  Public Property Let SetName(ByVal Name As String)- j& B& f% o6 h5 v) F0 K
  FName = Name
+ F; ^9 _" O5 p6 X. J/ n( @  End Property
# H' B3 a; I$ U4 I; v5 Z  Public Property Get GetMath() As Single" ?% j+ T3 `4 f9 L2 ^+ E& ]
  GetMath = FMath7 d! j, u# {: ]/ k) e$ O
  End Property3 P5 }0 U: \& @4 }( P! ?- [
  Public Property Let SetMath(ByVal Math As Single). k8 j! ^* A+ ~6 |" a
  FMath = Math
( p4 C5 n6 R  J7 t7 w' \" K: ~  End Property/ e. u( g6 U4 h. B
  Public Property Get GetEnglish() As Single4 a) @3 ^. M, T7 P; X' \
  GetEnglish = FEnglish
: i& i0 b" u3 o5 g6 W, I' n. K  End Property
, ], N* m! u# f/ p% {  Public Property Let SetEnglish(ByVal English As Single)
+ N/ d7 a& f8 S$ b  FEnglish = English) \6 G9 T. L  `3 ~$ t( n* W( w8 L
  End Property& x. D. ~* J; u; t$ z) h
  Public Function Total() As Single\'计算总成绩函数! F1 @" q. {) {3 g+ F# u
  Total = GetMath + GetEnglish
/ l( Y# h1 H2 o* O& ]  End Function
  _5 `0 e1 h( @7 U$ p9 e, @1 F  Step3:回到Form1窗口,在窗口上添加12个控件:
回复

使用道具 举报

 楼主| 发表于 2012-8-2 08:48:38 | 显示全部楼层

2011年软考系统分析师整理资料:面向对象(10)

3.1添加5个文本框txtName、txtMath、txtEN、txtTotal;  3.2添加5个标签labName、labMath、labEN、labTotal
  |6 F1 r& m1 g$ ]4 o' `  其Caption属性分别为姓名、数学、英语、总成绩;& J# Q7 P+ U" K# z% a- h+ |
  3.3添加2个命令按钮ComSetValues、ComSearch
& h7 D6 y5 {2 U0 D  其Caption属性分别为赋值、查询。
2 J7 d/ d6 Y: F* t0 _  Step4:编辑窗口事件
( \; S3 Y( A* g  T2 K/ O' b  4.1.构造Score对象及查询关键字SearchKey。在面向对象方法$ V6 D( @4 ^3 R& l
  中,我们可以这样说定义类就是定义数据类型,而声明对. Z' f! j) n! Y' I/ v3 e
  象就是声明变量。也就是说,对象实际上就是变量。" e+ H! ^' e4 d& }, Q! i/ n$ b  t) V
  Dim Score As New TScore
0 S7 r: u) u% D  Dim SearchKey As String
0 X* f- V, L; H" T, o! o  4.2.给模块中四个私有变量赋值的单击事件: |: Q7 Q9 V( n
  Private Sub ComSetValues_Click()( N0 i! P5 ^& h) w  F- U

- z; X! \3 \# @& s: F! O  If Val(txtMath.Text) >= 0 And Val(txtMath.Text) = 0 And Val(txtEN.Text)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 08:32 , Processed in 0.196417 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表