面向对象设计实质上就是对现实进行了建模的操作。在计算机中的对象,是一个抽象的概念,英文名是object,表示任意存在的事物。现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体。
人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分成两个部分,动态部分和静态部分。
静态部分:就是不能动的部分,这个部分被称为“属性”,任意对象都会具有其自身属性,例如一个人,他包括高矮、胖瘦、性别、年龄等属性。
动态部分:一个对象所具备的行为,例如一个人对象,具有这些“属性”的人,可以执行很多动作,这个人可以哭泣、走路、微笑、说话等,这些都是这个人所具有的行为。
人们通过探讨对象的属性和观察对象的行为来了解对象。在计算机的世界中,面向对象程序设计的思想要以对象来思考问题,首先要将现实世界中的实体抽象为对象,然后思考这个对象具备的属性和行为。
类:类就是同一事物的统称,如果将现实世界中的一个事物抽象成对象,类就是这类对象的统称,如鸟类、鱼类。类是构造对象时所依赖的规范,例如一只鸟具有一对翅膀,它可以利用这对翅膀飞行,而基本上大部分鸟都具有翅膀这个特性和飞行这个技能,这样具有相同特性和行为的一类事物就称为类 。
面向对象编程的特征:抽象、封装、继承、多态。
封装:封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。
继承:当处理一个问题时,可以将一些有用的类保存下来,这些类通常具有相同的属性,甚至相同的方法,当遇到同样问题时可以拿来复用。例如麻雀具有鸟类相同的属性和行为,可以在创建麻雀类时将鸟类拿来复用,并且保留鸟类具有的属性和行为。继承性主要利用特定对象之间的共有属性。
多态:将父类对象应用于子类的特征就是多态。多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,就可以实例化子类的对象。由于整个事件的处理都只依赖于父类的方法,所以日后只需要维护和调整父类的方法就可以了,这样就降低了维护的难度,节省了时间。
原文:https://www.cnblogs.com/mlzhang/p/14622677.html