面向对象,当老师给我抛出了这么一个话题,并且告诉我们现在社会,无论是编程语言还是编程思想都以这个为主,但是对于大四的我来说,没有任何感觉,好好总结一下吧,这个就是很重要的啦(老师说的)。//怎样的表达才能更好地表达和利于理解呢???好吧,还是以问答的方式吧。

首先给出个概念吧,面向对象编程(OOP Obje-Oriented Programming):就是针对对象来进行编程。

Q:1.对象是什么?类是什么?

A:对象是一个自包含的实体,用一组可识别的特性和行为来标示。(一切实物皆是对象)。

   类就是具有相同的属性和功能的对象的抽象的集合(附加:类的创建注意:类名称首字母大写,多个单词则各个首字母大写;另外公开的方法需要用‘public’ 修饰符。

Q: 2.可是如何使用类呢?什么叫实例化?

A: 实例,就是一个真实的对象,实例化就是创建对象的过程,使用new关键字来创建。

Q:3.构造方法是什么?做什么用的?

A:构造方法又叫做构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new时调用。(换句话说,在new 后面接的与类同名的就是构造方法了)。所有类都有构造方法,如果你不编写则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效了。     便于实例化的进行,换句话说类的初始化可以方便的进行。

Q: 4.什么是方法重载?

A: 方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。方法重载提供了函数可扩展的能力。

Q:5.什么是属性和字段?

A: 属性是一个方法或一对方法,但在调用它的代码看来,他就是一个字段,即属性适合于以字段的方式使用方法调用的场合。字段是存储类要满足其设计所需要的数据,字段是与类相关的 变量。

(附加:public 表示它所修饰的类成员可以允许其他任何类来访问,俗称共有的。

       protected 表示继承时,子类可以对基类有完全的访问权。

       private 表示只允许同一个类中的成员方法,其他类包括他的子类都无法访问,俗称私有的。

(注意:变量私有的叫字段,公有的是属性)

下面就是面向对象的三大特性了:

1.封装:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。

2.继承:继承者开可以理解为是对被继承者的特殊化,因为它除了具备被继承者的特性外,还具备自己独自的个性。继承定义了类如何相互关联,共享特性。继承的工作方式是,定义父类和子类,或叫做基类和派生类,其中子类继承父类的所有特性,而且可以定义新的特性。

   所以得出:一。子类拥有父类非private的属性和功能; 二。子类具有自己的属性和功能。三。子类还可以通过自己的方式实现父类的功能(方法重载)。继承的优点是,继承使得所有子类公共的部分都放在了父类,使得代码得到了共享,这样就避免了重复,另外,继承可使得修改或扩展继承而来的实现较为容易。

继承的缺点也就在于,父类变则子类不得不变。继承显然是一种类与类之间强耦合的关系。

3.多态:多态表示不同的对象可以执行相同的动作,但要通过他们自己的代码来实现。

注意:第一、子类以父类的身份出现。 第二、子类在工作时以自己的方式来实现。 第三、子类以父类的身份出现时,子类特有的属性和方法不可以使用。

附加:虚方法和方法重写:为了使子类的实例完全接替来自父类的类成员,父类必须将该成员函数声明为虚拟的。这是通过在该成员的返回类型前添加virtual关键字来实现的。  子类可以选择使用override关键字,将父类实现替换为它自己的实现,这就是方法重写 Override。

多态的原理是当方法被调用时,无论对象是否被转换成为其父类,都只位于继承连最末端的方法实现会被调用。也就是说,虚方法是按照其运行时类型而非编译时类型进行动态绑定调用的。  换句话说,不同的对象可以执行相同的动作,但是通过自己的实现代码来执行。

Q6 重构   通过设计模式(模板方法)从新设计类,可以从过个子类的比较中发现,代码的重复程度进行改进。