全面化讲解面向对象思想

我们先来初步了解一下面向对象

初识面向对象

面向对象,他是我们开发的一种编程思想

编程思想

  • 面向对象 : 就是一种编程思想
  • 面向过程 : 也是一种编程思想

前言

学习面向对象,最重要的是理解,基于面向对象的编程思想,不断结合,使得语法认知更加透彻,并细致入微总结每一个语法点,关于面向对象的语法,前期需非常努力,后期也会持续加强,但学习时不可以疏忽懈怠

面向对象类和对象的概念理解

给大家一个概念,什么样算是面向对象呢?
生成一辆汽车过程示例
它包括了生产汽车的全部过程方法组成等等等等
这里,了解一下就行

为什么要面向对象?

我们做开发的,刚开始学,都会听说到“面向对象”这种方法,那么,这个思想到底好在什么地方呢?

面向对象三大特征

  •   封装 (Encapsulation)
  •   继承 (Inheritance)
  •   多态 (Polymorphism)

这里是面向对象编程思想的三大特征,不过,先别着急深入了解,我们现在是只要知道有这个东西就可以!
我们上面提到了,面向过程思想,我们先来解释一下它!

面向过程:做某件事情都需要自己亲历亲为,按照步骤去完成
面向对象:做某件事情不需要自己亲历亲为,只需指定特定的对象去完成即可。

思维展开

看到这里我们就要真正开始去认识面向对象了

首先,记住一个思想:万物皆为对象

现实世界就是由对象组成的,如下图,万物皆对象

 

一个人,一张纸,一支笔,都是可以作为对象,可以说是个东西(虚拟化的东西也算,比如:语言)或者说,只要可以语言描述出来的,就可以是一个对象

我们都知道,这是个开发思想,我们用这种思想开发程序的好处是:
1.交流更加流畅
2.提高设计和开发效率
3.面向对象的思想符合人类思维习惯

这些理论要是实在不理解的话也没有关系,我说得再明白一点:地球、你、我、它、东西、万物,这些就是对象
什么是对象不重要,我们是要去面向对象

对象与类

 好了,对象知道了,那我们怎么去面向它呢?
这里,我们要提到一个东西:
有人说,这个熟悉啊,我们编程开始不就是要创建一个吗?
可是,你知道什么是吗?

什么是类?

类是对某一事物的描述,是抽象的,概念上的定义
说到这,你可能还是不知道是什么,那就从实际出发,我们常常说:“物以类聚,人以群分”,这句话中,你可以知道,类就是具有相同点或者相同属性的事物的一个集合

比如说,学生,这就是一个类,每个学生之间,都有共同的,都是来学习的,都需要读书,都需要考试,被人统称为“学生”,所以我们一说“学生”,说的就是所有符合学生特点或者属性的事物

而我们的对象,是实际存在的该事物的个体,是具体的、现实的,也就是说,他是看得见摸得着的

例:学生类

为了让大家更好理解面向对象,我单独举例讲解一下“学生”这个“

 

学生是一个类,而对象既是具体的每一个学生。
如果我现在说:学生类出来,有人会答应嘛?
但是如果我说:学生张三出来,那么张三就会知道在叫他。

属性: 描述该事物具有的信息。
行为:该事物能干什么。
注意:在java中,类是最基本的单位,所有我们要学会用类描述事物。
事物 → 类
属性 → 成员变量
行为 → 成员方法

面向对象与面向过程理解图

这里给大家放一张图

大家观察这幅图,不难看出:第一个框图从起床到去上课坐车,每一步的动作都很具体;而第二个框图,我们只需要将衣服放入洗衣机,然后洗完再将衣服拿出来即可。那么第一幅框图我们就可以把它看作是“面向过程”,而我们的第二幅款图则就是我们今天的主角“面向对象

那么二者有何区别呢?
面向过程思想:做一件事情的每一步我们都是参与者,关注的是解决问题的过程。
面向对象思想:只关注最终结果。


看完这个图,应该对面向对象有一个大概的认识了吧!
所谓面向对象,就是让一个对象展开来,包括这个对象的行为、操作、外貌、颜色、特点.....等等等等
举个浅显的例子:“笔记本”对象
我们面向这个笔记本,一眼看去,可能是褐色也可能是黑色,这里算他是个黑色的吧。
认真的看它,会知道它长宽高等等信息,这是对象的表层!
我们面向这个笔记本展开来,里面有一张张的纸,每张纸有不同的内容,内容有各种各样,有日记有草稿有笔记
继续深入,这个笔记做得怎么样,字写得怎么样
....太多了,这里就不再深入了


笔记本的外层将笔记本封装起来,甚至还有锁
我们不打开笔记本,就不知道里面的内容,或者说密码只有自己知道

所以,这就是为什么面向对象安全性高的原因

假设我们可以导入这个对象,并且调用它,然后输出
那么,就可以输出笔记本里面的所有内容了,注意,是所有!

Java演示面向对象

题目:把大象装进冰箱
接下来让我们用面向对象的思想来分析一下:
1.都有哪些类?
:大象类、冰箱类、OOPDemo
2.每个类中都有哪些行为(方法)
大象类:吃草、走路
冰箱类:开门、关门
OOPDemo:装大象的方法 main
3.类与类之间有怎么样的关系

源码展示:

大象类:

public class ELephant {
//我们就假设大象有以下两种行为
    public static void eat() {
        System.out.println("吃东西");
    }
    public static void waLk() {
        System . out . println("走路");
    }
}

冰箱类:

public class ICEBox {
    public static void openDoor() {
        System.out.println("打开冰箱]");
    }
    public static void closeDoor() {
        System.out.println("关闭冰箱门]");
    }
}

 OOPDome:装大象的方法main

public class OOPDemo {
public static void putin(ELephant eLephant) {
        System.out.printLn("装大象");
        }
public static void main(String[] args) {
        //面向过程
        System.out.printLn("打开冰箱门");
        System.out.printLn("装进大象");
        System.out.printLn("关闭冰箱门");
        System.out.printLn("----------------- ");
        //面向过程
        //调用冰箱门行为
        ICEBox.openDoor();
        //装进大象
        putin(new ELephant());
        / /关闭冰箱门行为
        ICEBox.closeDoor();

此处,我分别用来面向对象和面向过程两种方法,方便大家理解

 输出的结果:

打开冰箱门
装进大象
关闭冰箱门
----------
打开冰箱门
装大象
关闭冰箱门门

大家可以看到,面向过程和面向对象产生的结果一样,那么就会有人问了,两者产生的结果一样那么为啥还有用面向对象?

那我这样说吧:现在我们只是进行了装大象,那么如果我们后续还有进行装猴子、装小狗、装老虎等···,难道是我们还要一遍一遍的去打印嘛?我们用面向对象的思想,提前设置好类,等到用的时候,不管是装什么,都可以直接调用,岂不是更方便!

 记住,这个文章看不懂没有关系,我们的目的是了解面向对象,慢慢来!

おすすめ

転載: blog.csdn.net/qq_60750453/article/details/120675834