设计模式基础

前言

    学习了一段时间的设计模式了,感觉其中有一些特别重要的基础知识,这些基本知识对具体设计模式的学习,有很大的帮助,它们渗透到了具体设计模式的学习中,所以呢,小编总结一下,希望能够有所帮助。

叙述

1、构造方法:又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new时候调用。
注:所有的类都有构造方法,如果你不编码则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效。
如下:
class Cat
 {
       private string name = ""; //声明Cat类的私有字符串变量name
       public Cat(string name)   //定义Cat类的构造方法,参数是输入一个字符串
       {
            this.name = name;   //将参数赋值给私有变量name
       }
 }
2、方法重载:提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。
注:方法重载时,两个方法必须要方法名相同,但参数类型或个数必须要有所不同,否则重载就没有意义了。
       方法重载可在不改变原方法的基础上,新增功能。
public Animal(string name)   //定义Cat类的构造方法,参数是输入一个字符串
{
      this.name = name;   //将参数赋值给私有变量name
}
 public Animal()  //将构造方法重载
{
       this.name = "无名";
}
3、虚方法
     为了使子类的实例完全接替来自父类的类成员,父类必须将该成员声明为虚拟的。这是通过在该成员的返回类型之前添加 virtual关键字来实现。
class Animal
{
         ...
         public virtual string Shout()   //注意修饰符中增加了一个virtual,它表示是虚方法,可以被子类重写。
         {
                 return"";
         }
}
4、方法重写
      子类可以选择使用override关键字,将父类实现替换为它自己的实现,这就是方法重写Override。
class Cat:Animal
{
        public override string Shout()  //增加了override,表示方法重写
       { 
               return"";
       }
}
5、抽象类&抽象方法
      C#中允许把类和方法声明为abstract,即抽象类和抽象方法。
 注:(1)抽象类不能实例化;(2)抽象方法是必须被子类重写的方法;(3)如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。
abstract class Animal   //加abstract关键字,表明是抽象类
{
        ...
        protected abstract string getShoutSound();  //在方法返回值前加abstract表明此方法是抽象方法,抽象方法没有方法体,直接在括号后加“;”
}
6、委托和事件
     委托是对函数的封装,可以当作给方法的特征指定一个名称。而事件则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知过程。
注:委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托对象用关键字delegate声明。而事件是在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。事件对象用event关键字声明。
public delegate void CatShoutEventHandler();
public event CatShoutEventHandler CatShout;

小结

              设计模式真的是一本好书,值得去细细的品味其中的知识。

 

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi-Sunshine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值