Java学习里程-----Java基础_9面向对象

一、面向对象

什么叫面向对象?说起来这个可以说是Java中的精髓!

说这个之前我们先来说另外一种东西,叫面向过程。这个设计方式呢,我们用一个例子去感受以下。

造自行车。自行车首先得去造一个架子,然后再造车轮子,接着造链条、轮盘,脚蹬子,然后车把、闸。

如果把造自行车这个活动用面向过程的方式来去写的话,就是每造一个东西,就是一个方法,我们然后按照顺序调用,最后组装,完成。

如果说,我们中途想要再加一个车座子,这就得从新排列组合顺序,弄不好还得去修改之前的方法,再搞不好还得从新思考,从新来做。

而这也是面向过程设计中的一个缺点,维护差、扩展低。但是也有优点,就是造的快。

但如果用面向对象的思想来去思考是这样的:首先是自行车,我们需要车架、链条、车把等东西,我们把每一个东西设计好交给每一个人去做,做好之后拿来装,这样做出来的自行车,维护性和扩展性都要比面向过程思维做出来的强,唯一的缺点就是前期投入的时间长一点。

乍一看可能你觉得差不多,其实是有区别的。

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

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

总结一句话,万物皆对象。

我们以后做开发就要用对象的思维去分析,解决问题,所以一定要知道。

二、Java的三大特性

这个也是重点,我直接说,Java有三大特性,分别是:封装、继承、多态。

我可以这样说,就这三个玩意,可以说会一直陪伴我们,所以,一定要好好去看这个!

封装

封装是指将一些不想让外界看到的,一些私有的,都隐藏起来,然后对外只提供接口去使用。或者是一些公共的方法,我们封装在一个地方,然后谁用谁来调取。

继承

这个很容易联想到一个成语,子承父业。

Java中的子,就是指的是子类,父就是子类继承的内个类。

而子类可以继承父类的成员变量和成员方法。这样做呢,可以提高代码的复用性。

好东西肯定是会有约束的,我们来看一下:

1. Java中只支持单继承,也就是一个子类只能继承一个父类,当然也有可以进行多继承的,我们这个后面会说。

2. 子类只能继承父类的非私有成员变量和方法

多态

先来说一下什么叫多态了,先举栗:水可以变成冰,可以变成水蒸气,但不管怎么变,都是H20。这就是一种物质可以因为环境的不同, 能够体现出不同的状态。其实我们已经体验过这个多态了,就是在学习集合的时候。

同样都是Set集合,但是因为实现的子类不同, 导致了Set集合也有不一样的效果。

这里还得说一个,多态有两种多态的实现方式,一种是编译时多态、另外一种是运行时多态。编译时多态是通过方法的重载来实现的,运行时多态是通过方法重写来实现的。

这时候我们给出重写与重载的定义:

Overlode重载:指的是同一个类中有多个同名的方法,但这些方法有着不同的参数。在编译时就可以确定到底调用哪一个方法。

Override重写:子类重写父类的方法。父类的引用变量不仅可以指向父类的实例对象,还可以指向子类的实例对象。当父类的引用指向子类的的对象时,也就是说,只有在运行时才确定调用哪一个方法。(我们用的Set、List集合都是用的重写,只有运行的时候才知道用的是那个)

只有类中的方法才有多态的概念,类中的成员变量没有多态的概念。

 

当然这三大特性除去这些还有很多很多细节,因为太多了,我们说不完,可以大家私下里去查阅资料,从书本中获取。

三、类和对象

类可以这样去理解、类指的是一种抽象的概念,表示一种东西或者一类事物,好比交通工具、通讯工具等

对象呢就是类的具体指代的东西,好比交通工具下面有自行车、汽车、坦克、飞机等等,这些具体的交通工具就是对象。

在这里还得说一个词,叫属性。属性是指对象的一些具体内容。好比坦克,坦克有履带、有大炮,这些就是坦克所拥有的一些属性。

四、方法

方法是说的对象有什么行为、有什么状态。

就拿自行车去说,自行车可以前进、后退、停等,这些行为就是方法。

抛开控制权限不说,Java中有两种方法,一种是由static修饰的方法,一种是没有static修饰的方法。

有static修饰的方法我们称为:静态方法,没有的我们称为普通方法。

有静态修饰的方法,我们直接用类名点这个方法即可调用。

普通的方法,我们需要用具体的一个对象然后点这个方法才可以调用。

五、修饰符

这个是给方法、或者类进行设定权限。

还用自行车去说,自行车的车把、脚蹬子这些都是自行车才有的,所以我们将这些个属性都设置成私有的属性,仅供自行车去使用。但是像前进、后退这些方法,他就是公有的,我们可以设置成公共的。

Java中对这种权限进行定义,如下:

private(私有,只有内部才可以访问), 啥也没有(只有在一个包下,才有访问权限),protected(仅子类,或者本类有访问权限),public(公共访问权限,在哪里都能访问)

 

本章暂时讲这么多,先好好琢磨一下。有什么不懂得地方,或者写错的地方,大家可以私信告诉我,或者加我QQ都行。

我的QQ:2100363119 


版权声明:本文为weixin_45908370原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。