语句空间导航自定义名称

空间导航自定义名称  时间:2021-04-13  阅读:()
!
!
!
!
!
%&'()*+,#)*+)-%%!
",-!
!
!
语言只是一种工具#通过它我们的意愿和思想就得到交流#它是我们灵魂的解释者"蒙田!
提倡自然语言编程的那些工作必然彻底失败")-C@/5P;=EC45A系统要素及其架构'过程及其状态的分析'设计'开发'实施'管理'评价#最终都通过语言描述$语言是文本语言与模型语言的统一'定性语言与定量语言的统一'自然语言与机器语言的统一7!
则是当前描述软件系统的最优秀的机器语言之一$本书思辨第+章已述及#软件系统本质上是现实系统的计算机二进制语言代码的隐喻#第#章叙述了计算机语言源代码的编写工具!
"#特别是!
"中计算机语言源代码的组织'编写'编译生成'部署发布'排错#本章将以上述内容为基础#以7!
为例#系统叙述计算机语言机制"#$$7!
不断发展着#具有不同的版本#本书选择'()*1'8平台所支持的7!
1'8语言为例#以下简称'()*平台%以及I"J'()*K!
7子平台&'7!
语言$本章首先概述7!
语言代码的文件结构%见,'+节&#然后介绍7!
语言代码的语法%见,'#节%,'%节&#最后叙述7!
语言代码所定义的对象*类型*要素%见,'6节%,'+#节&#对象的关系%见,'+,节&#对象的结构%见,'+1节&#对象的模式%见,'+2节&#对象的架构%见,'+T节&#以体现7!
语言与第+章所述软件原理的整合$本章将以7!
开发)P""软件系统为例介绍7!
语言机制$L;3-9RC资源管理器中#导航到并打开示例文件"AVD.
/C*)P""*)P""'C.
3#将在!
"中打开)P""软件系统的解决方案#并以此)P""解决方案中的7!
代码为案例$本章主要从语言的视角叙述软件#建议结合第+章介绍的软件理论'第#章介绍的软件工程工具软件进行理解$!
!
"!
!
!
代码文件!
"解决方案中#编写的7!
代码保存为一个个'BC格式的文件#所以首先必须了解'BC文件中7!
代码的基本框架$图,$+!
'BC文件中7!
代码基本框架的运行结果任何'BC文件中的7!
代码都应遵守示例,$+所示的基本框架%该示例对应)P""解决方案中)P""*793459.
.
C*"AVD.
/C**5H7"W;.
/XAC;BW5AV/R95E'BC文件&$运行)P""解决方案#在浏览器地址栏中输入Y44D)**.
9BA.
Y9C4)#++,%**5H7"W;.
/XAC;B$W5AV/R95E#运行该示例#如图,$+所示$示例.
"/!
'BC文件中7!
代码的基本框架$!
!
01+$2*)"321)45&&,67$(8799)8"$%&!
,'零个或多个C;3@代码行#定义类型的名称空间别名:!
3!
.
9#1192"";8'6&7867$(8799)8@!
!
67$(8799)8!
:!
3!
.
9#167$()$(A)"!
9(B$C)DEF!
!
:!
!
/'G2*)&321),/'692""*'692""H$)>/'G2*)&321),!
!
!
/'692""EF+!
!
*'692"",I873)8('JHJ+!
!
*'692"",I873)8('KHJ+!
!
8)(!
8$(L#",67$()$(E*'692"",/7(L7CJEF,!
!
!
;7&(8#$%EFF+!
!
M!
$%&M+'名称空间中#一个或多个B.
ACC';34/5ZAB/等代码块#定义类型及其关系#这些类型将实例化为对象运行#实现软件功能$%&M#'零个或多个3AV/CDAB/代码块#定义类型的名称空间$2*)"3211/'G2*)&321):!
#$()8$29192""/'692""!
:!
!
#$()8$29B$(NKI873)8('J:M!
!
#$()8$29B$(NKI873)8('K:M!
!
#$()8$29B$(NK/7(L7CJEF!
!
:!
!
!
8)(!
8$I873)8('OI873)8('K+!
!
M!
!
!
!
!
!
M!
#$()8P21)/'B$()8P21)!
:!
!
B$(NK;8'B$()8P21)I873)8(M!
!
&(8#$%;8'B$()8P21)/)(L7CNEF+!
MMQQ以上是一个,1"文件中6R代码的基本框架类型及其关系的定义7!
代码的本质乃是定义类型并形成关系结构模式架构类型实例化为对象运行从而实现软件功能所以类型及其关系的定义是'BC文件中7!
代码基本框架的核心在此仅概述此基本框架其中可能涉及的对象类型及其关系结构模式架构代码的确切含义还将在后续深入介绍例如示例,$+中代码!
!
3!
.
9#1192"";8'6&7867$(8799)8@67$(8799)8将定义一个名称为*5H7"W;.
/XAC;BW5AV/R95E793459.
.
/5的类类型代码!
!
#$()8$29192""/'692""将定义一个名称为KH7.
ACC的类类型代码!
!
#$()8P21)/'B$()8P21)将定义一个名称为KH:34/5ZAB/的接口类型小练习试在!
"中打开)P""解决方案案例如图#$#%所示在对象浏览器中查看示例,$+中自定义的*5H7"W;.
/XAC;BW5AV/R95E793459.
.
/5类类型KH7.
ACC类类型KH:34/5ZAB/接口类型以及'()*内置的众多类型试从可查找性易用性等视角思考自定义类型名称的一般原则类型的名称空间定义上述7!
代码所定义的类型需要通过名称空间定位所以名称空间定义也是'BC文件中7!
代码的基本框架之一在此仅概述此基本框架其中所涉及代码的确切含义还将在后续深入介绍例如示例,$+中代码!
!
$2*)"321)45&&,67$(8799)8"定义了一个)P""'793459.
.
/5C名称空间代码!
!
$2*)"321)/'G2*)&321)定义了一个KH(AV/"DAB/名称空间其中KH(AV/"DAB/名称空间下定义了一个!
!
#!
!
类型KH7.
ACC#那么KH(AV/"DAB/'KH7.
ACC可完全定位该类型$即#类型名称前面增加了名称空间前缀#并以!
'"连接#如示例中以下代码!
!
/'G2*)&321),/'692""*'692""H$)>/'G2*)&321),/'692""EF+类型的代码#必须包含于名称空间代码中$如果类型的代码没有显式地包含于名称空间代码中%即没有为类型显式地定义名称空间&#那么所定义的类型默认组织在根名称空间下$根名称空间下的类型直接通过类型名称定位#名称空间前缀为空$思考)类型的名称空间与文件的名称空间的异同$小练习)试在!
"中打开)P""解决方案案例#如图#$#%所示#在!
对象浏览器"中查看示例,$+中自定义的)P""'793459.
.
/5C'KH(AV/"DAB/名称空间#以及'()*内置的"HC4/V'"HC4/V'L/>'K!
7等众多名称空间$试从系统性'层次性'组织性'可查找性'易用性#以及不和'()*W5AV/R95E内置的名称空间重复等视角#思考自定义名称空间的一般原则$类型的名称空间别名定义上述7!
代码所定义的名称空间#还可定义别名#以便使用#所以#名称空间别名定义也是'BC文件中7!
代码的基本框架之一%在此仅概述此基本框架#其中所涉及代码的确切含义还将在后续深入介绍&$例如#示例,$+中的开头代码!
C;3@"HC4/V("定义了"HC4/V名称空间别名为空字符#那么#代码中本来应该写成"H4/V':34,#的类型名称空间现在可以简写为:34,##即#因为"HC4/V名称空间被声明为空字符这一名称空间别名#所以在本文件中可以以空字符代替"HC4/V名称空间$可见#定义名称空间别名有利于减小代码编写的工作量$定义名称空间别名的代码#必须位于文件中整个代码的开头处$小练习)示例,$+是代码表述#试如图#$#T所示#在!
"中为此代码创建类图#查看模型表述$!
代码语法)词法'句法7!
代码必须遵守基本框架保存为'BC格式文件%见,'+节&#同时#这些代码还必须遵守语法规则#,'#节%,'%节将叙述7!
语法%叙述7!
语法时可能涉及的对象*类型#及其关系'结构'模式'架构#这些内容将在后续章节中深入介绍&$语法可迭代为词法和句法$%+&词即单词#是语言的最小单位#单词之间可以选择空格'换行'回车等多种分隔方式$词法则是关于单词的使用规则$,',节%,'T节将叙述7!
词法$%#&句即语句#是一系列单词的组合#并以分号!
("分隔$句法则是关于语句的运用规则$,'[节%,'%节将叙述7!
句法$!
!
$!
!
!
代码词法)关键词'非关键词示例,$+所示代码文件中可发现#软件代码由很多个单词连接起来$从是否已被'()*编程平台预定义了意义的视角#这些单词可分为关键词'非关键词$关键词是已被'()*预定了意义的单词(非关键词是没有被'()*预定意义的单词#是编程人员自定义的单词$例如#示例,$+中代码!
B.
ACCKH7.
ACC,(-"中的B.
ACC是关键词#'()*认为它将声明一个类%因为关键词是预定义的#所以只能写作B.
ACC&#KH7.
ACC是非关键词#是用户自定义的类的名称%因为非关键词是自定义的#所以也可能定义为\957.
ACC']/57.
ACC#等等&$可见#基于关键词定义非关键词#是词法的基本思想#对'()*编程平台所有关键词的掌握则是词法的基础$表,$+是'()*平台7!
语言的关键词列表"#&#表,$#所示则是'()*平台7!
语言的上下文关键词%上下文关键词仅在特定上下文代码部分是关键词#其他代码部分不是关键词&$这些关键词的预定义意义#将在具体涉及时详细阐述$表.
"/!
#关键词A>C45AB4AC>AC/>99.
>5/AE>H4/BAC/BA4BYBYA5BY/BE/-B.
ACCB93C4B934;3/-/B;VA.
-/ZA.
4-/.
/@A4/-9-9>.
//.
C//3V/^/34/0D.
;B;4/04/53ZA.
C/Z;3A.
.
HZ;0/-Z.
9A4Z95Z95/ABY@949;Z;VD.
;B;4;3;3%泛型修饰符&;34;34/5ZAB/;34/53A.
;C.
9BE.
93@3AV/CDAB/3/R3.
.
9>=/B49D/5A4959494%泛型修饰符&9^/55;-/DA5AVCD5;^A4/D594/B4/-D>.
;B5/A-93.
H5/Z5/453C>H4/C/A.
/-CY954C;_/9ZC4ABEA.
.
9BC4A4;BC45;3@C45B4CR;4BY4Y;C4Y59R45/45H4HD/9Z;34.
93@3BY/BE/-3CAZ/CY954C;3@^;54A.
^9;-^9.
A4;.
/RY;.
/!
!
%!
!
表.
"!
!
#上下文关键词A--I.
;ACACB/3-;3@ACH3BARA;4-/CB/3-;3@-H3AV;BZ59V@/4@.
9>A.
@59D;349=9;3.
/495-/5>HDA54;A.
%类型&DA54;A.
%方法&5/V9^/C/.
/B4C/4^A.
/^A5RY/5/%泛型类型约束&RY/5/%查询子句&H;/.
-&"'!
代码词法)标识符(名称'()标识符含义!
!
标识符是名称':P的统称$标识符属于非关键词#是用作名称':P的非关键词$代码中所定义的类型'对象#及其成员%属性'方法等&#都是通过标识符进行指代的$例如#示例,$+中代码!
B.
ACCKH7.
ACC,(-"中的KH7.
ACC是所定义的类的标识符$标识符用于指代类型'对象等#所以#同一名称空间中不能有重复的标识符#或者说#整个软件中不能存在重复的!
名称空间'标识符"#而必须唯一$思考)关键词能否用作标识符.
标识符规范性标识符要尽量体现真实意义#这样便于与他人交流#便于维护$同时#标识符可能需要由多个词复合而成#此时通常遵守如下几种规则中的一种#可结合示例代码自主体会$%+&JACBA.
规则)例如#KH7.
ACC这一标识符是遵守JACBA.
规则的#即#复合词的第一部分KH首字母大写#第二部分7.
ACC首字母也大写#各部分都是首字母大写$名称空间名称'类型名称'类型成员名称%属性名称'方法名称&一般选用JACBA.
规则$%#&7AV/.
规则)例如#VH7.
ACC这一标识符是遵守7AV/.
规则的#即#复合词的第一部分VH首字母小写#第二部分7.
ACC首字母大写#随后的各部分都是首字母大写$类型实例化出的对象名称一般选用7AV/.
规则$小练习)!
"对象资源管理器中#查看'()*内置类型的代码#思考标识符规范性$&"*!
代码词法)运算符'表达式对象通过运算符进行运算%对象'运算符所形成的代码序列称为表达式&$例如示例,$+中代码!
J59D/54H+&J59D/54H#"中的!
&"是进行加法运算的运算符#在此是对!
!
&!
!
KH7.
ACC类型对象的J59D/54H+属性所返回的对象#与J59D/54H#属性所返回的对象#进行加法运算$!
J59D/54H+&J59D/54H#"代码块则称为一个表达式$表,$,是7!
运算符列表#这些运算符的含义#将在具体涉及时详述"#'$此外#运算符可以重载#即重新定义功能#例如#数值运算+&+-A0;3文件夹下的一个GKO文档#以供查看#在此不深入介绍$&",!
代码句法)语句'语句块,',节%,'T节叙述了7!
词法$因为单词构成句%即语句&#所以还必须理解7!
句法$语句'语句块语句由一系列单词构成#并以分号!
("结束$一个语句作为一个整体执行一次运算$例如示例,$+中语句!
5/453J59D/54H+&J59D/54H#("等$如果一个语句只包含分号!
("则表示是空语句#空语句可理解为不做任何事情$语句块是由大括号!
,-"括起来的一系列语句$语句块中的所有语句作为一个整体使用$例如示例,$+中的代码是一个语句块#该语句块是KH7.
ACC类定义的整体代码$!
!
#$()8$29192""/'692"":!
!
#$()8$29B$(NKI873)8('JM!
!
#$()8$29B$(NKI873)8('KM!
!
#$()8$29B$(NK/7(L7CJEF!
!
:!
!
!
!
8)(!
8$I873)8('JOI873)8('K+!
!
MM如上述代码中所示#语句块可以嵌套#嵌套时!
,-"必须互相匹配$!
!
(!
!
!
"语句类别+&从关键词的视角分类语句一定是由关键词来定义的#所以可从关键词的视角理解语局$例如#;Z1/.
C/1分支语句'45H1BA4BY1Z;3A.
.
H异常处理语句'BY/BE/-13BY/BE/-溢出检查语句#等等#具体涉及时会详细阐述$#&从功能的视角分类语句一定是面向一定功能的#所以可从功能的视角理解语局$例如#流程控制语局%;Z1/.
C/1分支语句'CR;4BY分支语句'Z95循环语句'Z95/ABY循环语句'RY;.
/循环语句'-9循环语句&'异常处理语句%45H1BA4BY1Z;3A.
.
H异常处理语句&'溢出检查语句%BY/BE/-13BY/BE/-溢出检查语句&#等等$下述主要从此视角#概述流程控制语局%见,'%节&#其他功能语句将在具体涉及时详细阐述$&"-!
代码句法)流程控制语句如示例,$+所示#一个7!
代码文件中的单词组成语句#语句是从前往后排布的#但它们的运行%即语句流程&是顺序'分支'循环的统一#默认是顺序流程#通过一定的关键词#则可改变顺序流程#实现分支'循环$可见#流程控制是非常基础的句法问题$'"顺序语句示例,$+中的如下语句就是顺序流程语句#在此不赘述$一个语句块中的语句默认是顺序流程语句#从前往后运行$但是#各个语句块%以及由语句块定义的属性'方法'类型&之间不一定是顺序流程#而可以在流程中被其他代码按名称调用运行$!
!
:/'G2*)&321),/'692""*'692""H$)>/'G2*)&321),/'692""EF+*'692"",I873)8('JHJ+*'692"",I873)8('KHJ+8)(!
8$(L#",67$()$(E*'692"",/7(L7CJEF,;7&(8#$%EFF+M!
"分支语句()*+,-+示例,$#是使用;Z1/.
C/1分支语句的一个实例%该示例对应)P""解决方案中的)P""*793459.
.
C*"AVD.
/C**5H:Z).
C/'BC文件&$运行)P""解决方案#在浏览器地址栏中输入Y44D)**.
9BA.
Y9C4)#++,%**5H:Z).
C/#运行该示例后的界面如图,$#所示$示例.
"!
!
分支语句);Z1/.
C/1$01+!
!
)!
!
$2*)"321)45&&,67$(8799)8":!
!
3!
.
9#1192"";8'BP49")67$(8799)8@67$(8799)8!
!
:!
!
!
!
!
!
!
3!
.
9#167$()$(A)"!
9(B$C)DEF!
!
!
!
:!
!
!
!
!
!
B$(NK#$(NKG!
*.
)8HS+!
!
!
!
!
!
#PE#$(NKG!
*.
)8HHTF:8)(!
8$(L#",67$()$(EU星期天UF+M!
!
!
!
!
!
)9")#PE#$(NKG!
*.
)8HHJF:8)(!
8$(L#",67$()$(EU星期一UF+M!
!
!
!
!
!
)9")#PE#$(NKG!
*.
)8HHKF:8)(!
8$(L#",67$()$(EU星期二UF+M!
!
!
!
!
!
)9")#PE#$(NKG!
*.
)8HHNF:8)(!
8$(L#",67$()$(EU星期三UF+M!
!
!
!
!
!
)9")#PE#$(NKG!
*.
)8HHVF:8)(!
8$(L#",67$()$(EU星期四UF+M!
!
!
!
!
!
)9")#PE#$(NKG!
*.
)8HHWF:8)(!
8$(L#",67$()$(EU星期五UF+M!
!
!
!
!
!
)9")#PE#$(NKG!
*.
)8HHXF:8)(!
8$(L#",67$()$(EU星期六UF+M!
!
!
!
!
!
)9")!
:8)(!
8$(L#",67$()$(EU没有这样的星期日子UF+M!
!
!
!
M!
!
!
MM图,$#!
;Z1/.
C/1分支语句示例的运行结果示例,$#解释如下%在此只概述;Z1/.
C/1这一流程控制语句#其中可能涉及的对象*类型#及其关系'结构'模式'架构代码的确切含义还将在后续章节深入讨论&$%+&代码!
:34,#;34,#(V>/5/5#并赋值[$%#&代码!
;Z%;34,#(V>/5/5对象的值等于8%即;34,#(V>/5/5/5对象的值等于+%即;34,#(V>/5/5/5/5/5/5/5/5/5赋值[%即;34,#(V>/5'K^B'793459.
.
/5类型继承而来的内置方法#该方法此时返回`没有这样的星期日子`字符串#所以界面如图,$#所示$%T&;Z1/.
C/1流程控制语句有可能实现任意想要的分支流程控制$思考);Z/.
C/分支语句与后述CR;4BY分支语句的异同$%"分支语句(-.
)/01示例,$,是CR;4BY分支语句的一个实例%该示例对应)P""解决方案中的)P""*793459.
.
C*"AVD.
/C**5H"R;4BY'BC文件&$运行)P""解决方案#在浏览器地址栏中输入Y44D)**.
9BA.
Y9C4)#++,%**5H"R;4BY#运行该示例后的界面如图,$,所示$示例.
".
!
分支语句)CR;4BY$01+$2*)"321)45&&,67$(8799)8":!
!
3!
.
9#1192"";8'&>#(1L67$(8799)8@67$(8799)8!
!
:!
!
!
!
3!
.
9#167$()$(A)"!
9(B$C)DEF!
!
!
!
:!
!
!
!
!
!
B$(NK#$(NKG!
*.
)8HK+1LE#$(NKG!
*.
)8F!
!
!
!
!
!
:!
!
!
!
!
!
!
!
12")T@:8)(!
8$(L#",67$()$(EU星期天UF+M!
!
!
!
!
!
!
!
12")J@:8)(!
8$(L#",67$()$(EU星期一UF+M!
!
!
!
!
!
!
!
12")K@:8)(!
8$(L#",67$()$(EU星期二UF+M!
!
!
!
!
!
!
!
12")N@:8)(!
8$(L#",67$()$(EU星期三UF+M!
!
!
!
!
!
!
!
12")V@:8)(!
8$(L#",67$()$(EU星期四UF+M!
!
!
!
!
!
!
!
12")W@:8)(!
8$(L#",67$()$(EU星期五UF+M!
!
!
!
!
!
!
!
12")X@:8)(!
8$(L#",67$()$(EU星期六UF+M!
!
!
!
!
!
!
!
C)P2!
9(@:8)(!
8$(L#",67$()$(EU没有这样的星期日子UF+M!
!
!
!
!
!
M!
!
!
!
M!
!
MM!
#"!
!
图,$,!
CR;4BY分支语句示例的运行结果示例,$,解释如下%在此主要解释CR;4BY流程控制语句#语句中所涉及的对象*类型#及其关系'结构'模式'架构则将在后续章节中深入讨论&)%+&代码!
:34,#;34,#(V>/5/5#并赋值[$%#&代码!
CR;4BY%;34,#(V>/5&"表示将;34,#(V>/5对象作为切换判断$%,&代码!
BAC/8),5/4534Y;C'7934/34%`星期天`&(-"表示#如果上述;34,#(V>/5对象的值等于8这种情形#那么将执行语句块!
,5/4534Y;C'7934/34%`星期天`&(-"$其他几个BAC/语句是类似的#无须赘述$%1&代码!
-/ZA.
4),5/4534Y;C'7934/34%`没有这样的星期日子`&(-"表示如果前面所有条件都不满足%即;34,#(V>/5对象的值不是8#+#1#T这些情形&#那么就属于-/ZA.
4这一默认情形#将执行语句块!
,5/4534Y;C'7934/34%`没有这样的星期日子`&(-"$%2&示例中;34,#(V>/5赋值#%即BAC/#这一情形&#所以执行语句块!
,5/4534Y;C'7934/34%`星期二`&(-"#因为4Y;C'7934/34是指自定义的*5H"R;4BY793459.
.
/5类型从'()*内置的"HC4/V'L/>'K^B'793459.
.
/5类型继承而来的内置方法#该方法此时返回`星期二`字符串#所以如图,$,所示$%T&CR;4BY流程控制语句有可能实现任意想要的分支流程控制$思考)CR;4BY分支语句与前述;Z/.
C/分支语句的异同$&"循环语句(.
1),+示例,$1是RY;.
/循环语句的一个实例%该示例对应)P""解决方案中的)P""*793459.
.
C*"AVD.
/C**5HLY;.
/O99D'BC文件&$运行)P""解决方案#浏览器地址栏中输入Y44D)**.
9BA.
Y9C4)#++,%**5HLY;.
/O99D#运行该示例后的界面如图,$1所示$示例.
"0!
循环语句)RY;.
/$01+6799)1(#7$",Y)$)8#1+$2*)"321)45&&,67$(8799)8"!
#!
!
!
:!
!
3!
.
9#1192"";8'-L#9)Z77367$(8799)8@67$(8799)8!
!
:!
!
!
!
!
!
!
3!
.
9#167$()$(A)"!
9(B$C)DEF!
!
!
!
:!
!
!
!
!
!
Z#"([&(8#$%\(8'Z#"(H$)>Z#"([&(8#$%\EF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期天UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期一UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期二UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期三UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期四UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期五UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期六UF+!
!
!
!
!
!
&(8#$%"(8#$%L#9)E#$(NK;)*3[NF!
!
!
!
!
!
:8#$%'K^B'793459.
.
/5类型继承而来的内置方法#该方法此时返回上述C45;3@W95I.
.
L//EPAH字符串对象的值#如图,$1所示$%%&可见#RY;.
/流程控制语句有可能实现任意想要的循环流程控制$思考)RY;.
/循环语句与后述-9RY;.
/循环语句'Z95循环语句'Z95/ABY循环语句的异同$2"循环语句(34.
1),+示例,$2是-91RY;.
/1循环语句的一个实例%该示例对应)P""解决方案中的)P""*793459.
.
C*"AVD.
/C**5HP9LY;.
/O99D'BC文件&$运行)P""解决方案#在浏览器地址栏中输入Y44D)**.
9BA.
Y9C4)#++,%**5HP9LY;.
/O99D#运行该示例后的界面如图,$2所示$示例.
"1!
循环语句)-91RY;.
/1$01+6799)1(#7$",Y)$)8#1+$2*)"321)45&&,67$(8799)8":!
!
3!
.
9#1192"";8'57-L#9)Z77367$(8799)8@67$(8799)8!
!
:!
!
!
!
#$!
!
!
!
!
!
3!
.
9#167$()$(A)"!
9(B$C)DEF!
!
!
!
:!
!
!
!
!
!
Z#"([&(8#$%\(8'Z#"(H$)>Z#"([&(8#$%\EF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期天UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期一UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期二UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期三UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期四UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期五UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期六UF+!
!
!
!
!
!
&(8#$%"(8#$%L#9)E#$(NK;)*3[NF+!
!
!
!
!
!
8)(!
8$(L#",67$()$(E"(8#$%Z#"([&(8#$%\EF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期天UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期一UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期二UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期三UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期四UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期五UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期六UF+!
!
!
!
!
!
&(8#$%"(8#$%Z#"([&(8#$%\EF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期天UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期一UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期二UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期三UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期四UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期五UF+!
!
!
!
!
!
(8'Z#"(,]CCEU星期六UF+!
!
!
!
!
!
&(8#$%"(8#$%=/B4类型为根继承扩展而来#就如家族谱系的树型继承扩展#意味着所有类型都具有"HC4/V'F>=/B4类型的基本功能#并扩展$此外#从是否由!
"HC4/V'F>=/B4,"HC4/V'!
A.
/*HD/"方式继承扩展而来的视角#各种名称的类型又可更宏观地划分为拷贝类型'引用类型#详见,'+8'+节$%,&类型以名称为基本分类#各种名称的类型#从功能的视角又可更宏观地划分为类%类'结构'枚举'委托'特性2种类型的统称&'接口$同时#还可从各种视角分为C4A4;B类型与非C4A4;B类型'抽象类型与具体类型'可继承类型与不可继承类型'各种可访问性的类型#等等#详见,'+8'+节%,'+8'%节$%1&类型以名称为基本分类#各种名称的类型#从粒度的视角又可更宏观地划分为基础类型'复合类型$基础类型提供基本的功能%数值'字符'布尔值等&#复合类型由多种基础类型复合而成#以提供更复杂的功能#详见,'++节$%2&类型及其对象#都将占用一定的存储空间#对于7!
语言&'()*平台的应用软件开发来说#它们占用多少存储空间#占用的是哪部分存储空间#都是由'()*平台内部实现的#软件开发人员一般无须控制#只需作些了解#例如#将在,'++节了解一些基础类型及其对象的存储空间$!
对象类型)类'结构'枚举'委托'特性'接口.
'/4'/!
类)继承扩展于56789:根的属性与方法统一体!
!
类型以名称为基本分类#各种名称的类型#从功能的视角又可更宏观地划分为类"#(%类又是类'结构'枚举'委托'特性五种类型的统称&'接口$其中#类是最基本的类型#所以在此从类开始理解类型$示例,$%是类类型的一个代码实例%该示例对应)P""解决方案中的)P""*793459.
.
C*"AVD.
/C**5H7.
ACC*HD/'BC文件&$运行)P""解决方案#在浏览器地址栏中输入Y44D)**.
9BA.
Y9C4)#++,%**5H7.
ACC*HD/#运行该示例后的界面如图,$%所示$示例.
";!
类类型#类是属性与方法的统一体$01+6799)1(#7$",Y)$)8#1+$2*)"321)45&&,67$(8799)8":!
!
3!
.
9#1192"";8'692"";'3)67$(8799)8@67$(8799)8!
!
:!
!
!
!
3!
.
9#167$()$(A)"!
9(B$C)DEF!
!
!
!
:!
#)!
!
!
!
!
!
!
!
;8'692""(8'692""H$)>;8'692""EF+!
!
!
!
!
!
028(8'692""b.
c)1(EF+!
!
!
!
!
!
b.
c)1((8'b.
c)1(KH$)>b.
c)1(EF+!
!
!
!
!
!
;8'692""(8'I873)8('H$)>;8'692""EF+!
!
!
!
!
!
8)(!
8$(L#",67$()$(E(8'692""<87*`28)'-78C,Y)(;'3)EF,;7&(8#$%EFOU+UO(8'692""<87*5'$2*#1)'-78C,Y)(;'3)EF,;7&(8#$%EFOU+UF+!
!
!
!
M!
!
!
M!
!
!
!
#$()8$29192"";8'692""!
!
:!
!
!
!
#$()8$29&(8#$%BCM!
!
!
!
#$()8$29&(8#$%G2*);)*3M!
!
!
!
#$()8$29&(8#$%G2*)!
!
!
!
:!
!
!
!
!
!
:PE029!
),Z)$%(L[HdF:G2*);)*3H029!
)+M9"):G2*);)*3HU不允许超过d个字符U+M!
!
!
!
!
!
M8)(!
8$G2*);)*3+M!
!
!
!
M!
!
!
!
#$()8$29&(8#$%(8'I873)8(M!
!
!
!
#$()8$2907#C;8'/)(L7C-#(L7!
(A)(!
8$`29!
)EF!
!
!
!
:!
!
!
!
!
!
(L#",(8'I873)8('HU方法操作(8'I873)8('属性U+!
!
!
!
!
!
8)(!
8$+!
!
!
!
M!
!
!
!
#$()8$29&(8#$%;8'/)(L7C-#(LA)(!
8$`29!
)E&(8#$%"(8#$%<78*29I282*)()8aB$(NK#$(NK<78*29I282*)()8F!
!
!
!
:!
!
!
!
!
!
8)(!
8$E"(8#$%<78*29I282*)()8O#$(NK<78*29I282*)()8,;7&(8#$%EFF+!
!
!
!
M!
!
!
!
#$()8$29;8'692""EF!
!
!
!
:!
!
!
!
!
!
(L#",G2*);)*3HU请输入姓名U+

DMIT$10.9/月,日本VPS/三网直连/1核1.5G内存/20GB存储/1Gbps端口

优惠码年付一次性5折优惠码:TYO-Lite-Open-Beta-1y-50OFF永久8折优惠码:TYO-Lite-Open-Beta-Recur-20OFF日本vpsCPU内存SSD流量带宽价格购买1核1.5G20 GB4 TB1Gbps$10.9/月购买2核2 G40 GB6 TB1Gbps$16.9/月购买2核4 G60 GB8 TB1Gbps$21.9/月购买4核4 G80 GB12 TB...

DogYun27.5元/月香港/韩国/日本/美国云服务器,弹性云主机

DogYun怎么样?DogYun是一家2019年成立的国人主机商,称为狗云,提供VPS及独立服务器租用,其中VPS分为经典云和动态云(支持小时计费及随时可删除),DogYun云服务器基于Kernel-based Virtual Machine(Kvm)硬件的完全虚拟化架构,您可以在弹性云中,随时调整CPU,内存,硬盘,网络,IPv4路线(如果该数据中心接入了多条路线)等。DogYun弹性云服务器优...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

空间导航自定义名称为你推荐
三星iphonephp计划任务windows系统下如何设置PHP定时任务波音737起飞爆胎为什么很少见到飞机轮胎爆胎?360公司迁至天津360公司前身是中国吗?现总裁是谁?www.topit.mehttp://www.topit.me/ 中自己上传的照片如何删除pintang目前世界上最稀有、最珍贵的钱币是什么?即时通平台有好的放单平台吗?什么是通配符什么是介母灌水机什么是论坛灌水机?在哪里可以下载到呢?美国独立美国独立战争
vps侦探 域名解析文件 仿牌空间 bbr inmotionhosting 老左博客 国外空间服务商 wdcp 建站代码 网通代理服务器 骨干网络 中国电信测速112 架设服务器 微信收钱 ntfs格式分区 中国电信测网速 宏讯 空间登入 服务器维护 华为k3 更多