面向对象

面向对象概论

面向对象理论很早就被提出了,但它真正地渗透到软件开发的各个领域,并且在软件开发实践中大规模使用,却要追寻到上世纪九十年代。到目前为止,面向对象技术已是软件开发的主流,全面取代了结构化编程技术曾经具有的地位。

面向对象技术与结构化编程技术有着不同的风格,但同时也有着密切的联系。从具体编程角度来看,面向对象技术与结构化编程技术很难截然分开,两者的根本差别在于思维方式。

面向对象的核心概念

1.封装

 封装的类=数据+对此数据进行的操作(即算法)

在面向对象理论中,封装这个概念拥有更宽广的含义,小到一个简单的数据结构,大到一个完整的软件子系统。

具备封装的意识,是掌握面向对象分析与设计技巧的关键。

2.抽象

在使用面向对象的方法设计一个软件系统时,首先要区分出现实世界中的事物所属的类型,分析它们拥有哪些性质与功能,再将它们抽象为在计算机虚拟世界中才有意义的实体--类。

3.继承

在计算机世界中,以面向对象的观点不仅将上述事物抽象为类,而且将事物之间的派生关系也一并模拟出来,这种关系称为继承。

1.父类的相关成员,会自动派生到子类去。public protected
2.子类可以扩展父类的相关成员。
3.子类可以替代父类来使用,但父类不能替代子类来使用。

4.多态

用比较抽象事物来取代具体事物的表达方法,在面向对象软件中用“多态”这一特性来模拟

一、类的基本概念
(一)类的基本了解。
类:自己定义的一种复杂的类型。
类一般包括两大部分:字段-成员变量(名词或形容词),方法-成员函数(动词)
类的关键词:class
(二).类的定义:
class 类名
{
 成员变量的定义;
 ...
 成员函数的定义;
 ...
}
在类的成员(成员变量,成员函数)前面经常会加访问修饰符(public private protected)

(三).类的使用:

Dog d = new Dog(); //实例化

d.Name = "旺财";

d.Owner = "张三"; d.Run();

d - 对象的引用。 new Dog() - 真正的狗的对象。

(四)附加: C#中的变量的类型:

1、值类型: int float double char bool struct datetime

2、引用类型: string 数组 自定义的类。 模型图:堆空间与堆空间。

1.用模型图解释: A a1 = new A(); A a2 = new A(); Console.WriteLine(a1== a2);  //结果为什么是false?

2.用模型解释:上面狗的例子,为什么最后d.Run()会显示成李家的狗?

3.用模型解释:int a = 100; int b= 100; Console.WriteLine(a == b);结果为什么是true?

类的封装:不要随便把成员变量设成public,一般需要设成private或protected,通成员方法或成员属性来实现对成员变量的合法访问。

二、类的成员——属性

属性:对成员变量进行访问的端口。

(一)属性的定义: public 类型 属性名 {  get  {  }  set  {   关键词value.代表是要赋的值。  } }

(二)属性的使用: 直接通过属性名进行使用。 Console.WriteLine(r.Height); - 调用属性的get部门 r.Height = 180; -调用属性的set部分。

三、类的方法——成员函数——方法重载 方法的名子相同,参数不同(类型不同,个数不同)——形成了方法的重载。 重载方法与返回类型无关。 好处: 1.减少方法名的定义,不用记太多的方法名了。 2.减少代码重复,更大限度的重用,代码结构更合理。

多个重载方法被调用的时候,首先找方法名,然后再根据参数找对应的重载方法。

原文地址:https://www.cnblogs.com/v812249389/p/4463347.html