100162754.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 334 行 · 第 1/5 页

HTM
334
字号


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
	
        3.2  类成员
</title></head>
<body>
    <div class="area">

        

        <div class="col1">
            <div class="lineBlue">
            </div>
            <!-- title -->
            <div class="arcTitle">
                <h1>
                    <a href="../16">
                        C#高级编程(第3版)【全文连载】
                    </a>
                </h1>
                <div style="text-align: center; font-size: 15px">
                    <a href="100162754.htm">
                        3.2  类成员
                    </a>
                </div>
                <div style="text-align: center; font-size: 15px">
                    <a class="url" href="../../default.htm">http://book.csdn.net/</a>
                    2006-8-17 16:57:00
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100162754.htm'><font color='red'>3.2  类成员</font></a></h1>
                        <div id="divRelateNode" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100162751.htm'>2.14  C#编程规则</a></div><div style='float:right;width:49%'>·<a href='100162752.htm'>2.15  小结</a></div><div style='float:left;width:49%'>·<a href='100162753.htm'>3.1  类和结构</a></div><div style='float:right;width:49%'>·<a href='100162755.htm'>3.3  结构</a></div><div style='float:left;width:49%'>·<a href='100162756.htm'>3.4  Object类</a></div><div style='float:right;width:49%'>·<a href='100162757.htm'>3.5  小结</a></div></div>
                    </div>
                </div>
                </div>
            <!-- main -->
            <div id="main">
                <div id="text"> <link href="css.css" rel="stylesheet" type="text/css" /><p class="MsoNormal"><span><span style="FONT-FAMILY: 宋体">类中的数据和函数称为类的成员。</span><span lang="EN-US">Microsoft</span></span><span style="FONT-FAMILY: 宋体">的正式术语对数据成员和函数成员进行了区分。除了这些成员外,类还可以包含嵌套的类型</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">例如其他类</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。类中的所有成员都可以声明为</span><span lang="EN-US">public(</span><span style="FONT-FAMILY: 宋体">此时可以在类的外部直接访问它们</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">private(</span><span style="FONT-FAMILY: 宋体">此时,它们只能由类中的其他代码来访问</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。与</span><span lang="EN-US">VB</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">C++</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Java</span><span style="FONT-FAMILY: 宋体">一样,</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">在这个方面还有变化,例如</span><span lang="EN-US">protected(</span><span style="FONT-FAMILY: 宋体">表示成员仅能由该成员所在的类及其派生类访问</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">,第</span><span lang="EN-US">4</span><span style="FONT-FAMILY: 宋体">章将详细解释各种访问级别。</span></p>
<h3 style="MARGIN: 8.15pt 0cm"><span lang="EN-US">3.2.1</span><span lang="EN-US"> &nbsp;</span><span style="FONT-FAMILY: 黑体">数据成员</span></h3>
<p class="MsoNormal"><span><span style="FONT-FAMILY: 宋体">数据成员包含了类的数据<span style="LETTER-SPACING: -0.5pt">&mdash;&mdash;</span></span><span style="LETTER-SPACING: -0.5pt"> </span></span><span style="FONT-FAMILY: 宋体">字段、常量和事件。数据成员可以是静态数据</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">与整个类相关</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">或实例数据</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">类的每个实例都有它自己的数据副本</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。通常,对于面向对象的语言,类成员总是实例成员,除非用</span><span lang="EN-US">static</span><span style="FONT-FAMILY: 宋体">进行了显式的声明。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">字段是与类相关的变量。在前面的例子中已经使用了</span><span lang="EN-US">PhoneCustomer</span><span style="FONT-FAMILY: 宋体">类中的字段:</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">一旦实例化</span><span lang="EN-US">PhoneCustomer</span><span style="FONT-FAMILY: 宋体">对象后,就可以使用语法</span><span lang="EN-US">Object.FieldName</span><span style="FONT-FAMILY: 宋体">来访问这些字段:</span></p>
<p class="2" style="MARGIN: 8.15pt 0cm 0pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">PhoneCustomer Customer1 = new PhoneCustomer();</span></p>
<p class="2" style="MARGIN: 0cm 0cm 8.15pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">Customer1.FirstName = &quot;Simon&quot;;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">常量与类的关联方式同变量与类的关联方式一样。使用</span><span lang="EN-US">const</span><span style="FONT-FAMILY: 宋体">关键字来声明常量。如果它们声明</span><span style="FONT-FAMILY: 宋体">为</span><span lang="EN-US">public</span><span style="FONT-FAMILY: 宋体">,就可以在类的外部访问。</span></p>
<p class="2" style="MARGIN: 8.15pt 0cm 0pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">class PhoneCustomer</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public const string DayOfSendingBill = &quot;Monday&quot;;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public int CustomerID;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public string FirstName;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; public string LastName;</span></p>
<p class="2" style="MARGIN: 0cm 0cm 8.15pt 21.45pt; TEXT-INDENT: 18.45pt"><span lang="EN-US">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">事件是类的成员,它可以让对象将某些特定行为</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">例如改变类的字段或属性,或者进行了某种形式的用户交互操作</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">发生的时间告知调用程序。客户可以包含一些称为事件处理程序的代码来响应该事件。第</span><span lang="EN-US">6</span><span style="FONT-FAMILY: 宋体">章将详细介绍事件。</span></p>
<h3 style="MARGIN: 8.15pt 0cm"><span lang="EN-US">3.2.2</span><span lang="EN-US"> &nbsp;</span><span style="FONT-FAMILY: 黑体">函数成员</span></h3>
<p class="MsoNormal"><span><span style="FONT-FAMILY: 宋体">函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和终结器</span><span lang="EN-US">(finalizor)</span></span><span style="FONT-FAMILY: 宋体">、运算符以及索引器。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 黑体">方法</span><span style="FONT-FAMILY: 宋体">是与某个特定类相关的函数,它们可以是实例方法,也可以是静态方法。实例方法处理类的特定实例,静态方法提供了更一般的功能,不需要实例化一个类</span><span lang="EN-US"> (</span><span style="FONT-FAMILY: 宋体">例如前面的</span><span lang="EN-US">Console.WriteLine()</span><span style="FONT-FAMILY: 宋体">方法</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。下一节介绍方法。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 黑体">属性</span><span style="FONT-FAMILY: 宋体">是与在客户机上用与访问类的公共字段类似的方式访问的函数。</span><span lang="EN-US">C#</span><span style="FONT-FAMILY: 宋体">为读写类上的属性提供了专用语法,所以不必使用那些名称中嵌有</span><span lang="EN-US">Get</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">Set</span><span style="FONT-FAMILY: 宋体">的偷工减料的方法。因为属性的这种语法不同于一般函数的语法,在客户代码中,虚拟的对象被当做实际的东西。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 黑体">构造函数</span><span style="FONT-FAMILY: 宋体">是在实例化对象时自动调用的函数。它们必须与所属的类同名,且不能有返回类型。构造函数可用于在实例化对象时设置字段的值。</span></p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?