C#2.0学习3--面向对象基本概念
来源:互联网 发布:找人帮忙开淘宝店 编辑:程序博客网 时间:2024/05/17 06:47
C#面向对象概念
一、面向对象的概念:
以接近现实的处理手法来处理项目中的设计。一个例子:
请描述一下森林中一只狮子捕食一只兔子的场景。
用结构化编程实现
用面向对象方式实现
strut Lion
{
int lId;
string name;
}
strut Rubbit{
int 1Id;
string name;
}
定义函数:
void lionRunning(Lion);
void lionCatch(Lion,Rubbit)
void lionEating(Lion,Rubbit )
void lionHappy(Lion);
void rubbitCrying(Rubbit)
void rubbitRunning(Rubbit)
bool rubbitIsDead(Rubbit);
Class Lion
{
int lIdl
string name;
public void Running(){};
public void Catch(Rubbit);
public void Eating(Rubbit);
public void Happy();
}
class Rubbit
{
int rId;
string name;
public void Running()
public void Crying()
public bool Isdead()
}
主程序:
Lion fatty;
Rubbit may;
lionRunning(fatty);
rubbitRunning(may);
lionCatch(fatty,may);
rubbitCrying(may);
lionEating(fatty,may);
if (rubbitIsDead(may))
lionHappy(fatty);
主程序
Lion fatty=new Lion();
Rubbit may = new Rubbit();
Fatty.Running();
May.Running();
Fatty.Catch(may);
May.Crying();
Fatty.Eating(may);
If (may.IsDead())
Fatty.Happy();
1.从左边的设计,我们看出代码是一系列的函数构成,有以下几点:
不直观,程序的组织性不强,函数调用时不容易确定具体调用哪一个
要传的参数太多
2.右边代码,看起来要好一些,函数的参数少,而且都被组织到类的内部,要调用函数时只要确定是哪一个对象要调用,就很容易找到,从程序调用来进右边的主程序更接近现实世界的处理方式
二、面向对象的特点
1. 封装
从上表右边看来,函数代码写在类的内部,只能被类的对象所调用,别人不可随便访问,这样可以保护你的代码,而且函数与对象相关,方便调用
2. 继承
从代码重用方面,我们可以把共性的特征,和行为抽象出来,比如,程序的需求要我们实现所有的食肉动物都能捕食食草类动物,对于上表左边程序,我们要全面修改代码,而对于右边的程序我们可做如下抽象:
Class Carnivore
{
int aId;
string name;
public void running()
public void Catching(Vegetarian)
public void Eating(Vegetarian);
public void Happy();
}
class Vegetarian
{
int aId;
string name;
public void running()
public void crying()
public bool Isdead()
}
然后,我们使用继承 class Lion : Carnivore
Class Rubbit : Vegetarian
这样,我们不用构造两个类,就能使用它们公共的特征和函数了
这样一来,我们可以完成所有食肉动物与食草动物的捕食关系了
如果,我们要实现老虎捕食猎物,那也很容易了,
我们只要定义下面代码:
Class Tigger : Carnivore
就可以了
3. 多态
从上面的继承中我们可以看出,实现一个新的类是那么容易,
但大家想一个问题,老虎与狮子,毕竟不是一种动物,那们的方法不可能完全相同,针对不同的子类,它的方法也不可能相同。比如它们的happy方法可能是这样的
public void happy()
{
Console.WriteLine(“我高兴,所以我发出虎啸”); //如果是狮子,就可能发出的是狮吼
}
这个问题我们放在下一课中祥细讨论
三、面向对象设计程序的作用
1. 重用代码
2. 可维护性高
3. 可插入性(这个特点与多态相关,下次课重点讲述)
意为:程序不需修改或少做修改,就可实现用户提出的新的问题
如上面
4. 直观,更接近现实
5. 方便调用
四、综合
对象是什么
从概念层面讲,对象是某种拥有责任的抽象。(职能)
从规格层面讲,对象是一系列可以被其他对象使用的公共接口。(对象交互)
从语言实现层面来看,对象封装了代码和数据。(数据和程序)
- C#2.0学习3--面向对象基本概念
- C#面向对象基本概念
- 【学习记录】面向对象的基本概念3
- 学习笔记-面向对象基本概念
- 1、学习面向对象 基本概念
- c#语言—面向对象的基本概念
- Java学习笔记之 面向对象基本概念
- 【学习记录】面向对象的基本概念4
- 【学习记录】面向对象的基本概念5
- 【学习记录】面向对象的基本概念6
- c#学习笔记五 面向对象编程的基本概念 接口 继承和多态
- c#学习3(面向对象)
- C#面向对象学习札记
- 【面向对象】php新手之学习类与对象-基本概念
- 黑马程序员 自学17C#面向对象之基本概念
- C#面向对象3
- Python 3)面向对象的基本概念(理解)
- 面向对象基本概念
- 成功销售人必经的三个阶段
- 百度知道上的一个帖子,感觉有些意思(关于 星际争霸)
- 怎样成为顶尖的销售人员
- WPF实例学习(A-03)
- C#学习2--流程控制
- C#2.0学习3--面向对象基本概念
- 就这样毕业
- 软件测试从零开始
- 明天就要彻底滚蛋了
- 转:linux设备驱动程序设计中的程序样例运行的一点说明(编译Linux内核)
- Spring AOP学习笔记
- 堆和栈的区别
- 3个心愿
- pain