java封装原则_跟我学java编程—理解Java面向对象的封装原则

前面一节内容讲到了抽象与对象,抽象是把同类事物的共同特征抽取出来归纳为类,类的具体实例为对象。例如:把具有汁液多、糖分多、含有挥发性芳香物质、可以生食等特征的事物归纳为水果类,苹果、葡萄、生梨则为水果类的具体示例对象。

在面向对象编程思想中,不仅把汁液多、糖分多、含有挥发性芳香物质、可以生食等的共同特征放到水果类里,同时也把水果的开花、落果、膨大、成熟等共同行为放到水果类里,这样水果类既包含了水果所具备的共同特征,也包含了开花、落果、膨大、成熟等共同行为。

当外部需要访问水果类时,调用水果类对外提供的访问方法来访问其共同特征和行为。例如:水果类提供了get方法来访问其属性(特征),提供了开花、落果、膨大、成熟等方法来访问其行为。同时通过Java关键字public、protected、private(在Java类一节会有详细介绍)设置水果类的访问权限。

由上面的内容可以看出,Java封装就是把现实世界同类事物的共同特征和行为抽取出来,放到一个新建的类中,并设置类属性(特征)和行为的访问权限,同时提供外部访问类属性和行为的方法。

把事物的属性和行为封装在一起,可以对外隐藏内部数据,控制用户对内部数据的修改和访问,封装也消除了面向过程编程中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性。

下面以水果类为案例,具体说明封装的过程和优点。

启动eclipse,建立Fruits项目。在Fruits项目src目录下新建包com.milihua.fruits,如下图所示:

07a10d6338b9bea8014844d23c746f99.png图 11-4 新建水果类项目

在com.milihua.fruits包下新建FruitManager类,FruitManager类为水果管理类,负责水果品种的增加、删除,以及水果的展示等功能。在新建类时要注意勾选public static void main(String[] args)选项,如下图所示:

在com.milihua.fruits包下新建类Fruits类,Fruits类为水果类,负责水果的创建和展示。水果类封装代码如下:

245d7fdf751b134df50fff8dd4990f5e.png

Fruits类的属性声明为私有的(private),方法声明为公共的(public)。这样,对象能够直接调用类中定义的所有方法,当对象要修改或得到自己属性的时候,就必须要调用已定义好的专用的方法才能实现。起到了隐藏内部数据,控制用户对内部数据修改和访问的作用。类的可复用性和可扩展性会在继承或多态一节讲到。

对于面向对象编程而言,需要掌握如下几点:

(1)抽象是把同类事物的共同特征抽取出来归纳为类,类的具体实例为对象。

(2)封装就是把抽取的事物属性和行为打包到一个类中,并隐藏内部数据和方法的实现过程。

(3)编程时要遵循对象调用方法,方法修改属性。

■ 知识点拨

从现实世界中封装一个类,就是根据具体的应用从同类型事物中抽取出共同的属性和方法。例如:封装水果类,将苹果、葡萄、生梨等事物的共同特征抽取出来,即汁液含量、糖分含量、芳香度等,只要是具有这些特征的,一般都归为水果类。

■ 思考与练习

请按照教材内容建立Fruits项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天桥调参师秘籍:一份深度学习超参微调技术指南

随着深度学习的兴起,越来越多的人从事算法工程师这一岗位。有时候他们自嘲自己为“天桥调参师”。当然,算法工程师的工作内容并没有那么简单,因为设置超参数的过程需要专业知识和广泛的试验和试错过程。尤其是针对学习率(learning…

Springboot集成axis1.4

文章目录1. 引入依赖2. Servlet3.接口4.实现类5.配置工厂6.启动类7. server-config.wsdd8. 访问1. 引入依赖 <!--axis start --><dependency><groupId>org.apache.axis</groupId><artifactId>axis</artifactId><version>1.4</ver…

疫情面前,医院是否需要数据中台?

来源 | 亲爱的数据&#xff08;ID&#xff1a;deardata&#xff09;作者&#xff1a;谭婧&#xff0c;虎嗅认证作者&#xff0c;《亲爱的数据》公众号出品人&#xff0c;香港浸会大学硕士&#xff0c;N年前高考作文满分得主。曾负责中国节能集团控股企业战略管理工作&#xff0…

【机器学习PAI实战】—— 玩转人工智能之综述

绪论 人工智能并非新的术语&#xff0c;这个概念由来已久&#xff0c;大约从80年代初开始&#xff0c;计算机科学家们开始设计可以学习和模仿人类行为的算法。人工智能的发展曲折向前&#xff0c;伴随着数据量的上涨、计算力的提升&#xff0c;机器学习的火热&#xff0c;以及…

一文纵览EMAS 到底内含多少阿里核心技术能力

EMAS的整体定位是阿里巴巴移动技术对外输出的主窗口&#xff0c;沉淀了阿里巴巴近10年在移动互联网技术架构上的积累以及在一系列垂直场景中所实践的核心技术能力。一方面&#xff0c;EMAS希望为广大开发者提供安全、稳定、快速、弹性的移动应用基础设施&#xff0c;另一方面也…

解决Windows中PLSQL连接虚拟机中Oracle缓慢的问题

文章目录1. 原因分析2. 解决方法1. 原因分析 Linux系统中的DNS解析在寻址的时候出现“错误”。这个跟我在用桥接模式连接网络的时候&#xff0c; 错误配置了“Network Configuration”中的DNS有关&#xff08;在用Bridged模式联网时&#xff0c;可以不 用配置DNS&#xff09;。…

万字长文!Unix和Linux你不知道的那些历史(详解版)

作者 | 程序员小乐来源 | 程序员小乐&#xff08;ID:study_tech&#xff09;00 前言 UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中&#xff0c;UNIX 诞生于 20 世纪 60 年代末&#xff0c;Windows 诞生于 20 世纪 80 年代中期&#xff0c;…

“阿里巴巴小程序繁星计划”:20亿扶持200万小程序开发者和100万商家

3月21日&#xff0c;在2019阿里云峰会北京站上&#xff0c;阿里巴巴旗下的阿里云、支付宝、淘宝、钉钉、高德等联合发布“阿里巴巴小程序繁星计划”&#xff1a;提供20亿元补贴&#xff0c;扶持200万小程序开发者、100万商家。凡入选“超星”的小程序&#xff0c;入驻支付宝、淘…

linux 如何搭建sftp服务器

sftp采用的是ssh加密隧道&#xff0c;安装性方面较ftp强&#xff0c;而且依赖的是系统自带的ssh服务&#xff0c;不像ftp还需要额外的进行安装 文章目录一、服务器搭建分配二、sftp服务器搭建1. 创建sftp组2. 用户组3. 绑定用户组4. 配置5. 目录权限6. 用户、用户组、权限7. 关…

只需10分钟!就能用Flask,Docker和Jenkins部署机器学习模型

在生产环境中部署机器学习模型是数据工程中经常被忽视的领域。网上的大多数教程/博客都侧重于构建、训练和调整机器学习模型。如果它不能用于实际的预测&#xff0c;那么它又有什么用呢&#xff1f; 接下来了解一下有哪些部署选项吧&#xff1a;评估选项 在生产中部署机器学习模…

刚发布!新型病毒下,程序员可在家免费学习了!

亲爱的CSDN家人们&#xff1a;疫情当前&#xff0c;这个春节有点“寒”。截止1月31号24时&#xff0c;新型冠状病毒在全国已确诊11791名&#xff08;数字取自&#xff1a;人民日报8:40分发布信息&#xff09;&#xff0c;疑似病例已1w&#xff0c;受其影响&#xff0c;全国各地…

阿里巴巴的微服务开源之路

2019阿里云峰会北京开发者专场 侠之大者&#xff0c;为国为民。 在金庸小说中&#xff0c;郭靖和黄蓉是“侠之大者&#xff0c;为国为民”的典范&#xff0c;他们以布衣之身帮助宋军守护襄阳十余年。 技术的世界里&#xff0c;并无大小之分。 但当一群程序员由服务公司内部…

一文纵览自然语言生成的发展

人们对人工智能的兴趣随着科幻电影的诞生和发展变得愈发浓厚。每当我们听到“人工智能”这个词&#xff0c;便会联想到《终结者》、《黑客帝国》、《我&#xff0c;机器人》等电影。 机器人具有独立思考的能力在目前看来还比较遥远&#xff0c;但机器学习和自然语言理解领域已经…

java生成html表格数据_使用Java将表格数据导出成Excel格式

前言&#xff1a;本文使用后台处理的办法导出前端表格中显示的数据。引入依赖org.apache.poipoi3.17书写PoiUtilspublic classPoiUtils {public static ResponseEntity exportExcel(List marketList) throwsIOException {HttpHeaders headersnull;//创建文档HSSFWorkbook workb…

基于机器学习场景,如何搭建特征数据管理中台?

「免费学习 60 节公开课&#xff1a;投票页面&#xff0c;点击讲师头像」作者 | 陈迪豪&#xff0c;第四范式资深架构师编辑 | Jane来源 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;一、机器学习场景与高性能特征管理中台理想的机器学习场景是给到数据&…

十年再出发!阿里云智能总裁张建锋演讲全记录

3月21日&#xff0c;“十年再出发”阿里云峰会于国家会议中心正式召开。阿里云智能总裁张建锋&#xff08;行癫&#xff09;携核心管理团队首次悉数亮相&#xff0c;并对阿里云做了全面的战略解读。以下是演讲全文。 张建锋&#xff1a;今天是我们阿里云智能升级之后第一次和大…

java简单题目_Java考点知识简单练习题

Java考点知识简单练习题Java 技术具有卓越的通用性、高效性、平台移植性和安全性&#xff0c;广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网&#xff0c;同时拥有全球最大的开发者专业社群。下面是小编为大家搜索整理的java考试强化训练题&#xff0c…

抗疫进展:多家科研机构联合筛选出五种可能有效的抗病毒药物

2月3日&#xff0c;华中科技大学同济医学院基础医学院、华中科技大学同济医学院附属武汉儿童医院、西安交通大学第一附属医院、中科院北京基因组研究所、华为云联合科研团队宣布&#xff0c;筛选出五种可能对2019新型冠状病毒&#xff08;2019-nCoV&#xff09;有效的抗病毒药物…

GAN的一些很酷的应用

在GAN发展的最初几年里&#xff0c;我们取得了令人瞩目的进展。当然&#xff0c;现在不会是像恐怖电影里那样有邮票大小的面部照片了。2017年&#xff0c;Gan制作了10241024张能愚弄人才童子军的照片。在未来几年&#xff0c;我们可能会看到GAN生成的高质量视频&#xff0c;由此…

java项目短信群发接口_JAVA实现第三方短信发送过程详解

想使代码生效需要注册&#xff1a;在muven项目里面导入jar包commons-codeccommons-codec1.4commons-httpclientcommons-httpclient3.1commons-loggingcommons-logging1.1.1org.apache.httpcomponentshttpclient4.3.1com.alibabadruid1.0.8com.alibabadruid1.0.8创建一个测试类&…