面向对象初体验(类和对象)

了解面向对象我们先来看几个示例:

(1) 汽车开发示例:类对象


    我们从汽车开发示例可以看出,两种不同的思想

    一种是面向过程:是一种思想

    一种是面向对象:也是一种思想

(2) 软件开发示例:类和对象

    面向对象和面向过程都是软件开发的一种编程思想,要真正的理解一种编程思想,或者说应用在实际的开发设计中,并不是看几本书,听我说几句就能搞定的事情,需要先了解,在实际开发中应用,这样不断的思考分析、积累,从而达到理解。

    举个事例,现在我手上接了一个500W的项目,接下来我需要完成这个项目,现在我有两个选择:第一是自己一人开发;第二是组建团队或者说外包。

第一,自己一个人独立开发

那么我需要做的事情可能就包括了:需求搜集、分析,原型设计,项目架构设计,编码实现,项目测试,项目实施等等。其中每一件事情都必须亲力亲为,感觉心里倒也踏实,不过这个过程可能是这样:


1. 哈哈,接了个单高高兴兴敲代码!!


2. 丫,咋还出bug了呢,纳尼。。。


3. 不会吧,我都调试3个通宵了。。。


4. 糟糕,我要崩溃了,。。。


5. 算了,我想睡一会儿(安息吧!)


第二,组建团队开发

    有了自己的团队之后,就可以不用再陪客户喝茶、聊天、吃饭、睡觉,洗脚(售前售后);不用再排异常、找bug、调网络(攻城狮);不用再反复修改设计方案版本(射鸡湿)。那么我现在做什么呢?当然是数钱啦!

    其实我现在做的就是管理好我的团队,分配好任务,控制项目进度等,在整个过程中充当指挥者的角色。

    上面的两个事例第一种是面向过程的做事方式,第二种是面向对象的做事方式。

(3) 示例:学生管理软件开发分析

    设想我们学生信息需要管理的信息需要什么:

    ① 姓名:

    ② 年龄:

    ③ 电话:

    ④ .......

现在模拟一种场景:现实的世界和虚拟的世界:理解类和对象

① 比如现实生活中:管理学生信息,设想计算机系统如何管理学生信息

    1) 设计纸质模板,用于填写学生信息的模板

    2) 复制模板:填写具体的学生信息

② 设想计算机系统应该怎么做

    1) 应该设计一个模板,用于填写学生信息的模板

    2) 复制模板:填写具体的学生信息

现实生活中管理与系统中管理区别


①现实生活中:比如收集学生的情况,如果通过每个人来填写,使用纸质文件保存,不方便,

    查找不方便,纸质容丢。

② 系统中管理:数据安全,不容易丢失,保存方法

    系统数据基本设计

所以需要做一个系统,我们需要做什么事情:模拟现实社会中现象

1) 先写一个模板--->需要一个类;

2) 然后录入人的信息--->对象;

系统设计类与对象的认识

现实生活中

1) 现实生活中,做一个纸质模板:目标是为了统计某一类事物的数据,录入学生信息模板,主要   为了统计学生信息

理解:学生信息纸质模板,没填写任何数据,描述学生这一类事物!是一个类

2) 现实生活中,复制纸质模板,得到独立的崭新的一份,填写具体的信息,该复制的模板填写了 具体的信息,描述了一个具体的信息

理解:学生纸质模板,填写了具体的信息,描述的是一个具体的学生,是一个对象

① 虚拟世界中

1) 需要个模板,一个类,用来描述一类事物

2) 可以复制该模板,填写具体的信息,用来描述具体的一个事物

② 再次强化类和对象的概念

1) [类]:就是一个类事物:是不具体的:是类

2) [对象]:就是一个具体的学生,是具体的:是对象


(4) 分析java语言设计:需要类和对象

①类和对象的理解

    什么是类?

    类:是指描述一类事物,或者看成是一个分类,例如人类、车类、星球类, 等等;

    什么是对象?

    对象:是指具体的个体(也叫实例-instance),   例如马云、王石、老郑、马云的迈巴赫、王石的切诺基、老谭的二八自行车、地球、火星等等。类和对象的关系请看下面的图例:



类【模板】----》【复制模板】对象

java语言世界:万事万物皆对象

java世界,万事万物皆可分类【因为一个具体的对象,必然来自于一类事物】

(5) java语言的设计思想

Java语言设计的思想,希望将现实生活中,对象与对象之间的关系在计算机系统得以体现

    构建计算机系统,  用的对象! 

总结:面向对象的编程思想

现实世界中,随处可见的一个事物就是对象,对象是事物存在的实体,如人类、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象所属于的某一类事物都是由哪些部分组成的。

通常都会将对象划分为两个部分,即动态部分【行为】与静态部分[描述]。

静态部分:顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。

动态部分:然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分)。

java语言:也就是设计类—>创建对象--->使用对象

你可能感兴趣的:(面向对象初体验(类和对象))