变量、字段、域、属性、属性过程
第16讲 数据access总复习

联系 :用菱形表示,并用无向边分别与有关 实体连接,在无向边旁标上联系类型(1:1,1:n,
m:n)
数据模型(2)
关系模型 E-R图转换为关系模型 关系模型的完整性
一、关系模型
1.关系模型的数据结构
实体及实体间的联系都用二维表表示,
数据结构单一化。 一张二维表称为一个关系。
1. 模块
模块作为Access的对象之一,起着存放用户编写 的VBA代码的作用。模块将VBA声明、过程和函 数结合在一起,作为一个整体被存储和使用,利用 模块可以将各种数据库对象联接起来,从而使其构 成一个完整的系统。
模块是由一个或多个过程组成的,模块中的每一个 过程可以是一个函数过程或者一个子程序过程。
或者取空值(F的每个属性值均为空值)。
或者等于S中某个元组的主码值。
三、关系模型的完整性
3.用户自定义完整性
是针对数据库中具体数据的约束条件。反映了 某一具体应用所涉及语义要求。 例: 课程(课程号,课程名,学分) “课程名”属性必须取唯一值
非主属性“课程名”也不能取空值
“学分”属性只能取值{1,2,3,4}
概念 模型
DBMS
支持的 数 据 模 型
数据模型(续)
数据模型分成两个不同的层次
(1) 概念模型 也称信息模型,它是按用户的观
点来对数据和信息建模。
(2) 数据模型 主要包括网状模型、层次模型、
关系模型等,它是按计算机系统的观点对数据
建模。
二、概念模型
1.信息世界中的几个术语:
实体:客观存在并可相互区别的事物。可 以是实际事物,如一本图书、一位学生;也 可以是抽象事件,如选修课程、借阅图书。 属性:实体的性质。一个实体可由若 干属性描述。属性的取值范围称为域。 实体集:属性相同的实体的集合。
VF基础知识总结(1-8章)

11.MIN()函数字符函 Nhomakorabea:日期时间函数:
1.LEN()函数
1.DATE()函数
2.LOWER()函数
2.TIME()函数
3.UPPER()函数
3.DATETIME()函数
4.SPACE()函数
4.YEAR()函数
5.TRIM()函数
5.MONTH()函数
6.LTRIM()函数
6.DAY()函数
小结:排序与索引的区别
1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关 键字,不需要打开表;
2、排序生成一个新表,索引是针对原表生成一个指针文件 3、升降序的表示与书写方式不同:排序/a升序/d降序/c不区分大小写,索引 ascending和descending。 4、排序与索引的to的含义不同,排序的to 表示到一个新表,索引的to表示建立 单索引文件。
3、各类文件选项卡: ①“全部”选项卡(以下五项的全部内容) ②“数据”选项卡(数据库、自由表、查询、视图) ③“文档”选项卡(表单、报表、标签) ④“类”选项卡 ⑤“代码”选项卡 ⑥“其他”选项卡
第二章 数据与数据运算
1、字段数据类型(11种)
字符型
C
数值型
N
逻辑型
L(1)
日期型
D(8)
日期时间型 T(8)
****************************************************************** 小结:
1、用use 打开表时,记录号位于第一条记录 2、执行带all的命令,记录指针指向eof()=.T. 3、当为.T.时,bof的记录号总是为1,eof的记录号是记录数+1 4、空表的总记录是0,bof的记录号是1,eof的记录号是1
黑马程序员-C#学习笔记(二)

⿊马程序员-C#学习笔记(⼆)-C# 学习笔记⼀、变量与表达式1.变量第⼀个字母必须是字符、下划线或@,其后就可以字符、数字、下划线。
2.字⾯值(1)double为浮点默认字⾯值,在给float或decimal浮点型赋值时要加f/F或m/M。
3。
表达式Char变量实际存储的是数字,所以把两个char变量加在⼀起会得到⼀个数字。
⼆、流程控制2.Switch在C#中,执⾏完⼀个Case语句后,不能进⼊下⼀个Case语句,⽽就加个break或return 或goto语句,如若不然会报错!但是有个例外,如果把多个Case语句放在⼀起,但是前⾯的Case语句没有执⾏体,只有最后⼀个Case语句有执⾏体,实际是⼀次检查多个条件。
也即只要其中有⼀个符合,那么最后⼀个Case语句的执⾏体就会执⾏!例:Case <comparison X>:Case <compareson Y>:<code>Break;这⾥的X或Y必须是常量(字⾯值或字符常量)。
3.foreach语句可以⽤foreach来查找string,可以⽤索引访问其字符。
Froeach(char c in mStrings){}三、变量的更多内容1.显式转换(1)⽤Checked和uncheked检测表达式的溢出,也就是将数据类型转换为另⼀种数据类型时,可以知道是否有数据丢失。
(2)Convert命令显⽰转换时,它总是检测溢出的。
(3)⽐Int类型低的整数类型(char,byte,shor等),进⾏运算后提升为int类型,所以必须⽤int或Long等长整数类型来保存结果(当然⽤浮点也可以的)。
⽽针对float和double不会出现这种情况,float运算可以⽤float类型存值。
(4)变量在赋值后,这个变量才拥有内存空间,如果这种占据内存空间插座在循环中发⽣,该值实际上定义了⼀个局部值。
在循环外部会超出作⽤域。
⼀般情况下,最好在声明和初始化所有的变量后,再在代码中使⽤它们。
VF数据库基础笔记

第一章VF数据库基础1、数据库管理系统:DBMS;数据库应用系统:DBAS;数据库系统:DBS数据库:DBDBS包括DBMS,DBAS,DB2、实体之间的联系:一对一、一对多、多对多3、数据库中的数据模型:网状模型、层次模型、关系模型4、关系:一个关系就一个二维表,每一个关系有一个关系名。
5、元组:二维表中的行6、属性:二维表中的列7、域:属性的取值范围。
8、关系:是关系名:表名属性:字段行:记录、元组列:字段、属性9、专门的关系运算:选择:水平方向投影:垂直方向联接:(1:1,1: N、M:N)10、关系模式对应一个关系的结构关系名(属性1、属性2、……)在VF中:表名(字段1、字段2、……)11、常用命令CLOSE ALL关闭所有打开的文件CLEAR清除面板中的内容QUIT退出VF12、常用文件扩展名:项目:.pjx数据库:.db表:.dbf第二章VF程序设计一、常量:固定不变的量常量的六种类型:数值型:表示数量的大小货币型:前缀$,与数值型类似字符型:又称字符串,用‘’或“”或[]作为定界符,“”与“”不同日期型:常量表示方法为{^2010-02-06}日期时间型:{^2010-02-06 10:00:00}逻辑型:有两个值,真与假。
真:.T.或.Y. 假:.F.或.N.二、变量:值可变的量变量名为字母、汉字或下划线开头变量类型:字段变量:表中的字段均为字段变量,在表中对于不同记录字段的取值不同内存变量:内存变量的类型包括字符型、数值型、货币型、逻辑型、日期型、日期时间型内存变量赋值:内存变量名=表达式(一次只能给一个变量赋值)Store 表达式 to 内存变量列表 (内存变量列表用逗号分隔,可以同时给多个变量赋相同的值) 如:aa=45ab=’xxxx’store 45 to cc,dd (相当于cc=45 dd=45)数组的定义:也是变量,是存储于连续区域的变量的组合,可通过下标来访问dime 数组名(下标上限)或decl数组名(下标上限)如dime x(5) decl y(2,3)数组创建后,系统自动给每个数组元素赋值为逻辑假.F.变量与命令不区不分大小写,字符串区别大小写一、内存变量常用命令1、内存变量赋值Store 表达式 to 内存变量表内存变量名=表达式2、表达式的显示???3、内存变量的显示LIST MEMORY LIKE 通配符DISPLAY MEMORY LIKE 通配符通配符:?表示任意一上字符,*表示任意多个字符LIST MEMORY LIKE A* 表示显示A开头的所有内存变量LIST MEMORY LIKE A?表示显示A4、内存变量清除CLEAR MEMORY (清除所有内存变量)RELEASE 内存变量名表(清除指定内存变量)二、表达式定义:用常量、变量和函数通过运算符连接起来的式子。
第1-2章考点【更新】(10)

七、宏 1. 宏的基本概念。 2. 宏的基本操作: (1) 创建宏:创建一个宏,创建宏组。
(2) 运行宏。
(3) 在宏中使用条件。 (4) 设置宏操作参数。 (5) 常用的宏操作。
八、模块
1. 模块的基本概念:
(1) 类模块。
(2) 标准模块。 (3) 将宏转换为模块。 2. 创建模块:
(1) 创建VBA 模块:在模块中加入过程,在模块中执行宏。
请重新输入。”
◦ >=10
and
<=60
14:设置"入校时间"字段的有效性规则和有效性文本,具体规则是:输
入日期必须在2000年1月1日之后(不包括2000年1月1日);有效性文本内 容为:"输入的日期有误,重新输入"。
◦ >#2000-1-1#
16:设置新表"tBranch"中的"房间号"字段的"有效性规则",保证输 入的数字在100到900之间(不包括100和900)。>100 and <900
模块
◦ ACCESS2010主界面:后台视图、功能区、导航窗格
涉及知识点
◦ ACCESS2010扩展名.accdb
◦ 创建数据库两种方法:创建空库、利用模板创建
◦ 打开和关闭数据库
◦ 数据表的组成:表结构、表内容(记录) ◦ 字段的命名规则 ◦ 字段数据的12种类型
<=255 65535 1.2.4.8 固定8 固定8 固定4 固定1 最大1GB
三者之间的关系
◦ 数据处理的三个阶段:人工管理阶段、文件系统阶段、数
三个阶段各自的特点、区别
◦ 数据库、数据库管理系统、数据库系统
第二章数据模型

(1)矩形框——表示实体型; (2)菱形框——表示联系型; (3)椭圆形框——表示实体型或联系型的属性; (4)直线——用来连接上述三种图框。 做图时,把相应的命名记入框中;对组成关键字的属性,标记下 划线;在菱形框的引出线上要标上联系的方式(如1:N等)。
数据库系统原理
2.20
从现实世界到概念模型的转换由数据库设 计人员完成的。
从概念模型到逻辑模型的转换可以由数据 库设计人员完成,也可以用数据库设计工 具协助设计人员完成。
从逻辑模型到物理模型的转换是由DBMS 自动完成的。
数据库系统原理
2.7
李瑞改(lirg751@)
2.1 信息抽象过程
2.26
李瑞改(lirg751@)
2.4 结构数据模型(简称数据模型)
结构数据模型直接面向数据库的逻辑结构,是对现实世界的 第二层抽象,所以也称逻辑数据模型。 数据库的组成:
数据结构 规定了数据模型的静态特性,刻画数据模型性质最重要的方面。
数据操作 主要包括数据查询和数据更新,规定了数据模型的动态特性。
➢ (1)现实世界
现实世界是指客观存在的事物及其联系,现实世界 有个体和总体等概念。
个体:一个客观存在的可识别事物。 个体特征:每个个体都有一些区别于其他个体的特征 。例如一本书的特征可以有:书名,作者,价格,出 版社,页数等。 总体:所有同类个体的集合成为总体。例如:所有的 “书”就是一个总体。 事物联系:同类个体之间或不同类个体的关系。
2.1 信息抽象过程
➢ (3)机器世界
信息世界中的信息经过数字化处理形成计算机能够处理 的数据,就进入了机器世界,机器世界也叫计算机世界或 数字世界。
数据项:对应实体属性的数据单位,又称为字段。通常和属 性同名。
全国计算机等级考试二级VF知识点(完整版)
1、数据处理的中心问题是数据管理。
多年来,数据管理经历了人工管理阶段、文件管理阶段、数据库系统阶段。
2、人工管理阶段面对的主要问题:1、数据不能独立。
2、数据不能长期保存。
3、文件管理阶段面对的主要特点:1、数据与程序分开。
2、数据能长期保存。
3、数据没有完全独立。
4、存在数据冗余。
5、数据不能集中管理。
4、数据库系统阶段特点:1、实现了数据的结构化。
2、实现了数据共享。
3、实现了数据独立。
4、实现了数据统一控制。
5、三者之间的区别:主要在于数据与程序之间的关系。
在人工管理阶段,数据与程序不具有独立性。
在文件系统阶段,程序和数据有了一定的独立性。
在数据库系统阶段提供了数据与应用程序的独立性。
6、数据库(DATA BASE 简写为DB)是按一定的组织形式存储在一起的相互关联的数据集合。
数据库具有数据的结构化、独立性、共享性、冗余量小、安全性、完整性和并发控制的基本特点。
7、数据库管理系统(DATA BASE MANAGEMENT SYSTEM 简写为DBMS)是数据库系统的核心部分。
而数据库运行管理和控制例行程序是数据库管理系统的核心部分。
8、数据库系统(DATA BASE SYSTEM 简写为DBS)具体包括计算机硬件、操作系统、数据库、数据库管理系统和建立在该数据库之上的相关软件、数据库管理员和用户等5个部分。
9、数据库应用系统(DATA BASE APPLICATION SYSTEMS 简写为DBAS)通常由数据库和应用程序组成。
10、数据模型是指数据库的组织形式,它取决于数据库中数据之间联系的表达方式。
数据库管理系统所支持的数据模型分为3类,层次模型、网状模型和关系模型。
11、关系模型:用二维表结构来表示实体以及实体之间联系的模型称为关系模型,在关系模型中把数据看成是二维表中的元素,一张二维表就是一个关系。
12、关系术语:1、关系:一个关系就是一张二维表,在VFP中,一个关系存储为一个文件,文件的扩展名为.dbf,称为表。
各主要章节要点汇总
各主要章节要点汇总第一章:1.数据管理经历了以下几个阶段:手工管理,文件系统,数据库系统,分布式数据库系统,面向对象的数据库系统.其中数据开始独立于程序的阶段是:数据库系统,数据库系统的高级阶段是面向对象的数据库系统.2.数据库是相关的数据的集合,管理的是表及表间联系,一个具体的数据库就是一个实际的关系模型.3.实体:客观存在,而又相互区别的事物.可以是具体的事物,也可以是抽象的概念. 例如:学生,学生选课.实体型:抽象实体的外型,是属性的集合,是一种实体类型.相当于表的结构.实体集:同类实体的集合,相当于一个表中的所有的记录.4.实体或称表之间的联系的类型分为三种:一对一,一对多,多对多.要建立两个表多对多的关系,只需要建立第三方表--纽带表,来实现两个一对多的关系.5.关系术语:a.关系:二维表.在vfp中,表现为一个扩展名为.dbf的表文件.b.关系模式:对应于关系的结构,相当于表结构.c.元组:二维表水平方向的行.在vfp中,又叫记录d.属性:二维表垂直方向的列,又叫字段.e.域:属性的取值范围.例如逻辑型字段的域:逻辑真或者是逻辑假.f.关键字:能够唯一标记一个元组的属性或者是属性的组合.(字段或者是字段组合) ,分为两种:主关键字和候选关键字.主关键字不仅可以体现关键字的特征,而且还用于和其它表发生联系.g.外部关键字:不是本表的关键字,却是另外一个表的关键字(主关键字或者是候选关键字).这个字段就是外部关键字,一般用外部关键字来保证表之间的联系.6.关系的特点:a. 关系必须规范化.(关系模式必须满足一定的要求.),最基本的要求是表中的属性不可分割,即表中不能再包含表b. 关系中不能有相同的元组或者是属性(重复记录或者重名的字段)c. 关系中的元组和属性的次序无关紧要.(对表中排序体现了关系的特点------表中的记录的顺序无关紧要)7.数据模型分为三种:层次模型,网状模型,关系模型(用二维表来描述实体与实体之间的联系)8.关系的基本运算有两类:传统的集合运算(并,交,差),专门的关系运算(选择,投影,联接)传统的集合运算:并,交,差.要求参于运算的两个关系(表)必须具有相同的关系模式(表结构)并:包含两个表中的所有的记录.(查询的并运算的优先级为union)交:两个关系(表)中都有的元组(记录)差:从一个关系中去掉另一个关系中也有的元组,剩下的元组.(记录)专门的关系运算:选择,投影和联接.选择:从关系(表)中找出条件满足的元组(记录).在sql select中主要用where 条件来实现选择操作.投影:从关系(表)中找出若干属性(字段).在sql select 中用select 来实现关系的投影操作.联接:两个或者是多个关系的模向组合,即形成一个更大的关系.在sql select 中主要用join来实现其操作.等值联接:两个表根据公共字段相等进行的联接.(inner join)自然联接:去掉重复属性值的等值联接.9.数据库设计的步骤:需求分析,确定所需要的表,确定所需的字段,确定表之间的联系.设计求精.10.visual foxpro是一个32位关系数据库管理系统,是一个可运行于windows95,windows98,windows NT的可视化,面向对象的编程语言.11.Visual Foxpro有三种工作方式:1.用菜单或者是工具栏.2.在命令窗口直接输入命令.3.利用各种生成器来自动产生程序,或者是编写foxpro程序(命令文件)来执行它.12.菜单项后面有"...",表示会弹出一个菜单.13.用dir命令可以显示当前目录下的表的信息.用clear命令表示清除主屏幕的内容.14.ctrl+F2表示显示命令窗口.ctrl+F4表示隐藏命令窗口.15.项目管理器的各个选项卡的功能:数据:管理数据库,自由表,查询.文档:管理表单,报表,标签代码:管理程序,API库,应用程序.其它:管理菜单,文本文件和其它文件.16.有关工具栏的操作:均在显示菜单下的工具栏实现.a.显示和隐藏工具栏.b.可以新建一个用户自己的工具栏.c.可以修改(定制)用户和系统的工具栏d.可以删除用户自己的工具栏.但是不能删除系统的工具栏.e.可以重置系统的工具栏.17.可以定制vfp的运行环境,通过工具/选项下进行.区域选项卡:设置日期和时间的显示方式,小数位以及货币的符号.表单:可以设置表单的默认大小.语法着色:可以设置程序代码的颜色.文件位置:可以设置默认目录和帮助文件.这种设置可以是永久的,也可以是临时的.当设置完毕后,直接按确定,这种设置只在本次运行vfp时有效,因为它是保存在内存中,内存在每次退出vfp时自动释放.当设置完毕后,设置为默认值后,再按确定,这种设计永久有效,因为它保存在windows注册表中.18.vfp新增了很多向导,有新的应用程序向导,新的连接向导,新的数据库向导,新的Web发布向导,新的示例向导.19,打开不同文件时,系统会自动调出相应的设计器.第三章:1.表分别两种:数据库表,自由表.数据库表可以设计长表名,长字段名,可以设置字段有效性规则,违反规则时的提示信息,默认值,格式,输入掩码以及在浏览时显示的标题和记录级规则.数据库长表名可以长达128个字符,字段名长达128个字符,自由表的字段名和表名最长只能为10个字符.2.记录查找的命令:locate for ....定位到条件满足的第一条记录continue...定位到条件满足的下一条记录seek值---索引查找.都可以用found()函数来测试是否找到结果.3.索引分为四种:主索引,候选索引,唯一索引,普通索引.主索引:体现主关键字的功能,索引字段不能重复.一般用于和其它表建立联系.自由表没有主关键字,因此自由表不能建立主索引.候选索引:体现候选关键字的功能.索引字段也不能重复.唯一索引:索引字段值重复的记录,在索引项中只出现第一条记录.(一般用来统计类别)普通索引:一般默认情况下建立的索引,都是普通索引,索引字段可以重复.一般用于建立一对多联系的体现外部关键字的功能.4.索引根据参与索引的字段的多少,又可以分为单项索引,复合字段索引.单项索引:参与索引的字段只有一个,可以通过选择字段之后的一种索引顺序,然后转到索引选项卡中去改其索引的类型和索引名。
数据挖掘知识点归纳
知识点一数据仓库1.数据仓库是一个从多个数据源收集的信息存储库,存放在一致的模式下,并且通常驻留在单个站点上。
2.数据仓库通过数据清理、数据变换、数据集成、数据装入和定期数据刷新来构造。
3.数据仓库围绕主题组织4.数据仓库基于历史数据提供消息,是汇总的。
5.数据仓库用称作数据立方体的多维数据结构建模,每一个维对应于模式中的一个或者一组属性,每一个单元存放某种聚集的度量值6.数据立方体提供数据的多维视图,并允许预计算和快速访问汇总数据7.提供提供多维数据视图和汇总数据的预计算,数据仓库非常适合联机分析处理,允许在不同的抽象层提供数据,这种操作适合不同的用户角度8.OLAP例子包括下钻和上卷,允许用户在不同的汇总级别上观察数据9.多维数据挖掘又叫做探索式多维数据挖掘OLAP风格在多维空间进行数据挖掘,允许在各种粒度进行多维组合探查,因此更有可能代表知识的有趣模式。
知识点二可以挖掘什么数据1.大量的数据挖掘功能,包括特征化和区分、频繁模式、关联和相关性分析挖掘、分类和回归、聚类分析、离群点分析2.数据挖掘功能用于指定数据挖掘任务发现的模式,分为描述性和预测性3.描述性挖掘任务刻画目标数据中数据的一般性质4.预测性挖掘任务在当前数据上进行归纳,以便做出预测5.数据可以与类或概念相关联6.用汇总、简洁、精确的表达描述类和概念,称为类/概念描述7.描述的方法有数据特征化(针对目标类)、数据区分(针对对比类)、数据特征化和区分8.数据特征化用来查询用户指定的数据,上卷操作用来执行用户控制的、沿着指定维的数据汇总。
面向属性的归纳技术可以用来进行数据的泛化和特征化,而不必与用户交互。
形式有饼图、条图、曲线、多维数据立方体和包括交叉表在内的多维表。
结果描述可以用广义关系或者规则(也叫特征规则)提供。
9.用规则表示的区分描述叫做区分规则。
10.数据频繁出现的模式叫做频繁模式,类型包括频繁项集、频繁子项集(又叫频繁序列)、频繁子结构。
计算机笔记(超强记忆)
我学VFP笔记例如list 学号, 姓名注意逗号是英文状态下才可用打开方式要选好文件类型,否则不一定找到文件输入逻辑值时只输入T或F,定界符系统自动生成输入日期值时只输入数码,分隔符系统自动生成输入备注值时,光标位于MEMO上时,按CTRL+PgDn进入编辑窗口,完成后按CTRL+W返回下一个字段继续输入“表”只有打开一个表时会出现在任务栏上一个数据库系统通常是由五个部分组成,分别是硬件系统、数据库集合、数据库管理系统及相关软件、数据管理员和用户DBS包含DB和DBMS,数据库DB、数据库系统DBS、数据库管理系统DBMS关系数据库中不仅存在数据项之间的联系,还存在记录之间的联系实体内部的联系是指实体内部各属性之间的联系在VFP中,一个关系就是一个二维表当前被指定的一个用于唯一标识一个元组的候选关键字称为主关键字能惟一标识一个元组的属性或属性的组合称为关键字。
关系运算包括传统的集合运算和专门的关系运算如果改变一个关系中属性的排列顺序,应使用的关系运算是投影运算VFP6是32位数据库开发系统VFP的工具栏可以用来创建自定义的工具栏VFP的临时性环境设置是将环境参数保存在内存中VFP的环境设置是通过工具、选项菜单进行的要修改一组对象的属性,可使用生成器项目管理器的数据选项卡用于显示和管理数据库、自由表和查询项目管理器窗口中的按钮不能完成复制文件数值型常量占用8字节内存^不能作为日期型常量的分割符变量必须以字母、汉字和下划线开头,后面可以跟字母、汉字、数字、下划线,变量名中间不能出现空格、小数点、减号等。
当内存变量与字段名变量重名时,系统优先处理字段名变量VFP只支持一维、二维数组,最多只能支持二维数组STORT语句一次只能将同一个值赋给多个变量OCCURS函数有2个自变量在一个含有各种运算的表达式中,它们的运算优先顺序是:()→算数运算→字符运算和日期时间运算→关系运算→逻辑运算一个VFP数据库是由数据库文件、数据库备注文件和数据库索引文件数据库文件是管理数据库对象的文件同一表的全部备注字段内容存储在同一备注文件中在VFP中,可以对字段设默认值的表必须是数据库表在VFP中,可以链接或嵌入OLE对象的字段类型是通用型字段在VFP中,日期型字段和日期时间型字段在表中的宽度都是8ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#中的变量、字段、域、属性、属性过程
在C#中:
域:表示与对象或类相关联的变量,修饰符不论是不是public。
(与字段类似)字段:表示与对象或类相关联的变量。
通常来讲修饰符是public的成员变量称为字段,而private更适合说是局部变量。
(与域类似)
属性:表示域或字段的自然扩展,使得在保证封装性的基础上实现了访问私有成员的便捷性。
域
域表示与对象或类相关联的变量,声明格式如下:
attributes field-modifiers type variable-declarators;
域的修饰符field-modifiers可以是:new、public、protected、internal、private、static、readonly。
实际上,域相当于C++中的简单成员变量。
在下面的代码中,类A包含了三个域:公有的X和Y,以及私有的z。
class A
{
public int x;
public string y;
private float z;
}
字段
字段是与对象或类相关联的变量。
当一个字段声明中含有static修饰符时,由该声明引入的字段为静态字段(static field)。
它只标识了一个存储位置。
不管创建了多少个类实例,静态字段都只会有一个副本。
当一个字段声明中不含有static修饰符时,由该声明引入的字段为实例字段
(instance field)。
类的每个实例都包含了该类的所有实例字段的一个单独副本。
在下面的示例中,Color类的每个实例都有r,g,b实例字段的不同副本,但是Black,White,Red,Green和Blue等静态字段只有一个副本:
public class Color
{
public static readonly Color Black = new Color(0, 0, 0);
public static readonly Color White = new Color(255, 255, 255);
public static readonly Color Red = new Color(255, 0, 0);
public static readonly Color Green = new Color(0, 255, 0);
public static readonly Color Blue = new Color(0, 0, 255);
private byte r, g, b;
public Color(byte r, byte g, byte b) {
this.r = r;
this.g = g;
this.b = b;
}
}
如示例所示,通过readonly修饰符声明只读字段。
给readonly字段的赋值只能作为声明的组成部分出现,或者在同一类中的实例构造函数或静态构造函数中出现。
属性
为了类的封装性,一般是把字段设为Private,把属性设为公有来操作字段。
属性(property)是字段的自然扩展,两者都是具有关联类型的命名成员,而且访问字段和属性的语法是相同的。
然而,属性与字段不同,不表示存储位置。
相反,属性有访问器(accessor),这些访问器指定在它们的值被读取或写入时需执行的语句。
属性的声明类似于字段,不同之处在于属性的声明以定界符{}之间的get访问器和/或set访问器结束,而不是分号。
同时包含get访问器和set访问器的属性称为读写属性(read-write property)。
只具有get访问器的属性称为只读属性(read-only property)。
只具有set访问器的属性称为只写属性(write-only property)。
get访问器相当于一个具有属性类型返回值的无参数方法。
除了作为赋值的目标外,当在表达式中引用属性时,会调用该属性的get访问器以计算该属性的值。
set访问器相当于一个具有单个名为value的参数和无返回类型的方法。
当一个属性作为赋值的目标,或者作为++或--运算符的操作数被引用时,就会调用set访问器,所传递的自变量将提供新值。
List类声明了两个属性Count和Capacity,依次是只读和只写的。
下面是使用这些属性的示例:
List names = new List();
names.Capacity = 100; //调用set访问器
int i = names.Count; //调用get访问器
int j = names.Capacity; //调用get访问器
与字段和方法类似,对于实例属性和静态属性,C#两者都支持。
静态属性是声明中具有static修饰符,而实例属性则没有。
属性的访问器可以是虚拟的。
当属性声明中包含virtual,abstract,override修饰符时,它们将运用到属性访问器。
来自MSDN中的内容:
属性与字段
属性与字段都可在对象中存储和检索信息。
它们的相似性使得在给定情况下很难确定哪个是更好的编程选择。
在以下情况下使用属性过程:
1. 需要控制设置或检索值的时间和方式时。
2. 属性有定义完善的一组值需要进行验证时。
3. 设置值导致对象的状态发生某些明显的变化(如IsVisible 属性)。
4. 设置属性会导致更改其他内部变量或其他属性的值时。
5.必须先执行一组步骤,然后才能设置或检索属性时。
在以下情况下使用字段:
1. 值为自验证类型时。
例如,如果将True 或False 以外的值赋给Boolean 变量,就会发生错误或自动数据转换。
2. 在数据类型所支持范围内的任何值均有效时。
Single 或Double 类型的很多属性属于这种情况。
3. 属性是String 数据类型,且对于字符串的大小或值没有任何约束时。
Visual Basic中属性和变量的差异(在C#中应该也是一样的)
变量和属性都表示可以访问的值。
但在存储和实现方面有所不同。
变量
变量直接对应于内存位置。
可以使用单个声明语句定义变量。
变量可以是“局部变量”,在过程中定义且仅可用于该过程;它也可以是“成员变量”,在模块、类或结构中定义,但不在任何过程中定义。
成员变量又称“字段”。
属性
属性是在模块、类或结构中定义的数据元素。
使用Property 和End Property 语句之间的代码块定义属性。
此代码块包含一个Get 过程t或一个Set 过程,或两者都包含。
这两个过程称为“属性过程”或“属性访问器”。
除了检索或存储属性的值外,它们还可以执行自定义操作,如更新访问计数器。
不同点
下表指出了变量和属性之间的一些重要差异。
差异点变量属性
声明单个声明语句代码块中的一系列语句
实现单个存储位置可执行代码(属性过程)
存储直接与变量的值关联通常包含内部存储;在属性的包含类或模块外部,这些内部存储不可用属性的值可能作为也可能不作为一个存储元素(见下(1))
存在可执行代码无至少必须有一个过程
读写访问权限读/写或只读读/写、只读或只写
自定义操作不可能可以当作部分设置或检索属性值执行注解:(1)和变量不同,属性的值可能不直接对应于单个存储项。
为方便或安全起见,存储可能拆分为几块;也可能以加密格式存储值。
在这些情况下,Get 过程将汇编这些块或解密存储值,然后Set 过程会加密新值或将其拆分到构成存储的各个组成部分中。
属性值可以是临时的,如一天中的某个时间,在这种情况下,每次访问此属性时,Get 过程将及时计算此属性。
类与模块之间的差异
类和模块之间的主要差异在于:类可以实例化为对象,而标准模块则不能。