java中的封装、继承、多态可谓是踏入这一行业的必经之槛,诸多新人在不明就里的情况下将其各种概念背的是滚瓜烂熟。即便是工作多年之后,也不见得能说出个所以然,或许冥冥之中已经写过无数封装的代码,只是近在眼前人不识了。也正是鉴于此,趁着有所心得,螃蟹留个印记,供大家分享与指正。

既然作为一个安全系数很高的编程语言,内部结构及权限分配必然有着独到之处,就像是初来乍到就碰到的private、public、protected,一头雾水,虽然用几分钟时间弄的很明白,但以后的很长时间都是处于混乱状态,直到有一天彻底明白了各自的用途及意义,才不禁很满意的来上一句:擦,原来这么回事!

下面我们就通过一个场景看看封装有什么作用。

生活中我们经常见到各种管道,也经常见到换水管的维修工人,拿着图纸找到位置一阵忙活。水源自哪里他们可以不用关心,怎么能够将新旧管道对接才是手头的任务。而java中的封装也就类似于此,被封装的类或方法等你可以不用关心它是怎么实现的,即便你关心也没有用,能做的就是按它的要求使用它。就像我们按照协议组织了一个报文,就像我们通过一个指令调用了某一个表的数据,所有的实现过程都被掩盖了起来,而我们依然可以通过某些参数调用并返回我们想要的结果,这是不是像极了我们所说的接口?

看看微信开发平台,想想IOS客户端,这都是一些封装的例子。平时我们一谈起封装就会想起private的setter和getter,没错,这是最经典的一种实现,但如果我们的认识只局限于此,是不是真把java当咖啡了?

封装它是一种很美的结构体,它完全可以按照你的意愿来进行编写,如果你设置的权限足够小,它甚至不能生成API接口,javadoc那都是浮云?想想,假如有一个很大很成熟的系统,如果我们想借用它只能通过你封装的这一条路的时候,是不是很酷的感觉?

每当想起明天上班还要签到,对封装的抵触便油然而生。。。

作者专栏:java下午茶

首发地址:http://***/a/tea/2014/0709/141.html

转载于:https://www.cnblogs.com/itxxz/p/3834790.html

【java下午茶系列】java三重奏之封装相关推荐

  1. 跳槽者、应届生必看JAVA面试题系列 - JAVA基础知识(四)

    一: 前言 莫等闲,白了少年头,空悲切. 二: 面试挑战   在文章开始前,首先安利下"面试挑战": 凡是满足下面的挑战条件的,如果一个月内没有拿到一个Offer的,免费提供简历封 ...

  2. es文本分析java代码_Elasticsearch系列---Java客户端代码Demo

    前言 前面历经33篇内容的讲解,与ES的请求操作都是在Kibana平台上用Restful请求完成的,一直没发布Java或python的客户端代码,Restful才是运用.理解ES核心功能最直接的表达方 ...

  3. JAVA之JUC系列 - JAVA内存模型

    Java内存模型(简称JMM),定义了线程本地内存和主内存之间的关系,理解JMM的特性,对深入理解Java多线程中内存的可见性会有很大帮助.下面我们从并发编程模型中关注的两个问题说起. 一. 并发编程 ...

  4. 一文整理总结常见Java面试题系列——Java集合篇(2022最新版)

    关于作者

  5. java高并发系列 - 第1天:必须知道的几个概念

    java高并发系列-第1天:必须知道的几个概念 同步(Synchronous)和异步(Asynchronous) 同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后, ...

  6. 技术无价,“悟”有所值——UCan下午茶这一年

    UCan下午茶是UCloud于最近几年启动的系列技术沙龙.该沙龙不仅会分享UCloud最新的技术重点,同时也会诚邀业界相关方向的技术大咖一同交流.分享.诚意满满的干货.鲜活生动的案例内容,使每位参与者 ...

  7. Java学习星球,Java学习路线

    目录 一.Java学习路线 二.学习计划 三.为何会有Java学习星球? 四.加入星球后,你可以得到什么? 五.如何加入Java学习星球? 六.打卡挑战 大家好,我是哪吒,一个靠着热情攀登至C站巅峰的 ...

  8. Java 数据持久化系列之池化技术

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 在上一篇文章Java 数据持久化系列之JDBC中,我们了解到使用 ...

  9. 推荐:Java性能优化系列集锦

    Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...

最新文章

  1. 【实现手机端上滑滚动加载列表】判断页面是否滚动到底部或者指定元素位置
  2. 实战:使用OpenCV+Python+dlib为人脸生成口罩
  3. centos6 python 安装 sqlite 解决 No module named ‘_sqlite3′
  4. XMLIOC案例-编写spring的Ioc配置
  5. leetcode647. 回文子串(动态规划)
  6. 如何设计安全的用户登录功能
  7. 服务器搭建维护,服务器搭建维护方法
  8. Text Processing in Python
  9. java构造方法 隐含三步_Java入门总结--------类和对象关系以及构造方法
  10. 【spark】spark学习-27-Spark性能调优(2)
  11. erc20怎么查询代币交易记录_信用卡在pos机上刷卡手续费怎么算?信用卡刷卡记录如何查询?...
  12. 无限级分类递归法(超简单)
  13. ZeroC IceGrid介绍及demo构建(使用IceBox)
  14. DirectVobSub(VsFilter)的基本原理和实现实现
  15. Python编程:sh模块执行shell命令
  16. anaconda 重新安装
  17. PHP判断当前的设备是手机(Mobile)还是电脑(PC)
  18. 2021-05-30_蓝桥杯嵌入式拓展板STM32G431--光敏电阻
  19. 电脑上照片如何压缩大小?怎么把照片在线压缩?
  20. 读书笔记『Kotlin实战』

热门文章

  1. Ubuntu系统版本升级(提前版)
  2. Windows Phone 7 开发之:工具栏
  3. FPGA中状态机的稳定性
  4. python查看和更改当前工作目录
  5. pytorch使用mean降维打击
  6. 将matpoltlib绘制好的图片从内存中取出
  7. 清北学堂培训2019.4.7
  8. 使用Rekit开发可扩展的前端应用
  9. django性能优化缓存view详解
  10. copy()与deepcopy()