在计算机科学中,抽象是一种过程,在这个过程中,数据和程序定义的形式与代表的内涵语言相似,同时隐藏了实现细节。

抽象:一个概念或者想法不和任何特定的具体实例绑死。

目录

什么是抽象
抽象的形式
如何在Java中使用抽象

 

什么是抽象

简单地说:“抽象只从正确的角度,透露对象的某些相关细节。”

在面向对象编程理论中,抽象涉及到定义抽象对象的语言基础,它到底如何工作、如何获取和改变状态,并与系统中的其他对象进行“交流”。

抽象在任何编程语言中的许多方面起作用。从创建子程序到定义接口来,生成低级语言调用,例如设计模式。

抽象的形式

通常抽象有两种形式:

1) 数据抽象

数据抽象是创建复杂数据类型,只公开与数据类型交互有意义的操作,对外界隐藏了所有实现细节。

这种方法的好处包括随着时间的推移改进实现的能力,例如解决性能问题。其思想是,这些更改不应对客户机代码产生任何影响,因为它们不涉及抽象行为。

2) 控制抽象

软件本质上是用任何编程语言编写的大量语句的集合。大多数情况下,语句都是相似的,多次重复。

控制抽象是识别所有这些语句并将其作为一个工作单元展现的过程(提取方法)。当我们创建一个函数来执行任何工作时,我们通常就是在抽象。

Java中如何使用抽象

抽象是一种面向对象的编程实践的核心原则, Java具有所有OOPs原则,抽象是一个Java语言的主要构建块。

数据抽象的跨度从创建简单的数据对象集合的实现复杂如HashMap或HashSet。类似地,从定义简单的函数调用到完整的开源框架,可以看到控制抽象。控制抽象是结构化编程背后主要驱动力。

Java关于抽象最常被讨论的是abstract类和interfaces

如果您想了解更多关于Java的抽象类和接口,请参阅我的下篇文章。

Happy Learning !!

理解Java中的抽象的更多相关文章

  1. 深入理解Java中的IO

    深入理解Java中的IO 引言:     对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务 < Thinking in Java >   本文的目录视图如下: ...

  2. 十分钟理解Java中的动态代理

    十分钟理解 Java 中的动态代理   一.概述 1. 什么是代理 我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品.关于微商代理,首先我们从他们那里买东西时通常不知道 ...

  3. 【Java】深入理解Java中的spi机制

    深入理解Java中的spi机制 SPI全名为Service Provider Interface是JDK内置的一种服务提供发现机制,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用 ...

  4. 理解Java中的弱引用(Weak Reference)

    本篇文章尝试从What.Why.How这三个角度来探索Java中的弱引用,理解Java中弱引用的定义.基本使用场景和使用方法.由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出, ...

  5. 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因

    声明:本博客为原创博客,未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(原文链接为http://blog.csdn.net/bettarwang/article/det ...

  6. [译]线程生命周期-理解Java中的线程状态

    线程生命周期-理解Java中的线程状态 在多线程编程环境下,理解线程生命周期和线程状态非常重要. 在上一篇教程中,我们已经学习了如何创建java线程:实现Runnable接口或者成为Thread的子类 ...

  7. 深入理解Java中的不可变对象

    深入理解Java中的不可变对象 不可变对象想必大部分朋友都不陌生,大家在平时写代码的过程中100%会使用到不可变对象,比如最常见的String对象.包装器对象等,那么到底为何Java语言要这么设计,真 ...

  8. 理解Java中的ThreadLocal

    提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和 ...

  9. 深入理解Java中配置环境变量

    深入理解Java中配置环境变量 配置的目的: 本来只在安装JDK的bin目下能运行java.exe,javac.exe,jar.exe,javadoc.exe等Java开发工具包命令,我们现在想让在所 ...

随机推荐

  1. 函数, lambda表达式

    函数 函数:简单的理解,就是一次执行很多行代码 函数的返回值 函数的参数,和变量没区别 例: def hello(): print "hello world" hello() he ...

  2. mina.net 梳理

    LZ最近离职,闲着也是闲着,打算梳理下 公司做的是电商,CTO打算把2.0系统用java 语言开发,LZ目前不打算做java,所以 选择离职.离职前,在公司负责的最后一个项目 供应链系统. 系统分为 ...

  3. JavaFx自定义Tab-Order

    title: JavaFx自定义Tab-Order Tab-order是什么?在界面上当你按tab键触发焦点转移的功能,这就是tab order.但是Javafx有个缺陷就是不方便自己设置tab-or ...

  4. Gartner:当商业智能成熟度低时,如何加快分析采用率

    文 | 水手哥 本文出自:知乎专栏<帆软数据应用研究院>--数据干货&资讯集中地 根据Gartner近7年的调查结果,71%的受访企业处于低成熟度阶段,也就是Gartner五级BI ...

  5. 堆和栈(java内存)

    栈内存: 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为 ...

  6. 用ArrayList(解决约瑟夫问题)

    约瑟夫问题(Josephus problem)又称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,约瑟夫问题类似问题又称为约瑟夫环."丢手绢问题". 据 ...

  7. Archive for required library:xxxxx/spring-beans-3.2.4.RELEASE.jar in project XXXXX cannot be read or is not a valid ZIP file

    今天在导入maven项目的时候在problems视图中报错: Archive for required library:xxxxx/spring-beans-3.2.4.RELEASE.jar in ...

  8. .Net程序员学用Oracle系列(26):PLSQL 之类型、变量和结构

    1.类型 1.1.属性类型 1.2.记录类型 2.变量 2.1.变量类型 2.2.变量定义 2.3.变量赋值 3.结构 3.1.顺序结构 3.2.选择结构 3.3.循环结构 4.总结 1.类型 在&l ...

  9. 使用java对文件批量重命名

    有时候从网络上下载的电视剧或者动漫,名字上都会被该网站加上前缀或者后缀,如图: 那么处女座的同学就不同意了,不行,我就是想让它按照我的习惯方式命名!但是呢,一个个修改是不是特别麻烦,如果是上百个呢?如 ...

  10. 学生成绩管理C语言版

    [标题]学生成绩管理的设计与实现 [开发语言]C语言 [概要设计]使用结构体存储学生的学号.姓名和成绩信息,实现对学生成绩类的基本操作:增加.删除.查询.排序 [测试数据]按提示输入5组正确的正确的数 ...