java数据抽象_理解Java中的抽象

2023-11-10

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

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

目录

什么是抽象

抽象的形式

如何在Java中使用抽象

什么是抽象

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

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

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

抽象的形式

通常抽象有两种形式:

1) 数据抽象

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

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

2)控制抽象

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

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

在Java中如何使用抽象

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

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

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

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

Happy Learning !!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java数据抽象_理解Java中的抽象 的相关文章

  • 细说单片机晶振电路中22pf或30pf电容的作用

    刚学单片机的学长告诉我单片机的晶振电路中就是用22pf或30pf的电容就行 听人劝吃饱饭吧 照着焊电路一切ok 从没想过为什么 知其所以然而不知其为什么所以然 真是悲哀 最近状态好像一直不太好 也难以说清楚为什么 前几天跟着老师去别的实验室
  • keil5安装到中文路径,导致软件、文件打不开,或打开文件为灰色,无法编译运行

    keil5安装到中文路径 导致软件 文件打不开 1 查看keil软件安装位置 1 1 win键 搜索keil 点击打开文件位置 1 2 鼠标右键 I 打开文件所在的位置 2 修改安装文件夹为英文名称 2 1找到中文名称文件夹 修改为英文名称
  • Shell遍历文件、文件夹/目录

    执行时需要输入 文件名 如果要输入文件就加 gt 文件名 如sh list sh home gt list txt 遍历文件夹 bin bash read dir for file in ls 1 do if d 1 file then e
  • mac【M1】安装虚拟机vmwarefusion+win11

    mac M1 安装虚拟机vmwarefusion win11 1 下载vmware fusion 2 下载win11的镜像 3 安装vmware fusion 4 打开后 选择镜像安装系统 5 设置1 6 设置2 7 设置3 8 设置4 1
  • js 复制图片至剪贴板(原生js,可复制word等、不可微信)

    copyChart 复制charts为图片 获取highcharts的svg图片 const img new Image img src 图片路径 将svg转化为canvas const canvas document createElem
  • Shell脚本实战之文件批量创建和修改

    Shell脚本实战之文件批量创建和修改 一 脚本要求 二 脚本内容 三 脚本运行结果 一 脚本要求 1 所有操作在 python下 2 批量创建12个以py后缀结尾的文件 文件名中必须包含 hcip 文件名除了 hcip固定字符串外 文件名
  • jdk安装与环境变量配置,看这篇就够了

    文章目录 场景 jdk 下载安装 如何环境变量的配置 总结 场景 在做 java 开发或者 android 开发 经常会碰到 jdk 安装与环境变量的配置 每次配置的时候 经常需要去查看一下 而且偶尔还会出现错误 这里就把这块详细的记录一下
  • (centos7-x86)编译安装zabbix6.0LTS+Mariadb10.5+Apache+php7.4【安装完整版】

    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix能监视各种网络参数 保证服务器系统的安全运营 并提供灵活的通知机制以让系统管理员快速定位 解决存在的各种问题 zabbix由2部分构成
  • 2023年软件测试职业发展趋势【附晋升路线】

    2023年就这么来啦 未来可期 你准备好了么 软件测试是个可以很快入门的职业 门坎不高 一般软件测试人员的起薪普遍比较高 而工作1 2年后 月薪达到10k 15k的比比皆是 另外还可享受带薪年假 内部培训 年终奖金等福利待遇 可以说跟开发人
  • 解决pycharm报错ModuleNotFoundError: No module named ‘selenium‘

    按照这篇博客安装了seleniu和Chromedriver后 在运行脚本时 报了如题的错误 意思是没有导入selenium模块 于是我有在cmd环境下输入检查命令 pip show selenium 重新检查了下 的确有安装 再检查下在py
  • 以太坊开发者工具的最新清单

    以太坊开发者工具的最新终极清单 用于在以太坊上开发应用程序的可用工具 组件 框架和平台的指南 对于任何开发者 无论你是一个睁大眼睛的Web3新手还是一个头发灰白的OG加密无政府主义技术霸主 Github都是你的朋友 特别是ConsenSys
  • 我将 ChatGPT 变成了每月的经常性收入

    这是您可以做同样的事情的方法 ChatGPT 很棒 毫无疑问 但更好的被动收入 将这 2 个坏男孩组合在一起 你就有了一个杀手组合 这正是我所做的 今天 我将解释如何 具体来说 我会告诉你 我做了什么把 ChatGPT 变成 MRR 我是怎
  • c++获取当前时间戳,单位是毫秒

    你可以使用 time h 中的 time 函数来获取当前的时间戳 它的返回值是从 1970 年 1 月 1 日 00 00 00 UTC 到现在的时间 以秒为单位 如果你需要以毫秒为单位的时间戳 你可以使用 time 函数的返回值除以 10
  • CentOS 8 官方正式发布了!

    CentOS 8 官方正式发布了 CentOS 完全遵守 Red Hat 的再发行政策 并且致力与上游产品在功能上完全兼容 CentOS 对组件的修改主要是去除 Red Hat 的商标及美工图 该版本还包含全新的 RHEL upstream
  • 数字序列的最大间隔(harsh)

    题目描述 题目描述 请输出数字序列的最大间隔 请使用以下伪随机数生成函数 rand32 生成伪随机数 int seed int rand return seed seed 214013L 2531011L gt gt 16 0x7fff i
  • 《积累》键盘keycode对照表

    字母和数字键的键码值 keyCode 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 L 76 U 85 3 51 D 68 M 77 V 86 4
  • Mybatis学习笔记6 模糊查询like

    1 模糊 like 模糊查询的实现有两种方式 一是java代码中给查询数据加上 二是在mapper文件sql语句的条件位置加上 需求 查询姓名有 王 的 1 1 java代码中提供要查询的 王 接口方法 List
  • Linux云计算薪资及发展前景,云计算Linux就业方向及前景分析 2019云计算行业发展现状及前景趋势分析...

    云计算 cloud computing 是一种基于因特网的超级计算模式 在远程的数据中心里 成千上万台电脑和服务器连接成一片电脑云 那么 今天我们就来说说云计算就业形势方向及前景和云计算行业发展现状及前景分析 云计算是未来的趋势 有了云平台
  • 迪杰斯特拉(Dijkstra)算法 Java实现(最短路径)

    基本思想 通过Dijkstra计算图G中的最短路径时 需要指定起点vs 即从顶点vs开始计算 此外 引进两个集合S和U S的作用是记录已求出最短路径的顶点 而U则是记录还未求出最短路径的顶点 以及该顶点到起点vs的距离 初始时 S中只有起点

随机推荐

  • [Wikioi 2808][NOIP 1998普及组]二的幂次方---HBNU的童鞋过来看看

    题目描述 Description 任何一个正整数都可以用2的幂次方表示 例如 137 2 7 2 3 2 0 同时约定次方用括号来表示 即a b可表示为a b 由此可知 137可表示为 2 7 2 3 2 0 进一步 7 2 2 2 2 0
  • python+selenium+Chrome options参数的使用

    Chrome Options常用的行为一般有以下几种 禁止图片和视频的加载 提升网页加载速度 添加代理 用于翻墙访问某些页面 或者应对IP访问频率限制的反爬技术 使用移动头 访问移动端的站点 一般这种站点的反爬技术比较薄弱 添加扩展 像正常
  • java-----基本类型包装类

    public class IntegerDemo public static void main String args Integer i1 new Integer 100 根据 int 创建Integer对象 过时 System out
  • Eclipse配置tomcat服务器

    1 首先下载tomcat 下载地址 http maven apache org 下载好后解压至本地磁盘根目录 我是解压至D盘根目录 2 打开Eclipse 进入Window gt Preferences 3 找到Server gt Runt
  • 教妹学Java(五):Java程序在编译和运行时发生了什么

    大家好 我是沉默王二 本篇文章通过我和三妹的对话来谈一谈 Java程序在编译和运行时发生了什么 没见过这么有趣的标题吧 语不惊人死不休 没错 本篇文章的标题就是这么酷炫 接受不了的同学就别点进来看了 所谓好奇心害死猫 能够接受的同学我只能说
  • exchange服务器保留邮件,Exchange服务器之Exchange备份单个用户邮件及清理邮箱数据...

    大家好 为了能够和有疑问的同行者及时沟通 我建立了一个群 615870353 我会免费更新行业信息 并回复大家提出的各种行业问题 问题 需要在Exchange服务器上导出一个用户的邮箱数据 然后再把这个人的邮箱数据清理了 但是不影响账户 方
  • case when then else end的用法

    主要分为两种 简单case函数和搜索case函数 简单case函数 case column when A then a when B then b else 0 end 搜索case函数 case when column A then a
  • 【千律】C++基础:类的构造函数和初始化

    include
  • EISeg——应用于语义分割的自动标注软件

    1 基本介绍 EISeg Efficient Interactive Segmentation 是以RITM及EdgeFlow算法为基础 基于飞桨开发的一个高效智能的交互式分割标注软件 涵盖了通用 人像 遥感 医疗等不同方向的高质量交互式分
  • VS Code配置matlab

    前言 matlab很好地集成了大量数学处理函数 甚至封装了包括信号处理 图像处理 神经网络等在内的方法 但matlab启动慢 没有代码补全 开发环境不友善等缺点常受人诟病 算法编写者往往需要进行大量重复动作 而VS Code是微软推出的一款
  • 独角兽趋势一次一单,这款策略简直让人惊艳,做单准确率高的让人难以置信

    EA类型 趋势独角兽EA 独角兽趋势一次一单可以分为一下几种 长线 中长线 突破型EA 趋势类EA基本都会有止盈止损 而且止盈必须大过止损 这样盈利空间才会大 而且仓位控制要小 单量不能过大 要控制盈亏比 与回撤风险 趋势交易会有很多人会把
  • 前端学习之原生JS实现siblings方法!

    html ul li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li li 1 li js var oli docum
  • Java并发总结之Java内存模型

    本文主要参考 深入理解Java虚拟机 和 Java并发编程的艺术 对Java内存模型进行简单总结 一 CPU和缓存一致性 1 CPU高速缓存 为了解决CPU处理速度和内存处理速度不对等的问题 就是在CPU和内存之间增加高速缓存 当程序在运行
  • 数据结构-满m叉树中编号为i的结点的双亲结点(若存在)的编号是多少

  • 均匀辐照度和局部遮光条件下光伏系统的新型样条-MPPT技术(Simulink)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真 Matlab代码 文献 1 概述 文献 光伏 PV
  • IHttpHandler和IHttpModule

    一 概述 NET Framework提供了一系列的接口和类 允许对Http请求进行自定义编程 而实现这一操作的主要接口 就是IHttpHandler和IHttpModule 所有的Http请求通过HttpHandler处理中心来处理的 用户
  • unity下载和安装

    unity下载和安装 1 下载unity安装包 unity官网下载 2 选择你需要的版本 这里我选择windows Unity Editor 64 bit版本 3 安装 4 安装完后 第一次启动Unity时弹窗 选择Install 5 然后
  • Docker基础命令(快速入门)

    这是一个关于docker的快速入门教程 仅包含了docker操作的基础命令 一 docker服务相关 docker 服务管理使用的是systemctl命令 Linux下的服务都可以按照以下方式进行管理 查看docker服务是否启动 syst
  • ProcessMaker学习笔记

    1 配置 入口 src workflow public html app php 安装路径配置 src workflow engine config paths installed php 数据库配置路径 src shared sites
  • java数据抽象_理解Java中的抽象

    在计算机科学中 抽象是一种过程 在这个过程中 数据和程序定义的形式与代表的内涵语言相似 同时隐藏了实现细节 抽象 一个概念或者想法不和任何特定的具体实例绑死 目录 什么是抽象 抽象的形式 如何在Java中使用抽象 什么是抽象 简单地说 抽象