面向过程

面向对象

 

对象:一切皆为对象。一个人、一本书、一支笔……都是一个对象。

类(class)是既包括数据又包括作用于数据的一组操作的封装体。就是对有共同点的某类对象抽象出的模型。

  对象→(抽象)→类

  类→(实例)→对象

类一般包含:变量(成员变量)、函数(成员函数、成员方法)

类的特性:封装性、继承性、多态性和抽象性。

  封装性:

    1、不同类的变量属于各自的对象

    2、不同对象的成员变量只属于各自的对象

    3、对象中的变量需要通过各自的函数操作,比较安全

  继承性:

    子类可以从父类继承父类的成员变量和成员方法。

  多态性:

    某类不同对象在执行的时候,表现出来的形态多样性,这种现象成为多态性。

 

1、声明类

  类声明

  {

    成员变量的声明;

    成员方法的声明及实现;

  }

  [修饰符(例:public)] class 类<泛型> [:父类][:接口列表]

2、声明成员变量和成员方法

  [修饰符] 返回值类型 方法([参数列表])

  {

    语句序列;

    [return [返回值]];

  }

3、成员方法重载

  声明对象

    类   对象

  创建实例

    对象= new 类的构造方法([参数列表])

  引用对象的成员变量和调用对象方法

    对象.成员变量

    对象.成员方法([参数列表])

 

构造函数:特殊的成员函数。如果不写构造函数,系统会自动生成一个默认的构造函数。

  1、写法特殊

    无返回值,函数名只能与类名相同。

  2、执行特殊

    类在实例化的时候自动执行。构造函数是最早执行的成员函数。构造函数是用来生成对象的函数。

主要作用:对象实例化生成时,做初始化工作。

 

1.声明及调用构造方法

  public class MyDate

  {

      public MyDate(int y, int m, int d)      //声明构造方法

      {     //构造方法与类同名,构造方法返回该类的一个实例

          year = y;

          month = m;

          day = d;

      }

  }

  MyDate d = new MyDate(2009,7,18);

2.默认构造方法

  public MyDate()

 

重载:函数名相同,参数不同(个数,类型)的函数就形成了重载。

重载只与函数名、形参有关,与返回值无关。

 

this

  指对象本身。

  访问本类的成员变量和成员方法

    this.成员变量

    this.成员方法([参数列表])

  this调用当前对象的其他构造函数。public Bird(string name,string color):this(name)

 

is

  对象 is 类;

  如果成立,返回TRUE;否则返回FALSE。

 

 

partial  写在class左边,拆分类,可以继续用partial对该类进行拓展。

 

类中的方法:

         构造方法

         属性方法:取值赋值

         行为方法:运算

 

类中成员的访问权限

 

 

属性方法

         右键变量→重构→封装字段→选中“全部”……确定

 

public int R

{

         get{return R;}

         set{R = value;}    //value就是等号右边的值。{}中可以用if语句

}

  1、属性是用来为成员变量赋值和取值的。它有替代属性方法的作用。

  2、属性定义的时候,属性名后没有小括号。

  3、属性都是public

  4、属性中只能包括两部分:get,set。代码只能写在这两部分的{}中。

  5、如果属性中只有set或get,则为只写属性或只读属性;两部分都有,则为可读写属性。

 

静态

  静态成员包括:静态变量、静态属性、静态方法。

  静态成员属于类,不属于实例。

  静态变量在内存中只保存一份,而实例变量则是每个对象都保存一份。

  例:将一个学校看成一个类,那么校医属于静态成员,班主任属于实例成员。静态成员(如:校医)的改变对于实例都有影响,而实例成员(如:班主任)的改变对于其他实例成员没有影响。

 

public class MyDate

{

    private int year,month,day;          //实例成员变量

    private static int thisYear;             //静态成员变量

    static                                       //静态成员变量初始化

    {

        thisYear=2009;

    }

     public static int getThisYear()     //静态成员方法

    {

         return thisYear;                      //访问静态成员变量

     }

}

 

在C#中:

  在当前类的{}之外,静态成员,只能用类名来调用,不能用实例名来调用。而实例成员只能用实例对象来调用。

  在当前类的{}之内,静态方法中之恩个直接调用静态成员。实例方法可以调用非静态和静态成员。

 

 浅拷贝、深拷贝

  浅拷贝:只拷贝栈空间中的地址

  深拷贝:拷贝堆空间中的数据

 

继承

  1、public,protected修改的成员可以被继承到子类去。private修饰的成员,无法被子类继承。

  2、单继承:一个父类可以派生多个子类,每个子类只能有一个父类。

  3、实例化子类的时候,会先执行父类的构造函数,再执行子类的构造函数。

  4、base关键字,用来调用父类的相关成员。base.xxx()调用父类的成员方法;base(…)调用父类的构造函数。

  5、如果父类中有且只有一个带参的构造函数,则其子类必须要有带相应参数的构造函数,并且通过base()把参数传给父类。

 

 

posted on 2014-10-10 23:12  幻影K  阅读(148)  评论(0编辑  收藏  举报