您的位置:首页 > 职场人生

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

2012-03-01 16:59 225 查看
---------------------- 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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: