面向对象概述:

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

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

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

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

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

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

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

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

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

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

 //封装日期信息
public struct MyDate
{
public int Year; //定义年
public int Month; //定义月
public int Day; //定义日
}

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

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

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

 MyDate d1,d2;  //定义起始和结束日期
d1.Year = ;
d1.Month = ;
d1.Day =; d2.Year = ;
d2.Month = ;
d2.Day =; //计算结果
int days = TwoDate(d1,d2);

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

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

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

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

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

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

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

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

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

二:方法的理解和应用

类的构造函数;

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

类成员的访问权限;

子类、父类;

命名空间和类库;

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

抽象基类与接口;

委托;

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

1、面向对象以及winform的简单运用(开篇)的更多相关文章

  1. 8、面向对象以及winform的简单运用(事件与winform入门)

    事件 Visual studio中对可视化窗体控件的事件处理机理: 所有的.NET Framework可视化窗体控件的预定义事件,都会某一对应的“事件名+Handler”委托类型的变量.与此事件相关的 ...

  2. 3、面向对象以及winform的简单运用(类的初步认识)

    什么是类? “类”是面向对象编程的基本单元,一个类一般包含两种成员:字段和方法——即变量和函数. 例: //字段或变量的定义 public int age; //方法或函数的定义 public int ...

  3. 10、面向对象以及winform的简单运用(isMdicontainer的设置、timer控件进行倒计时的制作)

    IsMdicontainer的设置 这是对于整个窗体的设置,将一个窗体的IsMdicontainer设置为true之后,再打开新窗体便可以让新窗体被父容器包括在内. 操作方法: 1)先建立一个子窗体C ...

  4. 2、面向对象以及winform的简单运用(面向对象的四大基本特性)

    面向对象的四大基本特性 面向对象的核心概念就是封装.抽象.继承.多态这四大基本特性,在这里先解释一下它们的定义: 封装:是一种隐藏信息的特性.找到变化并且把它封装起来,你就可以在不影响其它部分的情况下 ...

  5. 9、面向对象以及winform的简单运用(输入输出流、图像的上传和读取)

    一.输入输出流 1.概念: 输入输出流主要用于保存.读取文件,其内容保存在内存中. 2.使用方法: using System.IO; //System.IO 命名空间包含允许读写文件和数据流的类型以及 ...

  6. 7、面向对象以及winform的简单运用(委托)

    委托 1.概念: 委托可以看成是一个函数的“容器”,将某一具体的函数“装入”后,就可以把它当成函数一样使用.委托变量可看成是一种类型安全的函数指针,它只能接收符合其要求的函数地址. 2.定义方法:de ...

  7. 6、面向对象以及winform的简单运用(抽象基类与接口)

    抽象类与抽象方法 1.书写规范: 在类前面加上abstract关键字,就成为了抽象类:在一个方法前面加上abstract关键字,就成为了抽象方法(抽象方法不能有实现方法,直接在后面加分号) 例: ab ...

  8. 5、面向对象以及winform的简单运用(方法重载、隐藏、重写与虚方法)

    方法的重载: 规定一个方法可以具有不同的实现,但方法的名称是相同的.如: //同样是Man这个方法 public int Man(int age,int name) { …… } //重载 publi ...

  9. 4、面向对象以及winform的简单运用(继承与多态、命名空间与类库)

    继承 继承既子类与父类之间的关系.子类是父类的一种特例,子类拥有父类所没有的功能. 子类与父类之间的相互赋值——例: Parent p; Son c = new Son(); p = c; //正确, ...

随机推荐

  1. (二)我的Makefile学习冲动&&编译过程概述

    前言 一 年轻的冲动 二 学习曲线 1 Makefile基本语法 2 bash基础 3 world 三 编译过程概述 1 主机预装工具 2 编译host工具 3 编译交叉工具链 4 编译内核模块 5 ...

  2. MySQL在创建相同表结构时as和like 使用的区别

    1.MySQL的复制相同表结构方法: 1)create table table_name as select * from table1 where 1=2 (或者limit  0): 2) crea ...

  3. NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.

    题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...

  4. POJ 3304 Segments --枚举,几何

    题意: 给n条线段,问有没有一条直线,是每条线段到这条直线上的投影有一个公共点. 解法: 有公共点说明有一条这条直线的垂线过所有线段,要找一条直线过所有线段,等价于从所有线段中任选两端点形成的直线存在 ...

  5. POJ 1847 Tram --set实现最短路SPFA

    题意很好懂,但是不好下手.这里可以把每个点编个号(1-25),看做一个点,然后能够到达即为其两个点的编号之间有边,形成一幅图,然后求最短路的问题.并且pre数组记录前驱节点,print_path()方 ...

  6. Linux命令学习-date

    date命令可以用来显示和修改系统日期时间,注意不是time命令. 1.在命令行输入date显示当前时间 [root@vm4 logs]# dateSat Nov 22 00:00:02 CST 20 ...

  7. JavaScript测试工具

    大家都知道Javascript的测试比较麻烦,一般是开发使用一些浏览器的插件比如IE develop bar或是firebug来调试,而测试往往需要通过页面展示后的js错误提示来定位.那么还有其他比较 ...

  8. 判断一个值是否在数组里,可以检测数字,字符串,json对象

    Array.prototype.indexOf = function (val) {//判断数组是否存在某个值,如果存在返回该值对应的索引,否则返回-1 for (var i = 0; i < ...

  9. 10301 MySQL各个版本区别及下载

    参考:http://www.admin10000.com/document/62.html MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会 ...

  10. “PMS-基础权限管理系统”实施某谱OA系统经验总结

    “PMS-基础权限管理系统”介绍 "PMS-基础权限管理系统"是我一直想做的一个产品,融合多年开发及维护管理系统的经验,参考了很多系统,精心研制而成. 可以做为毕业设计参考,新手学 ...