与面向对象的第一面

什么是面向对象

面向对象就是一种编程思想,C语言是一种面向过程,当然说这些比较官方或者比较文的词语,对于很多初学者来讲,不容易理解这些概念性太强的知识。就我个人而言,我喜欢举例子。
首先我们来看一下什么是对象,对于很多单身狗而言,不要认为学习java还可以找对象,谈恋爱,这种理解是不对的。那么什么是对象,比如:汽车、火车,灯,茶几等等凡是你能看见的事物其实就是一种对象。

现实中的面向对象

下面我们以汽车来举例:假设你想拥有一辆车,有哪些做法?
第一种:先需要设计图纸,购买原材料(钢铁、橡胶、织物等等),然后自己亲手制作汽车所需要的各种部件,轮胎、发动机,框架等等,所有的东西都需要我们自己一个人独立的去完成,这一种对待事物的处理办法或者想法就是面向过程,当然车子的质量取决于自己的手艺,后期的维修也需要自己。
第二种:请一个设计师,直接订购轮胎,发动机,框架等等,最后完成组装。这一种就是面向对象,当然我们也可以直接买一辆车。
比较两者之间我们就非常清楚的看出,面向过程和面向对象的区别。
面向对象的思想在java语言中是核心所在。

软件开发中的面向对象

比如你接到了一个6000万的软件开发项目,如果还是面向过程,那么所有的代码你都要请力亲为,这样的思想是不正确的,你一个人基本上是不可能完成的。
所以面向对象油然而生,你可以请几个UI设计的,java程序,软件测试等等,组成一个team,你只需要负责安排他们做相应的事情,不需要去考虑,代码是如何实现的,你需要做的就是管理,然后接项目。说到这里,提前引入一些后续的学习,后面我们会接触冒泡排序、输出字符串这些,会写代码实现,训练思维逻辑,其实这种方法java早就给我们写好了,我们只需要找到对应包下类中的工具调用就行了,我们不回去管代码到底是怎么执行的,这就是一种面向对象的思想。

类和对象

类:是描述一类事物的特征
对象:是描述具体个体事物,是具体的个体
举一个例子来说明:学生
学生是一个类,张小明是一个学生,学生就是一个类,张小明就是学生类中的一个对象,张小明这个对象他有哪些特征:姓名、身高、体重、行为等等,是他这个人所有的。那么他的属性就是静态部分,他的行为就是动态部分。在这里再次对对象和类举一个错误的例子,很多人说汽车是一个类,这个是正确的,奥迪、奔驰、宝马是它的对象,这是错误,这只是汽车类的分类,这个没有到一个具体的个体。只有张小二的奥迪A4汽车,才是车类的对象。

java中类的定义及创建

与面向对象的第一面
定义一个类,类中没有主方法,编译时不会报错的,主方法只是运行时程序的入口而已。是不是感觉很简单?其实就是这么简单,接下来我们来看看如果创建把定义的学生类,创建起来。
与面向对象的第一面
上面两张图片结合一起看,只要创建对象就是new出来,然后用Student来接收,对象名.属性名就行赋值,其实可以把创建对象,看成复制了Student类中的模板,赋值以后不会改变类中属性中的值,注意如果在定义学生类的时候,已经把对象属性赋了初始值,那么就相当于原来一张没有填过任何学生信息的表格中,有些地方已经有了信息,我们在定义对象属性的时候,尽量做到见名知意。