[目录][C#笔记]---第二节 面向对象
2018-03-25 16:17
225 查看
面向对象(OO,Object–Oriented)
在面向对象编程中要了解什么?
类,字段,属性,方法。
它的特性:封装,继承,多态。
什么是面向对象,面向对象的目的是什么?
我们做程序的目的是
1.降低软件开发的复杂度
2.提高软件开发的效率
3.提高软件质量:可维护性,可扩展性,可重用性等。
一,先来理解面向对象中的对象是什么?
(虚拟)假设我们要做一款游戏,游戏中有一个游戏人物A,A本身具有一定的生命值,玩家要移动A上下左右的移动。
A就是一个对象,A的生命值是A所具有的属性,A的移动是A所具有的动作(动作等于一个触发条件,到了这个触发条件就是执行一个方法)
(现实)现在有一个茶杯,具有重量,容量,形状,高度等属性。
假设这个茶杯是有盖子的,也就代表了,盖子是可以拿下来的,这样就必须有一个 拿下盖子 的方法。
这个茶杯也可以成为是一个对象。
所以,面向对象这个对象,指的是客体。所谓客体是 指客观存在实体(茶杯) 和 主观抽象的概念(游戏人物)。
二,为什么要使用面向对象?
还是原先的那款游戏,现在把 现实中存在的茶杯B 放进游戏中。
//游戏人物A
class A
{
public int 生命;
public viod 上(){};
public viod 下(){};
public viod 右(){};
public viod 左(){};
}
//茶杯B
class B
{
public int 重量;
public int 容量;
public int 高度;
public string 形状;
public viod 拿下盖子(){};
}
然后我们想让A找到B,并把B的盖子拿下来。
这时就需要在A中添加 找B的方法
//游戏人物A
class A
{
public int 生命;
public viod 上(){};
public viod 下(){};
public viod 右(){};
public viod 左(){};
public viod 找B(){};
}
//茶杯B
class B
{
public int 重量;
public int 容量;
public int 高度;
public string 形状;
public viod 拿下盖子(){};
}
先,我们已经把找B的方法加到了class A中,但我们还需要一个触发的动作(点击茶杯),玩家点击茶杯后,执行 找B() 这个方法。
在 找B() 中A是有可能会移动的,先不管是如何找到的,就假定 找B() 这个方法找到B了。
找到B之后就把B的盖子拿下,这时就要执行B中 拿下盖子() 的这个方法。
类:
把 现实中的实体 和 抽象的概念 定义为对象,有一个容器可以把对象具有的方法,属性等包含起来。
对象实例:
在代码中:A a=new A(); 用new关键字来把 类(这个包含对象中方法和属性)起个名字。 这个就把 ‘a’ 这个符号当作游戏人物A。
同时,‘a’这个符号,也就具有了A的的生命值和上下左右的移动的方法。
当程序要知道A的生命值时只需要,a.生命 就行了。 而要执行 找B 的方法时, a.找B();
方法:是在类中定义的函数,一般而言,一个方法描述了对象可以执行的一个操作!
属性:是类中定义的变量,类的属性突出对象的状态。
类决定了对象将要拥有的属性和行为。
三,类(class)的使用
//声明一个类
public claas A(){
//私有 只有在本类的作用域中可被访问
private string name1;
//保护 在本类和继承这个类的对象可被访问
protected string Nmae1
{
get { return name1; }
set { name1 = value; }
}
//在本程序集中可被访问,其他程序集引用时,无法访问
internal void a() { }
//公开
public string this[int i]//索引器
{
get { return i.ToString(); }
set { name1 = value; }
}
}
//引用一个类,声明了一个对象实例a
A a = new A();
string s = a[1]; //s="1"
a[1] = "55"; //会把name1="55"
s = a[6]; //s="6"
s = a.Nmae1; //因为protected,所以不可访问,改为public时,结果:"55"
作者:FengYang
博客地址:http://blog.csdn.net/qq_28140365
版权声明:如果感觉文章哪里写的不对或者存在疑问,欢迎留言,共同学习、进步!
蓝色字体为链接
在面向对象编程中要了解什么?
类,字段,属性,方法。
它的特性:封装,继承,多态。
什么是面向对象,面向对象的目的是什么?
我们做程序的目的是
1.降低软件开发的复杂度
2.提高软件开发的效率
3.提高软件质量:可维护性,可扩展性,可重用性等。
一,先来理解面向对象中的对象是什么?
(虚拟)假设我们要做一款游戏,游戏中有一个游戏人物A,A本身具有一定的生命值,玩家要移动A上下左右的移动。
A就是一个对象,A的生命值是A所具有的属性,A的移动是A所具有的动作(动作等于一个触发条件,到了这个触发条件就是执行一个方法)
(现实)现在有一个茶杯,具有重量,容量,形状,高度等属性。
假设这个茶杯是有盖子的,也就代表了,盖子是可以拿下来的,这样就必须有一个 拿下盖子 的方法。
这个茶杯也可以成为是一个对象。
所以,面向对象这个对象,指的是客体。所谓客体是 指客观存在实体(茶杯) 和 主观抽象的概念(游戏人物)。
二,为什么要使用面向对象?
还是原先的那款游戏,现在把 现实中存在的茶杯B 放进游戏中。
//游戏人物A
class A
{
public int 生命;
public viod 上(){};
public viod 下(){};
public viod 右(){};
public viod 左(){};
}
//茶杯B
class B
{
public int 重量;
public int 容量;
public int 高度;
public string 形状;
public viod 拿下盖子(){};
}
然后我们想让A找到B,并把B的盖子拿下来。
这时就需要在A中添加 找B的方法
//游戏人物A
class A
{
public int 生命;
public viod 上(){};
public viod 下(){};
public viod 右(){};
public viod 左(){};
public viod 找B(){};
}
//茶杯B
class B
{
public int 重量;
public int 容量;
public int 高度;
public string 形状;
public viod 拿下盖子(){};
}
先,我们已经把找B的方法加到了class A中,但我们还需要一个触发的动作(点击茶杯),玩家点击茶杯后,执行 找B() 这个方法。
在 找B() 中A是有可能会移动的,先不管是如何找到的,就假定 找B() 这个方法找到B了。
找到B之后就把B的盖子拿下,这时就要执行B中 拿下盖子() 的这个方法。
类:
把 现实中的实体 和 抽象的概念 定义为对象,有一个容器可以把对象具有的方法,属性等包含起来。
对象实例:
在代码中:A a=new A(); 用new关键字来把 类(这个包含对象中方法和属性)起个名字。 这个就把 ‘a’ 这个符号当作游戏人物A。
同时,‘a’这个符号,也就具有了A的的生命值和上下左右的移动的方法。
当程序要知道A的生命值时只需要,a.生命 就行了。 而要执行 找B 的方法时, a.找B();
方法:是在类中定义的函数,一般而言,一个方法描述了对象可以执行的一个操作!
属性:是类中定义的变量,类的属性突出对象的状态。
类决定了对象将要拥有的属性和行为。
三,类(class)的使用
//声明一个类
public claas A(){
//私有 只有在本类的作用域中可被访问
private string name1;
//保护 在本类和继承这个类的对象可被访问
protected string Nmae1
{
get { return name1; }
set { name1 = value; }
}
//在本程序集中可被访问,其他程序集引用时,无法访问
internal void a() { }
//公开
public string this[int i]//索引器
{
get { return i.ToString(); }
set { name1 = value; }
}
}
//引用一个类,声明了一个对象实例a
A a = new A();
string s = a[1]; //s="1"
a[1] = "55"; //会把name1="55"
s = a[6]; //s="6"
s = a.Nmae1; //因为protected,所以不可访问,改为public时,结果:"55"
作者:FengYang
博客地址:http://blog.csdn.net/qq_28140365
版权声明:如果感觉文章哪里写的不对或者存在疑问,欢迎留言,共同学习、进步!
蓝色字体为链接
相关文章推荐
- C# 面向对象系列笔记(三)
- .Net学习笔记----2015-07-22(C#基础复习10,面向对象2个小练习)
- C# 面向对象系列笔记(四)
- C#学习笔记——面向对象、面向组件以及类型基础
- C# 面向对象系列笔记(五) 完结
- 《设计模式:基于C#的工程化实现及扩展》学习笔记--目录
- C#学习笔记------2、面向对象
- [目录][C#笔记]---第一节 数据类型
- C#学习笔记——面向对象、面向组件以及类型基础
- C#学习笔记14:面向对象继承的特点和里氏转换
- 2014年暑假c#学习笔记目录
- C#学习笔记15:字符串、文件、目录的操作方法
- [目录][C#笔记]---第三节 流
- C# 笔记2:面向对象
- 黑马程序员--学习笔记--C#面向对象
- 自己用的C#基础学习笔记(二)——C#面向对象(1)
- 【卷土重来之C#学习笔记】(一)c#文章导航目录
- C#学习笔记21——文件、目录、注册表操作
- 《程序员的第一年》---------- C# 在非web程序取目录笔记
- 自己用的C#基础学习笔记(二)——C#面向对象(2)