什么是Java面向对象,Java面向对象该怎么理解

写在前面(可以跳过):

从第一次接触Java到现在已经两年了,一直不敢再接触面向对象,面向对象一直是我心里胆怯的一个东西,在学面向对象时,总有人和我说面向对象很难,也导致了我对面向对象的恐惧,但面向对象是Java的核心,是必须要学的,今天重新学习Java面向对象,希望给大家带来更好的理解

注:本文章以现代话的形式说明我对Java面向对象的理解,部分内容以便读者更好地理解会有不少废话,请谅解

1.开始正文,首先要理解一下以下几个名词

对象,类

①对象

不是指你的另一半,这里的对象是指一个具体的事物
那么是不是面向对象换句通俗的就是:面向一个具体的事物)

②类

类,指有相同属性和行为的一些事物
比如:你好色,他也好色,你们是一类人

再比如:你染的绿头发穿的豆豆鞋,他也染得绿头发穿的豆豆鞋,你们是一类人


以下所有名词不理解可以暂且跳过

③封装

封装很好理解,就是装起来,那么把什么装起来呢,装的就是对象的属性和行为

④继承

子类继承父类的属性和行为

⑤多态

程序中同一符号,在不同情况下具有不同表现形态
将父类对象应用于子类的行为,以此来呈现出不同的表现形态s


2.那么理解完以上的名词开始进入Java面向对象各个名词的关系

①对象和类(以对象的角度出发)

上面已经说到,对象是一个具体的事物,而类指有相同属性的事物。
那么类和对象有什么关系呢,这里举一个例子

假如这里有一类穿着豆豆鞋染着绿头发的人,而你也穿着豆豆鞋染着绿头发站在里面,
那么你就是这类人里面一个具体的事物——>那么你就是这类人里面的一个对象——>那么你就是类(穿着豆豆鞋染着绿头发的人)里面的一个对象

有没有很好地理解呢?如果没有的话再举一个例子

假如老师上课对你和你的同桌说,你们这类上课不好好听讲的人,活该挂科,
那么你和你的同桌就是这类人里一个具体的事物——>那么你和你同桌就是这类人里的一个对象——>那么你就是类(上课不好好听讲的人)里面的一个对象

总结:对象就是类里面的一个实际存在的例子(对象就是类的实例)

②类和对象(以类的角度出发)

上面阐述了以对象的角度出发来看两者的关系,这里以类的角度出发
两者的关系是什么呢?
假如这里有A穿着豆豆鞋染着绿头发抽烟的人,而你也穿着豆豆鞋染着绿头发在抽烟,同时B,C也是这样的打扮和行为
你们身上相同的属性和行为是什么呢?穿着豆豆鞋,染着绿头发,人
那么把这些具体事物的属性和行为提取出来,就可以生成(一)类(人)
这个过程就叫做封装,而载体就是类
再回到这个实例中,和其他人提到这个类的时候,他们可能不认识你,但是他们能够得到这个类拥有的属性和方法
这就是封装的优点,在计算机中这么阐述:类通常对客户隐藏其实现细节,而这也正是封装的思想

③类和类关系1

这里先举两个类:一个就是三角形,一个是等边三角形
因为它们没有行为,所以只看他们的属性

三角形:三条边,三个角,等等等
等边三角形:三条边,三个角都是60°,三个边相等,等等等

我画出来一个等边三角形一定是三角形,但是我画一个三角形不一定是等边三角形,因为三角形有的属性我等边三角形全有

那为什么呢?很简单,,,因为我等边三角形是你三角形的子类,你三角形是我等边三角形的父类。所以我等边三角形肯定拥有你所有的三角形的属性。
(是不是有点像数码宝贝进化,我完全体肯定有你成熟体所有的技能,但是你成熟体不一定有我完全体全部技能)
这样的关系就是继承关系
贴两张图什么是Java面向对象,Java面向对象该怎么理解

依次是幼年体,成长体,成熟体,完全体,究极体
什么是Java面向对象,Java面向对象该怎么理解

④类和类关系2

先借用一本书上的一个例子
定义一个几何图形类Shape,具有“画图”行为,用draw()表示,但具体画什么图形不确定。Shape类中还有一些子类,如Circle(圆)、Rectangle(矩形)。在这些子类中draw的具体行为可以重新定义:圆类中的draw画圆,矩形中的draw画矩形
这种行为叫做多态(多态在以后放在单独文章中进行详细解释,伴随实例才能更好地理解)