- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实训 C#面向对象程序设计技术及应用
3.7.1 实训类型
型, 学时
实训目的
实训PC机,indows XP / 2003操作系统Visual Studio 2005(或2008)实训知识要点aLoanCalculator.SetLoanAmount(20000.0M)
aLoanCalculator.SetYears(12)
aLoanCalculator.SetAnnualInterestRate(7.0F)
aLoanCalculator.loanAmount = 20000.0M
aLoanCalculator.months = 12
aLoanCalculator.annualInterestRate = 7F
则在编译程序时,会发生编译错误,程序无法访问private字段loanAmount、months和annualInterestRate。如果将字段loanAmount、months和annualInterestRate的访问修饰符改为public,则程序运行不会发生错误。
如果将该Main方法放在LoanCalculator类中,则不会发生编译错误,可以访问private字段loanAmount、months和annualInterestRate。
三、属性
使用访问方法是一种不错的技术,几种面向对象语言(包括C++和Java)都使用这种技术。但是C#提供了一种更为丰富的机制:属性。属性具有访问方法一样的能力,而且在客户端看起来像字段。
属性是一种用于访问对象或类的特性的成员。属性的示例包括贷款数量、窗口的标题、客户的名称等。属性是字段的自然扩展,两者都是具有关联类型的命名成员,而且访问字段和属性的语法是相同的。然而,与字段不同,属性不表示存储位置。相反,属性有访问器,这些访问器指定在它们的值被读取或写入时需执行的语句。因此属性提供了一种机制,它把读取和写入对象的某些特性与一些操作关联起来;甚至,它们还可以对此类特性进行计算。属性实际上是方法,但对于类的用户看起来像字段。
C#中的属性更充分地体现了对象的封装性,不直接操作类的数据内容,而是通过 访问器进行访问 ,它借助于get和set对属性的值进行读写,这在C++中是需要程序员手工完成的一项工作。
● 属性的声明
● 属性的访问
using System.Windows.Forms;
public class Test
{
static boolean b;
int i;
public static void main(String[] args)
{
Test t = new Test();
MessageBox.Show( String.Format(b = {0}, i = {1}, b, t.i));
}
}
这里b和i都被自动初始化为默认值。
(三)显式初始化字段
字段声明可以包含变量初始值设定项,以显式初始化字段。对于静态字段,变量初始值设定项对应于在类初始化期间执行的赋值语句。对于实例字段,变量初始值设定项对应于创建类的实例时执行的赋值语句。示例如下:
using System;
using System.Windows.Forms;
public class Testinifield {
static double x = Math.Sqrt(2.0);
private int i = 100;
private String s = Hello;
public static void Main(string[] args){
Testinifield t = new Testinifield();
MessageBox.Show(String.Format(
x = {0}, i = {1}, s = {2}, x, t.i, t.s), 输出结果);
}
}
(四)实例构造函数声明
在类中声明实例构造函数时必须指定标识符和实例构造函数体且标识符必须命名为声明实例构造函数的类名。其格式为:
类名称(可选形参表){ 块 }
实例构造函数是与类同名的特殊方法,实例构造函数只能由对象创建表达式调用,它们永远不能被直接调用。当我们在声明语句或赋值语句中使用对象创建表达式,执行该语句时,调用指定类的实例构造函数,将你提供的参数值(如果有的话)传递给实例构造函数对应的参数,执行构造函数,然后返回。
五、实例构造函数重载
类定义中含有两个或两个以上其参数个数或类型或种类不同的实例构造函数时,称为实例构造函数重载。实例构造函数实际上是对对象进行实例化时调用的方法。假设希望创建一个可以以多
文档评论(0)