8.1 什么是面向对象编程
    1.什么是面向对象编程
    OOP技术,常常要使用许多代码模块,每个模块都提供特定的功能,每个模块都是孤立的,甚至与其他模块完全独立。
    OOP技术以结构、数据的含义以及数据之间的交互操作为基础。
    对象类似与结构类型,包含变量成员和函数类型。
    它所包含的变量组成了存储在对象中的数据,其中包含的函数可以访问对象的功能。
    C#中的对象是从类型中创建的。对象的类型在OOP中有一个特殊的名称:类。
    可以使用类的定义实例化对象,这表示创建该类的一个实例。“类的实例”和对象表示相同的含义。
   
    2.属性和字段
    属性和字段可以访问对象中包含的数据,这个对象数据可以用于区分不同的对象,因为同一个类的不同对象在属性和字段中存储了不同的值
    包含在对象中的不同的数据统称为对象的状态。
    在访问状态时最好提供属性,而不是字段。
    常见的情况是把字段设置为私有,通过公共属性访问它们。
    私有字段和属性可以看作是拥有它们的对象的局部成员,而公共字段和属性的作用域也包括对象外部的代码。

    3.方法
    方法拥有访问对象的功能。
   
    4.对象的生命周期
    构造阶段:对象最初进行实例化的时期,这个初始化过程称为构造阶段,由构造函数完成。
    例如,需要初始化对象存储的数据。
    析构阶段:在删除一个对象时,常常需要执行一些清理工作,由析构函数完成。

    5.静态和实例类成员
    静态成员可以在类的实例之间共享,所依可以将它们看作是类的全区对象。
    静态属性和静态字段可以访问独立于任何对象实例的数据,静态方法可以执行与对象类型相关、但与对象实例无关的命令。
    在使用静态成员时,不需要实例化对象。
    静态类
    静态类只能包含静态成员,不需要构造函数的定义,不能实例化。

   
8.2 OOP技术
    1.接口
    接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦定义了接口,就可以在类中实现它。
    接口不能实例化,不能包含实现其成员的任何代码,而只能定义成员本身。实现过程必须在实现接口的类中实现。
    一个类可以支持多个接口,多个类可以支持相同的接口。
   
    2.using
    using关键字可以在代码块中初始化使用重要资源的对象,Dispose()方法会在这个代码块的末尾自动调用。
    <ClassName> <VariableName> = new <ClassName>()
    ……
    using (<VariableName>)
    {

    }
    或
    using (<ClassName> <VariableName> = new <ClassName>())
    {

    }

    3.继承
    在OOP中,被继承(派生)的类称为父类(基类)。注意C#中的对象仅能直接派生于一个基类,当然基类也可以有自己的基类。
    在继承一个基类时,派生类不能访问基类的私有成员,但可以访问其公共成员。
    不过,派生类和外部的代码都可以访问公共成员。
    只有派生类才能访问protected成员,对于外部代码来说,这个可访问性与私有成员一样,不能访问。
    基类的成员可以是虚拟的,就是说成员可以由继承它的类重写。派生类可以提供成员的其他执行代码。这种执行代码不会删除原来的代码,仍能在类中访问原来的代码,但外部代码不能访问它们。
    基类还可以定义为抽象类。抽象类不能直接实例化。要使用抽象类,必须继承这个类,抽象类可以有抽象成员,这些成员在基类中没有执行代码,这些执行代码必须在派生类中提供。

    4.多态性
    可以把某个类型的变量赋予其派生类型的变量,如:
    Cow myCow =new Cow();
    Chicken myChicken = new Chicken();
    Animal myAnimal = myCow;
    不需要进行强制类型转换,就可以通过这个变量调用基类的方法:
    myAnimal.EatFood();
    结果是调用派生类中的EatFood()执行代码。
   
    还可以把基本类型的变量转换为派生类变量,调用派生类的方法,如:
    Cow myNewCow = (Cow)myAnimal;
    myNewCow.Moo();
    注意不是只有共享同一个父类的类才能利用多态性。只要子类和孙子类在继承层次结构中有一个相同的类,它们就可以用相同的方式利用多态性。

    5.对象之间的关系
    包含关系;一个类包含另一个类。包含类可以控制对被包含类的成员的访问,甚至在使用被包含类的成员前进行其他处理。
    集合关系:一个类用作另一个类的多个实例的容器。集合有其他功能。包括索引、排序、重新设置大小等。


   

8.3 Windows应用程序中的OOP

posted on 2008-01-24 22:54  菲奥内  阅读(223)  评论(0)    收藏  举报