第4章:编写类的无参和带参构造函数
1.
a) b) i. ii.
2.
什么是构造函数
类的构造函数是类中的一种特殊方法 特点: 它的方法名与类名相同 没有返回类型(包括void) 主要完成对象的初始化工作
无参构造函数
默认的情况下,系统将会给类分配一个无参数的构造函数,并且没有方法体.我们可以自己编写无参构造函数,在方法体中对类的属性进行赋值 示例:
public SE() {
this.ID=”000”; this.Age=20;
this.Name=”小明”; }
示例调用:
static viud Main(string[] args) {
SE engineer=new SE();
Console.WriteLine(engineer.SayHi()); Console.ReadLine();
}
SE engineer=new SE(); 实例请参照: S2A\\ Lesson04\\编写无参构造函数
3.
a) 带参构造函数
给方法设置参数可以调整方法的行为,是方法功能多样化,同样,构造函数也可以接收参数,用这些参数给属性赋值 示例:
public SE(string id,int age,string name) {
this.ID=id; this.Age=age; this.Name=name;
}
Static void Main(String[] args){
SE engineer = new SE(“112”,25,”艾边成”);//调用带参构造函数,实例化一个
员工对象
Console.WriteLine(engineer.SayHi()); Console.ReadLine();
}
带参构造函数调用时一定要传入的参数和参数列表相对应 实例请参照: S2A\\ Lesson04\\编写带参数构造函数
第4章:方法重载和实现构造函数的重载
1. 方法重载的特点
a) 方法名称相同
b) 方法参数个数不同,参数类型不同 c) 在同一个类中 2. 方法重载示例
public class Player {
public void Play(剧本){//根据剧本表演} public viod Play(歌曲){//演唱歌曲} public void Play(钢琴){//弹奏钢琴}
}
3. 构造函数的重载
示例:
public class SE {
//带参构造函数
public SE(string id,string name,int age,Gender gender) {
this.ID=id;
this.Name=name; this.Age=age; this.Gender=gender; }
//无参构造函数 public SE(){}
}
实例请参照:
S2A\\ Lesson04\\构造函数重载
第6章:理解并实现继承
1. 什么是继承
a) 移除类的冗余代码
b) 什么是继承
1> 类可以继承自另一个类.衍生的类(子类)继承父类的方法和数据成员.
2> 在有继承关系的两个类中,子类不仅具有自己独有的成员,还具有父类的成员 3> 子类继承父类,父类派生子类
实例请参照:
2.
S2A\\ Lesson06\\使用继承实现问好
base关键字和protect修饰符
base用于表示父类,可以用于访问父类的成员
如:以下为继承自Employee类的PM类中的SayHi()方法
public string SayHi() {
string message;
message =base.Name+ base.Age+ this.YearOfExperience; return message; //本处通过base关键字访问父类成员 }
实例请参照: S2A\\ Lesson06\\ base关键字访问父类成员变量
3. 在C#中被protect修饰的成员允许被其子类访问,而不允许其他非子类访问
如: public class Employee
{
protected string ID { get; set; } //该属性只能被本类与其子类访问.
}
实例请参照: S2A\\ Lesson06\\ protected关键字 4. 继承的使用
a) 继承的传递性 b) 继承的单根性
c) IS-A的应用
foreach(Employee empl in empls) {
if (empl is SE) {
Console.WriteLine(((SE)empl).SayHi()); }
if(empl is PM) {
Console.WriteLine(((PM)empl).SayHi()); }
}
实例请参照: S2A\\ Lesson06\\ isa关系
第6章:多态的概念及使用虚方法实现多态
1. 多态:指两个或多个属于不同类的对象,对同一个消息(方法调用)作出不同响应的能力 2. 多态的实现
a) 实现方法的重写,如:父类中定义SayHi()方法,用virtual关键字定义为虚方法 b) 在子类中定义子类自己的SayHi()方法,用override关键字修饰,就实现了对父类
SayHi()方法的重写
//父类Employee
public class Employee {
public virtual string SayHi() {
string message = string.Format(\大?¨?家¨°好?!ê?\ return message; }
}
public class PM:Employee {
public override string SayHi() {
string message;
message = string.Format(
\大家好,我是{0},今年{1}岁,项目管理经验{2}年.”, base.Name, base.Age, this.YearOfExperience );
return message; }
}
实例请参照:
S2A\\ Lesson06\\重写虚方法实现多态 3. 定义父类变量,用子类对象初始化父类变量.
如:
Employee ema=new SE(“210”,”Ema”,33,Gender.female,100);

