关于面向对象编程

                                                                                                                                                              2017年3月21日  于青岛软件园  夜 21:42

       以前看过一个节目,其中有一个情节:一个小女孩对几本文言文书籍熟读能背像《三字经》,《诗经》,《笠翁对韵》。主持人吃惊的她的妈妈,这么小让她接触文言文,小孩子不会觉得难而反感,为什么现在还兴致勃勃。他妈妈的答案里有一句话至今让我记忆犹新:“...小孩子的世界里没有难易概念的...”

        是啊,一片白纸,你上什么颜色,它就接受什么颜色。它没有什么去对比。就如我们一般,没有接触过机器语言,汇编语言,甚至C语言,直接就是C#。所有我们大多数人没有对C#关于直接面向对象思想方法出来而感到神奇的觉悟。(后续待更)


(整理笔记)

面向对象编程:

1.构造方法:

Man类后面的“()”,其实就是构造方法。只要你想创建类或结构的实例,必须调用它的构造方法,构造方法负责对类里面的字段进行初始化。(初始化 int 类型为0,bool类型为 false,char,string类型为“空”....)

关于面向对象编程_第1张图片

定义:构造方法必须类重名; 构造方法没有返回值,但可以有参数;

关于面向对象编程_第2张图片

构造方法可以有多个重载;  不带参数的构造方法为默认构造;

小结: 构造方法的本质是一个构造器,是为了类的实例化而产生;

            构造方法是一种特殊的方法,它没有返回值,它必须与类重名,它只能在初始化的时候             被系统自动执行,外部不能调用;

          如果将构造函数设置为private,则不能被外部实例化;

          如果类里面有带参数的构造方法,想调默认构造时,必须把默认构造显示写出来;

遇到小问题:

关于面向对象编程_第3张图片


答案如下: 可以

关于面向对象编程_第4张图片

2.析构方法:

析构方法: 析构方法用于析构类的实例,构造方法用于实例化,分配内存空间,而析构方法正                      好与它相反,用于释放内存空间


关于面向对象编程_第5张图片
关于面向对象编程_第6张图片

小结:不能再结构中定义析构方法,只能对类使用析构方法;

            一个类只能有一个析构方法;

           无法继承或重载析构方法;

            它们是被自动调用的;

           析构方法既没有修饰符,也没有参数;

3.面向对象程序设计:

            面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用                                的时候一个一个一次调用就可以了。

             面向对象:把构成事物分解成各个对象,创建对象后用对象调用各自方法以达到解决问                                题的目的

           特性:封装,继承,多态,(密封);

           OOP(面向对象编程)达到软件工程的三个目标:重用性,灵活性,扩展性;

4.面向对象的特性:

封装:是实现面向对象程序设计的第一步,封装就是将数据或者函数等集合在一个个的单元中             (我们称之为类)

            意义,在于保护或者防止代码(数据)被我们无意中破坏,在于高效的调动各个对象资             源;

            就是对类成员的再次包装,这样写更规范:  Get方法,Set方法对字段的封装,属性对               字段的封装

关于面向对象编程_第7张图片


继承:继承用于创建可重用,扩展和修改在其他类中定义的行为的新类。其成员被继承的类称             为“基类”,继承这些成员的类称为“派生类”。派生类只能有一个直接基类。但是,继承是             可以传递的。如果ClassB派生出ClassC,ClassA派生出ClassB,则ClassC会继承                     ClassB和ClassA中的成员;

通过在派生类名后面追加冒号和基类名称,可以指定基类

关于面向对象编程_第8张图片

在创建子类的时候,必须要调用父类的构造方法,调用方式有两种:1,隐式调用2,显示调用           (base)    隐式调用用了父类的无参构造器

关于面向对象编程_第9张图片

(后续)

你可能感兴趣的:(关于面向对象编程)