如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第六章 C#面向对象publicclassBankCustomer
{
//定义字段
privatestringm_FirstName;
privatestringm_LastName;
privatedecimalm_Balance;
//定义构造函数
publicBankCustomer(stringfn,stringln,decimalbalance)
{
this.m_FirstName=fn;
this.m_LastName=ln;
this.m_Balance=balance;
}
publicBankCustomer(stringfn,stringln):this(fn,ln,0.0M)
{
}
//定义属性
publicstringFirstName
{
get{returnthis.m_FirstName;}
}
publicstringLastName
{
get{returnthis.m_LastName;}
}
6.1 定义类publicclassPerson
{
//Field
publicstringname;
//Constructor
publicPerson()
{
name="unknown";
}
//Method
publicvoidSetName(stringnewName)
{
name=newName;
}
}VS2005中的OOP工具6.2 类的字段和属性6.2.2 访问修饰限制符
private :只允许同一个类中的成员访问
protected:继承的子类可以对基类有完全访问权
internal:允许项目或程序内部的类来访问
public:无限制,可以任意存取
protectedinternal=protected+internal6.2.3 属性
属性在内部看像方法,在外部看像字段;
字段一般用来表示类的私有特征,属性表示类的公开属性,可以为类字段提供保护,避免字段在对象不知道的情况下被更改;
读/写由get/set存取器进行;6.2.3属性
只读属性
get:获取值,不能赋值
只写属性
set:设置值6.3 类的方法6.3.2类的构造函数publicclassTaxi
{
publicTaxi()
{
Console.WriteLine("isInitializedCustomedConstructor");
}
}
6.3.3类的析构函数6.3.4静态类及静态方法publicclassAutomobile
{
publicstaticintNumberOfWheels=4;
publicstaticintSizeOfGasTank
{
get
{
return15;
}
}
publicstaticvoidDrive(){}
publicstaticeventEventTypeRunOutOfGas;
//othernon-staticfieldsandproperties...
}6.3.5重载方法6.5 类的三大特征-封装、继承、多态
6.5.2 继承
继承是通过使用派生来实现的,派生类从基类那里获得其所有非私有的成员
派生意味着类是使用基类声明的,它的数据和行为从基类继承。
在声明派生类时,在类名称后放置一个冒号,然后在冒号后指定要从中继承的类(即基类)。
例:publicClassVIPCustomer:BankCustomer{}
注意:
C#中只支持单继承,但可以实现多个接口;
如果要防止被继承,可以使用sealed关键字(密封类);
静态类是仅包含静态方法的密封类,也不能被继承。
publicclassParent
{
publicintX;
.
.
.
}publicclassAnimal{
protectedboolIsSleeping;
publicvoidSleep(){}
publicvoidEat(){}
}
如何访问基类成员?
通过使用base关键字
派生类在访问基类的时候有一定的限制,不能访问private的成员;internal的基类成员只能被同一个程序集中的派生类访问6.5.3 多态
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性
编写虚方法在派生类中使用基类成员6.5.4 抽象方法与抽象类
当创建一个类时,该类对一些方法不提供实现,但是该类的派生类必须实现这些方法,这些方法称为抽象方法。
抽象方法是可以看成是没有实现体的空方法
如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法
抽象类是用来作为基类的,不能被实例化abstractclassShapesClass
{
abstractpublicintArea();
}6.6 接口
as****16
实名认证
内容提供者
最近下载