黑马程序员——C#对面向对象编程的理解

来源:互联网 发布:c语言数组遍历 编辑:程序博客网 时间:2024/06/05 09:21

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

        相信很多人在学习面向对象编程(OOP)时都是晕晕乎乎的,似懂非懂的感觉。看着书又能理解,闭上书后貌似又写不出来。面向对象编程到底是什么?为了巩固这些知识强化其印象,把它梳理一遍。首先得理解类和对象的概念,这往往是一个令面向对象的初学者感到迷惑的问题。

什么是类:

类是一个抽象的概念,现实中的时间或空间里它是不存在的,类是对一类“事物”的属性与行为的抽象。就好像人(Person)这个类,它虽然可以包含很多个体(“张三”、“李四”、“王五”“……”),但它本身不存在于现实世界上,它只是这些个体抽象的总称。

类的定义:

public class Person

{

      private string name; //属性:姓名

      private char sex; //属性:性别

      private int age; //属性:年龄

      public Person() {}

      public Person(string name, char sex, int age)

      {

              this.name = name;

              this.sex= sex;

              this.age= age;

      }

}

      public void SayHello()

      {

              Console.WriteLine("我叫{0},性别{1},年龄{2}",name,sex,age);

      }

什么是对象:

对象是类的具体的个体,它是一个实实在在存在的东西,比如,张三是类Person的一个对象,李四也是类Person的一个对象。

实例化对象:

Person zhangsan = new Person("张三", ‘男',18);//  张三这个对象

zhangsan. SayHello();//  张三的行为

 

Person lishi = new Person("李四", '女',20);//  李四这个对象

zhangsan. SayHello();//  李四的行为

 

……

可以有很多个对象;

 

面向对象三大特性:封装,继承,多态

1、封装(Encapsulation) :

所谓封装又称信息隐藏,就是将某些东西包装和隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。

万物皆对象,任何对象都具有特性和行为。我们将其特性称为成员变量,将其行为称之为成员函数,被封装的特性只能通过特定的行为去访问。

如:

private string _name;

public string Name

{

       get(return _name;)

       set{_name = value;}

}

或者

public string Name{get;set;}

访问修饰符:

public 公共的,可任意访问

private 私有的,可被本类访问

protected保护,可被本类和子类访问

internal 内部,可被本程序集内的所有类访问

 

2、继承(Inheritance)

继承是指它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通俗的说后代具有祖先的某些特点就叫继承,当然后代还可以具有自己独有的特征。

通过继承创建的新类称为“子类”或“派生类”。

被继承的类称为“基类”或“父类”。

public class A

{

       //A类所有的属性

       public string Name{get;set;} 

       public int Age{get;set;}

       public int Weight{get;set;}

       public int  Height{get;set;}

}

public class B:A  //B类继承A类

{

       public B(string name,int age,int weight,int height,char sex)

       {

                //继承A类的所有属性

                this.Name=name;

                this.Age=age;

                this.Weight=weight;

                this.Height=height;

                //捅有自己特定的属性

                this.Sex=sex;

       }

       public char Sex{get;set;}

}

 

3、多态(Polymorphic):

指两个或多个属于不同类的对象,对于同一消息(方法调用)所做出不同响应的方式。

多态的实现:

实现方法的重写,父类中定义的方法(如SayHello())用virtual关键字修饰定义为虚方法。

在字类中定义子类自己的方法(如SayHello()),用override关键字修饰实现对父类中SayHello()方法的重写。

定义父类变量,用子类对象初始化父类变量  如:A a=new B(" ", ……);

 

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/

原创粉丝点击