当前位置:首页 > Java技术 > java编程思想之对象导论

java编程思想之对象导论

2022年11月09日 13:47:24Java技术10

一、抽象过程

程序员必须建立起在机器模型和实际待解决问题的模型之间的关联

抽象的本质应该是建立在具体的问题上,而不应该是基于计算机的结构上的。

第一个成功的面向对象的语言是:Smalltalk,那么他的五个基本特征是

1).万物皆为对象。理论上讲,你可以抽取待解决问题的任何概念化构件将其表示为程序中的对象;它可以存储数据,除此之外它还可以执行自身的操作。

2).程序是对象的集合,它们通过发送消息来告知彼此所要做的。通过消息进行调用对象的执行

3).每个对象都有自己的由其他对象所构成的存储。

4).每个对象都拥有其类型。每个对象都是一个类的实例

5).某一特定类型的所有对象都可以接收同样的消息。

对象的描述:对象具有状态、行为、标识。这意味着每一个对象都拥有内部数据和方法,并且每一个对象都可以唯一的与其他的对象区分开来,具体的说就是对象在内存中都拥有一个唯一的地址。

二、每个对象都有一个接口

  类的由来:在程序执行过程中具有不同的状态而其他方面都相似的对象会被分组到对象的类中。

  因为类描述了具有相同特性和行为的对象的集合,所以一个类实际上是一个数据类型,在计算机看来,它和内置的对象如浮点类型的数据类似,系统都会欣然接受他的存在,并且象对待内置对象那样对它进行内存的分配和类型检查。它们唯一的区别在于:程序员通过定义类来适应问题,而不用再为了适应系统使用系统提供的表示机器中的存储单元的数据类型。

  对象是用来执行任务的,所以当有请求过来时,定义的对象需要满足这些请求,这些请求由对象的接口定义产生,并且在程序中由具体的方法的实现。从这里可以解决的问题是:一个请求对应一个方法,当向对象请求时与之对应的方法会被调用,然后执行相对应的代码程序。

总结一下:通俗的讲,这里的一个对象都有一个接口的意思是每一个对象都是要执行一系列的请求的,这些请求的产生是在接口中定义的(这里所说的请求指的就是方法),当然还需要有实现接口中定义的方法的代码。

三、每个对象都提供服务

  每个对象都提供一定的服务,我们的目标就是能够提供理想的服务来解决问题的一系列的对象

  同时将对象称为“服务提供者”还可以很好的提高代码的内聚性,因为每个对象都有自己需要完成的任务,当一个对象中需要完成的任务如果过多的话就会出现这个对象特别的庞杂,所以一般情况下是每一个对象都可以很好的完成一项任务,他不尝试做更多的事,这是一种很好的代码风格,同时也提高了代码的可复用性。

四、被隐藏的具体实现

  java中存在一种保护机制,隐藏实现细节,对外只提供访问的接口,即存在访问控制。

  访问控制的原因有二:其一,访问控制可以保证数据内部的安全性,不能有任何人去随意改变他们不可以修改的地方;其二,当内部实现修改时,只要对外提供的接口不改变时,就不会产生什么影响(前提是你的实现和接口是分离的)。

  java提供了三种关键字来实现访问控制,private(类内部)、protected(继承关系内部可以访问)、public(所有的想访问的都可以访问),  还有一种是省略的包访问控制。

五、复用具体实现

  面向对象的一大优点是实现代码的复用,简单的复用一个类的方式就是使用该类的对象,另外,我们还可以将某个对象内置于某个类中,称为该类的一个成员变量。新的类中可以由任意数量、任意类型的其他的对象组成,这样的使用现有的类合成新的类的方式被称为组合。组合是'has-a'关系。如果组合是动态生成的那么称为聚合。

  组合在uml图中的表示方式是实心的菱形加一个箭头。如果在相同的情况下我们使用组合和继承都能达到代码复用的效果,那么我们最好还是使用组合,继承存在一定的不安全性。

六、继承

  

 

  

来源链接:https://www.cnblogs.com/future-liu1121/p/7702037.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68898.html

分享给朋友:

“java编程思想之对象导论” 的相关文章

初探设计:Java继承何时用?怎么用?

初探设计:Java继承何时用?怎么用?

Writer      :BYSocket(泥沙砖瓦浆木匠) 一、回顾继承 常见的如下: 1、依赖(”uses-a“) 2、聚合(”has-a“) 3、继承(”is-a“)类...

图解 Java IO : 二、FilenameFilter源码

图解 Java IO : 二、FilenameFilter源码

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆  &...

Java 基础之详解 Java IO

Java 基础之详解 Java IO

Java IO 基本概念 Java IO:即 Java 输入 / 输出系统。 区分 Java 的输入和输出:把自己当成程序, 当你从外边读数据到自己这里就用输入(InputStream/Reader), 向外边写数据就用输出(OutputStream/Writer)。...

【JAVA】浅谈java枚举类

【JAVA】浅谈java枚举类

一、什么情况下使用枚举类?   有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二、为什么不用静态常量来替代枚举类呢? public static final int SEASON_SPRING = 1; publi...

JavaWeb(一)之细说Servlet

JavaWeb(一)之细说Servlet

前言   其实javaWeb的知识早就学过了,可是因为现在在搞大数据开发,所以web的知识都忘记了。准备开始慢慢的把Web的知识一点一点的回忆起来,多学一点没有关系,就怕到时候要用的话,什么都不会了。 一、Servlet概述 1.1、Servlet简介   Se...

java synchronized详解

记下来,很重要。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个synchronized(this)同...

Java 基础【06】 Super 用法

     路漫漫其修远兮,吾将上下而求索。——屈原《离骚》      昨天写this用法总结的时候,突然产生了一个问题,请教别人之后,有了自己的一点认识。还是把它写下来,为大家更好的认识提供一点思路。 1)有人写了...

Java Ant build.xml详解

1,什么是ant ant是构建工具 2,什么是构建 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3,ant的好处 跨平台   --因为ant是使用java实现的,所以它跨平台 使用...

浅谈Java中的hashcode方法

 浅谈Java中的hashcode方法   哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法: public native int hashCode();   根据这个...

【java】浅谈java内部类

【java】浅谈java内部类

最近在阅读《java核心技术 卷1》,对java内部类的基础知识梳理总结了一下,写下这篇文章和大家交流 前言 说到java内部类,想必大家首先会想到比较常用的“匿名内部类”,但实际上,这只是内部类的其中一种使用方式而已。内部类的使用方式实际...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。