---------------------- 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/