面向对象的三大特征
封装:也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承:是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
多态:就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口
面向对象的基础
抽象。
抽象是一个提炼存在于事物之间共同拥有的元素的过程,
如何理解下面这句话?
1)我们要注重多少人来干事,而不是干多少事。
2)我们要注重谁来干事,而不是怎么干事。
这与面向对象的抽象有什么关系?
解释:我们要注重多少人来干事,而不是干多少人,我们只需要知道做完这件事需要多少人,不需要知道这些人具体做的工作,以及怎么做。
我们要注重谁来干事,而不是怎么干。比如:我们有一个工程要做,我还是只知道是谁来负责做这些事情,具体他怎么做,自己不需要了解。
以打水举例子。打水作为一件事,应该有谁去打水。和去哪里打水。用什么打水。打水人,打水地点,打水工具三个类。这样可以是不同的人使用不同的工具去不同的地方打水。
要抽象出打水人类、打水工具、打水工具以及打水地点抽象出来
抽象是把关注点转移到主语身上。不需要指出来是让谁做什么
这样的说法是错误的:
不应该去指明让谁去干什么,这样的说法是面向过程。关注点应该放在主语身上。