面向对象的三大特征简要说明 面向对象的基本理论类和对象

时间:2024-01-10 08:38:50/人气:174 ℃

我们先介绍基本的面向对象概念,具体的使用语法也就是定义的关键字后面会介绍 拉勾IT课小编为大家分解

前面我们简单介绍了面向对象和面向过程的思维方式不同,简单理解就是面向过程方式主要关心的是流程化,而面向对象方式主要是找参与者,也就是找类,类是面向对象中最基本的概念,是面向对象分析OOA和面向对象设计OOD的基石,另一个基石是对象。

类和对象其实分不开的关系,就像鸡和蛋的关系,无法具体知道哪个先产生。只是我们设计类的时候先定义类,所以我们先介绍类的概念

一、类

类是对象的模板,但是什么对象呢?这个我们留个花絮,在介绍对象之前我们先给类一个通俗的定义吧!

那就是多个相似事物的通称,是不是还有点难理解,那我就一个词一个词的解释一下。

多个这个词容易理解,就是有很多事物;单个事物不能形成类;

相似代表有相同的特征,但是也有不同的地方,比如: 张继科和林丹,他俩必定有相同的特征,都有鼻子眼睛嘴等等。但是也有不同的地方,比如他俩的身高体重等不一定完全相同, 他俩还有各自的功能,张继科打乒乓球的,林丹打羽毛球的。

这就是我们说相似而不是相同;

通称也比较好理解,还拿张继科和林丹举例子,他俩都可以统称为人类,但是不能说统称为张继科,张继科那就是具体的人了。按照上面的理解知道什么是类了吧。奥迪和宝马是不是一类呢,他俩都属于车,所以就是一个车类。

再比如波音和空机都统称为飞机,所以就是一个飞机类。我们再想一个问题,飞机和车是不是一个类呢,它俩都有发动机,可以统称为交通工具。说到这就有答案了,飞机和车是一个交通工具类。

说到这你可能就想到了所有的事物最终都可以有大的统称。那为啥还分那么多类呢,就设计一个大类呗。这就失去了面向对象思想的一个好处,可扩展性,举一个例子,如果只设计一个交通工具类,原先的需求就有飞机和汽车。

某天需要添加个轮船类呢,就要修改类的结构。反之只需要添加轮船类就好。通过上面的介绍,都知道类到底是个啥,设计类的时候按照具体的需求就好,需求和观察角度不同,设计出来的类可能都不同。

比如:设计一个交通工具类和设计一个汽车类都不一样。

我们上面是拿文字大概介绍的,拿张继科和林丹举例子他俩都有静态特性,是一个名词,比如年龄、性别等等。也还有动态的功能,是一个动词,比如都能打球、训练等等。

张继科和林丹不是类,是具体的个体,所以就需要抽取共同的部分抽取成人类。

可是对应到面向对象中咋设计一个类呢,分别用属性和方法表示,属性就是指静态特性,方法就是指动态的功能;简单判断标准就是名词是属性动词是方法。我们用一个程序看一下。

/** * 人类 */public class Person { //属性,人具有的特征 String name; //名字 int age; //年龄 float height; //身高 float weight; //体重 String gender; //性别 //方法,人具有的功能 //方法可以访问属性 public String getName() { return name; } public void playBall(){ System.out.println("打球!"); } public void train(){ System.out.println("训练!"); }} 上面的代码写出来我们并不能运行,一个类不能做事情,就比如一个人类能打球吗,显然不能,都是某个人能打球,所以我们需要一个类的实体来做事情。二、对象

接下来我们该介绍什么是对象了,上面我们说过类是对象的模板,类都知道是什么了。对应的模板都知道是什么吧,一个使物体成固定型状的模具;

比如做蛋糕,你可以拿一个模具,然后把做好的面糊倒在里面放入入微波炉制作,制作完成之后模具中就有了一个具体的蛋糕。这个蛋糕和模具的形状基本就是相同的。

对应到面向对象思想中,这个做出来的每个蛋糕就是一个个对象,这每个蛋糕放在一起就是一个统称蛋糕,这其实就是一个蛋糕类。

蛋糕类是抽象的,也就是没有具体的实体,只是通过这个蛋糕模板可以知道大概的形状而已,通过微波炉制作的过程对应程序中就是实例化。

另外对象和类其实是相对的概念,上面谈过观察角度不同,类的设计不同,这样的话对应的对象也不同。比如以车作为参照标准来说,车是一个类,具体的奥迪就是一个车的对象,它是一个车的具体品牌。

ok说到这我们要说一下类和对象的联系:现实对象(归纳概括)--->现实类(抽象模拟)--->软件类(实例化)--->软件对象--->程序

现实类和对象就是我们现实世界能看到的东西吗,软件类和软件对象就是软件设计和运行中产生的

我们对上面的类进行一下实例化,创建具体的对象,先用图展示一下

/** * 创建一个张继科的对象 */public class TestPerson { public static void main(String[] args) { //先创建一个具体的空人,也就是空对象 Person person=new Person(); person.name="张继科"; //设置名字为张继科 person.play();//调用人类的方法,这个名字为张继科在打球 }}

通过上面的介绍也就可以理解说:类是对象的抽象,对象是类的实例化了。那抽象是什么呢?抽象其实就是把像的部分抽取出来 ,而抽象的作用就是:隔离关注点,降低复杂度。就比如设计交通工具类,不划分类别的话,都集中在一起的话,那么我们的程序得多复杂凌乱。

推荐

  • 1王小慧人像摄影作品273
  • 2办公室装修合同协议书191
  • 3怎样写职工工作评语216
  • 4食药监管整治商业贿赂六重点460
  • 5红糖姜有什么作用和功效,红糖姜一天吃多少合适256
  • 6*********在复旦大学演讲稿317
  • 7枝头上的春天周记466
  • 8业界对杨紫的评价,对杨紫最真实的评价380
  • 9上海嘉定区离外滩远吗?嘉定新地标,上海的北欧381
  • 10老面馒头有几种做法:做了十多年老面馒头的师傅说漏了嘴185
  • 首页/电脑版/地图
    © 2024 OONiu.Com All Rights Reserved.