面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

实例

让我们来看一个java封装类的例子:

/* 文件名: EncapTest.java */
public class EncapTest{private String name;private String idNum;private int age;public int getAge(){return age;}public String getName(){return name;}public String getIdNum(){return idNum;}public void setAge( int newAge){age = newAge;}public void setName(String newName){name = newName;}public void setIdNum( String newId){idNum = newId;}
}

以上实例中public方法是外部类访问该类成员变量的入口。

通常情况下,这些方法被称为getter和setter方法。

因此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。

通过如下的例子说明EncapTest类的变量怎样被访问:

/* F文件名 : RunEncap.java */
public class RunEncap{public static void main(String args[]){EncapTest encap = new EncapTest();encap.setName("James");encap.setAge(20);encap.setIdNum("12343ms");System.out.print("Name : " + encap.getName()+ " Age : "+ encap.getAge());}
}

以上代码编译运行结果如下:

Name : James Age : 20

java 面向对象编程之二相关推荐

  1. Java面向对象编程之继承练习题(三)

    作业1 写一个Person类,有编号id,姓名name,职位job. 构造方法带三个参数. 方法: 登陆login 注册register 自我介绍talk 写一个学生Student类继承Person类 ...

  2. 【历史上的今天】5 月 17 日:面向对象编程之父出生;国内全面接入互联网;惠普收购 Cray

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 5 月 17 日,在 1969 年的今天,国际电信联盟第二十四届行政理事会正式通过决议,决定把国际电 ...

  3. 【C语言】C语言实现面向对象编程之封装

    00. 目录 文章目录 00. 目录 01. 前言 02. 简单程序示例 03. 程序示例优化 04. 总结 05. 参考 01. 前言 面向对象编程(OOP)并不是一种特定的语言或者工具,它只是一种 ...

  4. 【SAP PO】SAP PO 接口配置完整教程之二REST服务对接

    SAP PO 接口配置完整教程之二REST服务对接 1.了解服务协议 1.1.服务通讯协议 1.2.具体接口协议 1.3.接口服务测试 2.PO端接口配置 2.1.PO端ESR配置 2.2.PO端IB ...

  5. 面向对象编程之继承、多态、封装、抽象类、接口、包-上

    面向对象编程之继承.多态.封装.抽象类.接口.包-上 继承 类的继承格式 为什么要继承 继承的特点 继承的种类及关键字 访问权限 多态 向上转型 动态绑定 方法重写 重写和重载的区别比较 多态的优点 ...

  6. Python基础-面向对象编程之特性(property)

    Python基础-面向对象编程之特性property Python面向对象编程之特性(property) 一.统一访问原则 二.使用特性进行拦截操作 三.老式写法 Python面向对象编程之特性(pr ...

  7. C语言--面向对象编程之继承

    系列文章目录 C语言实现面向对象编程的第二篇,在第一篇里面我们已经了解到了何为面向对象以及实现面向对象的第一大特性–封装,对于C来说,实现继承和多态要稍微麻烦一些. C语言实现面向对象- - 封装 C ...

  8. C语言--面向对象编程之多态

    系列文章目录 C语言–面向对象编程之封装 C语言–面向对象编程之继承 文章目录 系列文章目录 前言 一.多态是什么? 二.C语言实现多态 1.多态基本实现原理 2.一个简单的demo 3.简要分析 三 ...

  9. java ug二次开发_使用Java进行UG二次开发:简单的例子(上) | 学步园

    最近因为要进行TeamCenter二次开发(胖客户端定制),所有要开始研究Java了.因此突发奇想为什么不能使用Java进行二次开发呢?现在对UG进行的开发以C/C++应用为主.大多数使用的是原来的U ...

最新文章

  1. js数组与字符串的相互转换方法
  2. translate动画
  3. 工具栏(UIToolbar)
  4. 【Python】实例3:天天向上的力量与微实例:星期转换、恺撒密码
  5. windows 10字体突然变小变细,模糊
  6. 案例——蚂蚁金服初探,唯一的金融互联网生态...
  7. 使用C2Prog烧写程序
  8. 通用路由封装协议--GRE的简单配置
  9. 谁来PK“baidu局域网”
  10. java 数组的class_Java Class isArray()方法
  11. JavaScript交互式网页设计 • 【第3章 JavaScript浏览器对象模型】
  12. Linux之安全最佳做法(未完成)
  13. 目标检测, 实例分割, 图像分类, panoptic segmentation文献
  14. parametrize参数化中使用skip标记
  15. div失去焦点事件onblur()不触发解决方法
  16. Vue 前端导出Excel表格,多级表头合并
  17. PAT_乙级1014
  18. Red Hat Enterprise Linux 8.8 正式版
  19. 十年阿里资深架构师教你如何做到年薪50万的程序员(文末附送学习资料)
  20. php提示Warning:mysql_fetch_array() expects的解决方法

热门文章

  1. 【精】【PDF链接转图片】- Java用pdfbox将PDF的URL转换并压缩成图片,解决“口口口”乱码问题
  2. 三星S9勃艮第红如何为女人打造“第四维”魅力?
  3. DES加密与解密代码
  4. 基于jsoup的Element实现将树形结构转换成XML格式
  5. 计算机网络基础面试题笔记
  6. Devexpress gridview奇偶列样式区分颜色处理
  7. 找不到 Web 地址对应的网页:_Web服务器的配置与管理
  8. 看完本篇,让你花最短的时间搞懂二极管钳位电路!
  9. 搭建ZeroTier的Moon服务器
  10. PCB设计常见问题1-20例