Java进阶-面向对象

开始

学习完Java基础部分,(理论上)你已经可以写出能够实现任何操作数据功能的程序了,但是为了让我们的程序效率更高,以及让自己的生产效率更高,我们有必要了解一下Java的核心思想:面向对象编程。

**↑不来一首BGM吗?**

本章要求

这一章我们并不介绍任何Java语法,只谈一谈关于面向对象的一些事情,在这一章中你将了解类和对象的一些基本概念,这将有助于你更深入地了解之后几章的知识。

什么是类

类,字面上的意思,就是某种拥有共同属性的东西。
我说:人类。你会想到什么?是一个扶额思考的比利王呢?还是一个二次元的萌妹子?不管你想到了什么,在你脑海里的那个东西就是你认为的人类。
那么为什么我说人类,你不会想到狗类或者毛类或者其他什么奇怪的东西呢?
因为你知道人类的属性或者行为:有手有脚,直立行走,能思考之类的。而这些东西狗类和猫类是没有的:你见过哪只有手有脚能直立行走的猫或狗嘛?(猫娘给我滚开!)
因此:我们把某些拥有共同属性和行为的东西合并成为xx类,再用Minecraft举一个例子:
Player类,就是玩家类。Block类,就是方块类。
你知道:一个player是有生命值、饥饿值、名字,可以走路、跳跃、吃东西的,尽管两个不同的player他们的属性(生命值,饥饿值,名字)的值不同,而且他们正在做的事情(行为)可能也不一样,但是无论如何:他们一定都有这些属性(生命值,饥饿值,名字),而且一定可以做出这些行为(走路、跳跃、吃东西)。
而Block不一样,一个Block没有生命值,饥饿值,他也不能走路、跳跃、进食。因此Player和Block不相同。

什么是对象

对象是什么?没学过Java的你可能认为那就是女朋友啦。但是在Java里,女朋友是一个对象,对象却不仅仅只指女朋友。
看完上面对于“类”的解释,你可能知道了如何去描述一个群体,但却无法精确指向某一个对象。例如:你说人类,却不能精确具体到哪一个人。对象就是用来指向某一个事物(也可以是不存在的事物)的东西。
你说女朋友,没错,女朋友确实是一个具体的对象,它可以指向某个人(也可能指向一个空的东西),但是你也知道,光是说出“女朋友”三个字,别人是不能理解你指的是哪个人的。因此你必须这样说“xxx的女朋友”,这样别人才知道你到底想说的人是谁。
但是啊,你说“叁只仓鼠的女朋友”,认识我的人可能就知道,哦那不是小羽嘛?
但是,如果不认识我的人呢??“叁只仓鼠?谁啊?”
在确定了一个对象后,你可以让这个对象做一些事情,但前提是这个对象一定是要能做这个事情的(这取决于他是什么类的,狗类和人类都可以吃东西,因此你可以让一个人类对象或者狗类对象吃东西)
不过,要想让别人知道你到底在说哪个对象,最好给他起一个名字:如果有三只仓鼠在打架,你希望其中一只攻击另一只的菊花,你不能说“你快去咬他菊花啊!”,这样三只狗都会以为你说的“你”是指他自己,而你说的“他”则意义不明了。此时你需要给三只仓鼠起个名字,韩红和韩寒和嘿嘿,这样他们打架的时候你就可以说“韩红你快去咬韩寒的菊花啊!”
这样是不是方便多了?
Java里你可以让一个对象拥有不同的名字,但是一个名字只能指向一个对象:一只狗A,你可以叫他小白小黄小黑,但是如果你再叫其他狗B小白,那么小白这个名字就属于B而不属于A了,以后你再喊小白,回应你的将只是B,A不会有任何反应。
当然,你也可以给一个不存在的东西命名为小白,同样你也可以尝试让这个不存在的狗吃东西。(这样你的电脑就会找不到这个对象,但是使用者强行命令他执行这个不可能执行的命令,于是他只好死给你看,boom~)

附上我和我小羽的聊天记录:
我和小羽的聊天记录

本章完

暂时就先讲这么多吧,同志你能不能理解呢?稍后我们将在代码中实现上面所讲的狗打架之类的有趣的事情~

点我返回目录

感谢各位的阅读!

人生不易,仓鼠断气