Java基础——对象和类1(面向对象基本概念)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zzj_csdn/article/details/77418316

Java基础——对象和类1(面向对象基本概念)

一、编程思想

编程思想:需求——>建立思路——>目标代码

面向过程的思想:自顶向下,逐步求精

不适合用来解决一些比较复杂的问题

面向对象的思想

二、对象的基本概念

1,对象:无论什么都是对象,一切客观存在的事物

2,属性:有什么

3,方法:能做什么

例如,对于一个汽车对象,这个对象有颜色、品牌、价格、 最高时速等属性,有启动、加速、转向、刹车等方法。

 

对象不是孤立存在的,对象与对象之间会通过某种方式产生联系。

一种方式是方法调用的关系。一个对象可以调用另一个对象的方法,从而在这两个对象中产生关联。即对象的方法使用者又是一个对象。例如,学生对象,可以调用老师对象的“讲课”方法,司机对象可以调用汽车 对象的“行驶”方法,顾客对象可以调用厨师的“做饭”方法,等等。任何一个对象都可能 调用其他对象的方法,也可能提供方法供其他对象调用。

另一种方式是属性组合的方式:一个对象的属性,可能又是一个对象。例如,把主机、 键盘、鼠标等等小对象,皆可看作是电脑这个大对象的属性;以若干个学生对象作为属性, 组成了班级对象;若干个书本对象,组成图书馆对象等等。

通过这两种联系方式,我们可以把一些功能相对简单的对象组织在一起,形成复杂的系统。


客观的世界是由对象组成的

1,小对象组成大对象

2,对象间彼此方法调用

 

例如,现实生活中,企业这个对象,往往是一个非常复杂的系统。然而,企业中每一个对象,每一个员工,要解决的问题总是相对简单的。例如,在一个软件企业中,程序员要解 决的问题就是编程,会计解决的问题就是算账,销售解决的问题就是获得订单,等等。但是, 虽然每个员工要解决的问题都相对简单,但是当大量功能简单的对象组合在一起之后,就能 形成一个非常复杂的企业系统。

解决客观问题:面向对象的思想

1,把解决问题所需的对象准备好

2,对象如何配合完成需求

例如,假设我们要从北京出发到上海。为了完成这个任务,首先要做的,是应当确定,用什 么方式去上海,是坐飞机?坐火车?还是自己开车?等等。

这是一个选择交通工具的过程,也就是我们在选择合适的对象来解决问题的过程。在这 个例子中,我们希望能够选择一个对象,这个对象能有一个“交通运输”的方法。很显然, 汽车、火车、飞机,都存在这个“交通运输”方法。我们可以根据实际的情况,来选择不同 的交通工具,并调用其“交通运输”方法,从而完成从北京到上海这个目标。如果我们选择 了“飞机”对象,那么就需要调用“机票代理人”对象的“卖机票”方法,来获得一个“机 票”对象。再调用“出租车”对象的“开车”方法,到达机场。利用手中的机票,调用“飞 机”对象的“登机”方法,“飞行”方法。从而到达目的地。

三、计算机中的对象

计算机需求来源于客观世界

解决计算机问题,同样可以采用面向对象的思想

 

设计电子商务网站,这是一个计算机领域的问题。但是,我们可以看到,这个问题的提出,是与现实世界紧密联系的。也就是说,计算机编程要解决的问题,一定来自于现实生活。例如,软件行业中有 word 软件,是为了解决人们处理文档的问题;有 excel 软件,是为了解决人们统计数据以及做报表的需求;有QQ 软件,是为了解决人们交流和沟通的需求„„ 等等。

  既然计算机世界的问题都来源于现实世界,那最好的办法,就应当是让计算机来模拟现 实世界。由于现实世界是一个面向对象的世界,因此,很自然的,我们就希望在计算机世界中,也引入面向对象的思想,这样,程序员就可以利用现实生活中的经验,更好的解决计算机的问题。

 

计算机中的对象

1,JVM中连续的储存空间(数据)

2,代表生活中的对象,生活中的对象在计算机中的抽象

通过抽象,我们就把现实中的对象,变成了计算机中的对象。 例如,我们对现实生活中的学生对象进行抽象,形成了计算机中的学生对象。抽象的时 候,保留了学生对象的这样几个属性:姓名、年龄和学生成绩。因此,对于一个计算机中的 学生对象而言,实际上就是在内存中的一块数据区域。这块区域中,有一个字符串,用来表 示姓名,有一个整数用来表示年龄,有一个 double 类型的数,用来表示学生的成绩。在内 存中的表示如下:

 

 

 

 

在内存中,我们分配出了一块数据区域,在这块区域中,包含了抽象出的学生对象的属 性。这些数据作为整体出现,代表生活中的学生对象。因此,从本质上说,计算机中的对象, 就是在内存中的一块数据区域。

通过把现实生活中的对象抽象成计算机中的对象,我们就可以在计算机世界中模拟出跟 现实世界中一样的面向对象的世界。这样,我们在进行编程的时候,就可以利用这种思想来解决问题。

 

四、面向对象的特点

1,各司其职

利用面向对象的思想,完成一个需求,可能会由多个对象共同参与。而组成系统的每个 6 对象,其功能应该单一。这就是对象的“各司其职”。

2,弱耦合性

弱耦合性指的是,让对象和对象之间的联系尽可能的弱。这样有什么优点呢?如果一个 对象跟周围的联系比较弱,那么这个对象就可以很容易的被替换。

3,可重用性

所谓的可重用性,指的是对于类似的功能,不同的系统可以重复使用相同的代码。这样, 有些通用的功能,程序员写了一遍之后,在遇到类似的功能之后,不需要从头开始开发,只 需要对这些通用的功能进行使用就可以了。

4,可扩展性

可扩展性指的是,在不修改原有系统的前提下,对系统的功能进行扩展。在面向过程的 编程方式中,如果要增加系统的功能,则大部分的过程就都必须要改变。

 

五、类的概念

1,对象共性的抽象

例如,现实生活中,存在许许多多的狗“对象”(小白、大黄、旺财、来福„„)。对于 一个不认识“狗”的婴儿来说,当他见到越来越多的狗对象之后,慢慢的就能逐渐总结出, 这一类对象的特点:四条腿,会吃会跑会叫,会摇尾巴„„于是,慢慢的,他就认识了狗。 也就是说,在他的脑子中,形成了“狗”这个概念,狗这个“类”就包含在他的脑子中了。 也就是说,当人面对大量的对象之后,慢慢的会把对象的共性进行抽象,从而形成了 “类”。换句话说,类是对客观事物的总结和抽象。

2,客观对象在人脑中的主观反映,类是人对对象的认识

与此同时,我们注意到,“类”是在人的脑子中形成的一个概念,也就是说,类是在人 脑子里的,而不是一种客观事物。我们可以认为,类就是客观事物在人脑中的反映。

3,类是对象的模板

而在计算机世界中,有另外一层含义:类能够作为创建对象的模板。也就是说,在计算 机中,如果定义了一个类,则可以利用这个类创建多个对象。

 

 


如上图所示,我们定义了一个 Student 类,规定了 Student 对象具有两个属性,String 类 型的姓名和 int 类型的年龄。之后创建四个对象,很显然,这些对象都是以 Student 类作为 模板建立起来的。

展开阅读全文

没有更多推荐了,返回首页