黑马程序员--对于面象对象的总结

来源:互联网 发布:国家网络管理局 编辑:程序博客网 时间:2024/05/19 23:13
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 面向对象编程就是把整个世界看成一系列实体的集合,所有的个体都是对象。而对象就是具有一定属性和行为的实体的集合。面向对象的三要素是:封装、 继承、 多态。

一.封装:

            封装就是事物抽象为类,把对外接口暴露,将实现和内部数据隐藏。

          1. 类:定义了数据类型的数据和行为。可以根据这些来创建类的实例化对象。类支持继承但不可以多继承。类属于引用对象。最终类可以有很多个基类(类继承基类而导致)。可以实现多个接口。类和对象本质有不同,类是对象的类型,对象是类的实例。

      (1)类的成员(组成一个类的元素):

         字段:字段是直接在类或结构中声明的任何类型的变量,是类的数据成员。

          属性:是类中可以像字段一样访问的方法,为类的字段提供保护。

            字段与属性的区别:属性可进行数据绑定;

                              属性可以通过get、set方法进行数据验证,字段不行;

                              属性可进行线程同步;

                              public string name

                                {

                                    set{lock(this){};}

                                }

                              属性可以是抽象的,字段不行;

                              属性可以以接口的形式表现;

                   例如: 定义一个people类

                     public class people
                      {
                         public int age;//年龄
                         public string name;//姓名
                         public string lag;//语言

                     }    

                                       实例化people

                       people p = new people();

                       若不用属性保护,直接写p.age = -100,显然不符合实际,因此可以在people中添加一个Age属性来控制用户输入的年龄,

                                               public class people
                      {
                         public int age;//年龄
                         public string name;//姓名
                         public string lag;//语言

                        public int Age
                      {
           
                        get {
                              if(age>0 &&age <100)
                                  {
                                      return age;
                                  }
                              else 
                                 {
                                      return 0;
                                 }
                            }
                       set {
                            this.age = value;
                         
                           }
         
                       }

                    }    

                       方法:用来执行类的操作

                                 格式:修饰符  返回类型 方法名称(参数1,参数2,....)

                                  {

                                  }

                                 类的构造函数是一种特殊的方法,当你用new命令实例化一个类的对象时,系统就会自动调用该类的构造函数,做些初始化之类的工作。他不同于其他方法的地方 
                                                    a、创建对象时构造函数自动运行,而一般方法必须有调用语句调用才能执行 
                                                     b、构造函数与类名必须相同(含大小写) 
                                                     c、构造函数不能有返回值类型

                                  例如 
                                      class A 
                                      { 
                                               public A(){ }//构造函数名与类名相同,没有返回值类型 
                                                public string B(){ ...;return "str";}//普通方法要有返回值类型,如无返回值必须写void

                                                public  C

                                                       {get;set;}//属性
 
                                       } 
                                        A aa=new A();//创建对象aa的时候会自动运行类a的构造函数A() 
                                        aa.B();//普通方法B只能遇到调用他的语句才会被执行
                     事件:  一个对象向其他对象提供有关事件发生的通知的一种方式。在C#中,事件是使用委托来定义和触发的。发送或引发事件的类称为 “发行者”(Publisher),接收或处理事件的类称为“订阅者”(Receiver)。                

                                C#中使用事件需要的步骤:
                              1.创建一个委托
                              2.将创建的委托与特定事件关联(.Net类库中的很多事件都是已经定制好的,所以他们也就有相应的一个委托,在编写关联事件处理程序--也就是当有事件发生时我们要执行的方法的时候我们需要和这个委托有相同的签名)
                              3.编写事件处理程序
                              4.利用编写的事件处理程序生成一个委托实例
                              5.把这个委托实例添加到产生事件对象的事件列表中去,这个过程又叫订阅事件

 

二.继承:

                继承:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

       通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。

      继承概念的实现方式有三类:实现继承、接口继承和可视继承。

      (1)实现继承是指使用基类的属性和方法而无需额外编码的能力;

      (2)接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

      (3)可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。

二.多态:

           多态就是同一个操作(通常是指方法,也可以是属性,事件甚至是字段),根据不同的对象能实现不同的效果。
函数重载就是一个多态的表现。


原创粉丝点击