面向对象概述:

要学习好面向对象,我们应该从三个问题入手:

1、什么是面向对象? 2、为什么要面向对象? 3、该怎么面向对象?

 

  面向对象,首先要有一个对象,那么对象是什么呢?

  对象的定义是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

因此面向对象这个对象,指的是客体。所谓客体是指客观存在的对象实体和主观抽象的概念。(摘自@赵学智《什么是对象?为什么要面向对象?该怎么面向对象》)

  由此可见,对象就是一个客体,很多人认为类就是一个对象,但准确来说,对象是以类为模板创建出来的,“对象”与“类的实例”是对应的。像我们平常在编程时经常会new一个对象出来,这个方法就是将抽象的类具体化为一个对象,对象是灵活的,可以被自由定义的。

  创建对象是简化编程方法的必需品,所以面向对象是编程的一个重要思想。

  要理解面向对象,就要从结构性编程入手——功能分解法。即将一个大的问题分解为几个小的问题,再分解为更细小的问题,直到得到的问题可以用一个函数来实现为止

  eg.举一个简单的例子:计算出1999年5月10日到2006年3月8日期间一共有多少天?

  首先,定义一个结构体类型:

1 //封装日期信息
2 public struct MyDate
3 {
4   public int Year;  //定义年
5   public int Month;  //定义月
6   public int Day;  //定义日
7 }

  然后,将算法写到一个新的函数中:

1 static int TwoDate(MyDate begin,MyDate end)
2 {
3   ...//此处填写计算时间的方法,省略
4 }

 最后,使用函数进行调用:

 1 MyDate d1,d2;  //定义起始和结束日期
 2 d1.Year = 1999;
 3 d1.Month = 5;
 4 d1.Day =10;
 5 
 6 d2.Year = 2006;
 7 d2.Month = 3;
 8 d2.Day =8;
 9 
10 //计算结果
11 int days = TwoDate(d1,d2);

  面向对象也与此方法雷同,不同的地方在于以下几点:

  1、所有的函数都放在了一个类中,成为某个类的成员。

  2、外界对象不能直接调用类的成员函数,必须先创建一个对象,再通过对象来调用这些函数。

  3、函数的声明分为了public和private两种,只有public可以被外界调用,确保了私有信息的可访问性限制。

  所以,采用面向对象技术开发可以达到较高的开发效率,与较低的维护成本,系统的可扩展性也更好。

  那么,该如何用面向对象解决问题呢?以下几节将会详细讲述。

目录:(暂时修订,不断更新……)

一:面向对象的四大基本特性

1、封装:2、抽象:3、继承:4、多态:

二:方法的理解和应用

类的构造函数;

深入理解值类型、引用类型;

类成员的访问权限;

子类、父类;

命名空间和类库;

方法重载、隐藏与虚方法(理解即可);

抽象基类与接口;

委托;

三:事件——winform的简单使用