八.面向对象编程---学习笔记

.面向对象编程的含义

  1.对象的含义

对象(类的实例)

变量

变量类型

类的实例化

声明变量

指定字段的初始值

变量赋值

  1).属性和字段

        字段:存储对象的状态,可以直接访问

        属性:存储对象的状态,但不提供对数据的直接访问

            1>.属性具有读写访问权限和可访问性两种权限控制

  2).方法:对象中的函数

2.一切皆对象

3.对象的生命周期

   对象的生命周期分为三个阶段:

        构造阶段:对象最初进行实例化的时期,由构造函数完成

        正在使用:

        析构阶段:删除对象时,需要执行一些清理工作。由析构函数完成

 1).构造函数

      对象的初始化过程是自动完成的,但有时需要执行一些额外工作。如给对象中的数据提供初始值。构造函数即用于此

      1>.所有类的定义至少包含一个构造函数

      2>.默认构造函数:没有参数的构造函数,且与类同名;带参数的叫非默认构造函数

      3>.C#中用new关键字调用构造函数

 2).析构函数

      .Net Framework默认情况下无需提供析构函数的代码,由默认的析构函数自动执行操作。但删除对象实例前

4.静态和实例类成员

.OOP技术

1.接口

   1).接口是把公共实例方法和属性组合起来,以封装特定功能的一个集合

   2).接口不能单独存在,必须被类实现

   3).接口不能实例化

   4).接口不能包含实现其成员的任何代码,只能定义成员本身。实现过程必须在实现接口的类中完成

   5).接口: == m:n

 6).IDisposable接口的用法

2.继承(派生)

  1).C#中的对象仅能直接派生于一个基类,即类只能有一个父类。但父类又可以是另外一个类的子类

  2).父类:子类 == 1n

 3).可访问性:子类可以访问父类的public和protected成员,不能访问provite成员;外不类只能访问public类成员

  4).基类的成员可以是虚拟的,子类提供其虚拟成员的实现代码(重写)

  5).基类可以是抽象类。抽象类不能直接实例化,必须被继承才能使用

3.多态性

    子类和父 类在属性和方法上有一定的重叠,可以用相同的语法处理从同一个基类实例化的对象。具体方法如:父类Animal有一个Eatfood()方法,则子类CowChickin调用Eatfood()方法的方式都一一样的,即:子类实例(变量).Eatfod();

    1).可以把子类类型的变量赋值给基类的变量,父类可以用这个变量调用子类的方法。反之则不可

         如:Animal myAnimal=myCow;

                 myAnimal.Eatfood()

    3).可以把基类变量强制转换为子类类型,即可实现父类变量调用子类方法

          如:CowmyNewCow=(Cow)myAnimal;

                  myNewCow.Moo();

    4).接口的多态性:

              建立接口类型的变量,用支持这个接口的多个对象上,直接使用这个变量访问接口提供的方法和属性。如定义一个接口IConsume,将Cow,ChickenVegtable的变量赋值给IConsume接口的变量consumeInterface,然后用consumeInterface调用定义在IConsume中的Eatfood()方法。不过这三个类需要提供Eatfood的实现代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值