JAVA基础(面向对象的理解:什么是面向对象)

 

 

 

       面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等经过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据做为第一位,而方法或者说是算法做为其次,这是对数据一种优化,操做起来更加的方便,简化了过程。面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提升了复用性和安全性。对于继承性,就是两种事物间存在着必定的所属关系,那么继承的类就能够从被继承的类中得到一些属性和方法;这就提升了代码的复用性。继承是做为多态的前提的。多态是说父类或接口的引用指向了子类对象,这就提升了程序的扩展性,也就是说只要实现或继承了同一个接口或类,那么就可使用父类中相应的方法,提升程序扩展性,可是多态有一点很差之处在于:父类引用不能访问子类中的成员。html

       举例来讲:就是:好比说你要去饭店吃饭,你只须要饭店,找到饭店的服务员,跟她说你要吃什么,而后就会给你作出来让你吃,你并不须要知道这个饭是怎么错作的,你只须要面向这个服务员,告诉他你要吃什么,而后他也只须要面向你吃完收到钱就好,不须要知道你怎么对这个饭进行吃算法

一、特色:编程

1:将复杂的事情简单化。安全

2:面向对象将之前的过程当中的执行者,变成了指挥者。框架

3:面向对象这种思想是符合如今人们思考习惯的一种思想。编程语言

二、面向对象的三大特征:封装,继承、多态函数

1.封装:只隐藏对象的属性和实现细节,仅对外提供公共访问方式优化

好处:将变化隔离、便于使用、提升复用性、提升安全性this

原则:将不须要对外提供的内容隐藏起来;把属性隐藏,提供公共方法对其访问spa

2.继承:提升代码复用性;继承是多态的前提

注:

①子类中全部的构造函数都会默认访问父类中的空参数的构造函数,默认第一行有super();若无空参数构造函数,子类中需指定;另外,子类构造函数中可本身用this指定自身的其余构造函数。

3.多态

是父类或接口定义的引用变量能够指向子类或具体实现类的实例对象

好处:提升了程序的扩展性

弊端:当父类引用指向子类对象时,虽提升了扩展性,但只能访问父类中具有的方法,不可访问子类中的方法;即访问的局限性。

前提:实现或继承关系;覆写父类方法。

 

 

 

面向对象的总结:

面向对象实际上是现实世界模型的天然延伸。现实世界中任何实体均可以看做是对象。对象之间经过消息相互做用。另外,现实世界中任何实体均可归属于某类事物,任何对象都是某一类事物的实例。若是说传统的面向过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 


全部面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其做用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一块儿造成一个总体。能够说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,由于Java无全局变量,无主函数,在Java中绝大部分红员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其余对象交互操做。

多态性就是多种表现形式,具体来讲,能够用"一个对外接口,多个内在实现方法"表示。举一个例子,计算机中的堆栈能够存储各类格式的数据,包括整型,浮点或字符。无论存储的是何种数据,堆栈的算法实现是同样的。针对不一样的数据类型,编程人员没必要手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operator overload)一直被认为是一种优秀的多态机制体现,但因为考虑到它会使程序变得难以理解,因此Java最后仍是把它取消了。

继承是指一个对象直接使用另外一对象的属性和方法。事实上,咱们遇到的不少实体都有继承的含义。例如,若把
当作一个实体,它能够分红多个子实体,如:卡车、公共汽车等。这些子实体都具备汽车的特性,所以,汽车是它们的"父亲",而这些子实体则是汽车的"孩子"。Java提供给用户一系列类(class),Java的类有层次结构,子类能够继承父类的属性和方法。与另一些面向对象编程语言不一样,Java只支持单一继承。
相关文章
相关标签/搜索