java实现封装的三部_Java 封装

Java 封装

在面向对象程式设计方法中,封装(英语: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

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

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

相关文章

小猪短租超棒新房_freeCodeCamp讲座简介:您可以免费观看的超棒技术讲座

小猪短租超棒新房by Quincy Larson昆西拉尔森(Quincy Larson) freeCodeCamp讲座简介:您可以免费观看的超棒技术讲座 (Introducing freeCodeCamp Talks: awesome tech talks you can watch for free) Developers give thousands of tech talks every year at confer…

安卓10不支持qmc解码_官宣:安卓10已发布!21款手机已适配,小米华为率先支持...

随着今天凌晨谷歌 I/O 大会的召开,Android Q 也就是安卓10正式官宣,新版的安卓10加入了诸多新手势,从 Home 键设计上看,安卓10 的新版手势很大程度上有疑似借鉴 iOS 的手势,底部一个长条,作为 Home 用来返回…

linux系统编程之进程(七):system()函数使用【转】

本文转载自:http://www.cnblogs.com/mickole/p/3187974.html 一,system()理解 功能:system()函数调用“/bin/sh -c command”执行特定的命令,阻塞当前进程直到command命令执行完毕 原型: int system(const char *comma…

安装了最新版本的java 用友nc打不开_NC无法安装客户端插件,不能进入用友NC系统登陆界面...

NC无法安装客户端插件,不能进入用友NC系统登陆界面问题现象现象1:可以打开web界面,但无法进入登陆界面,一直停留在右图所示界面。现象2:系统提示安全警告问题原因在使用IE首次登录NC系统时,系统会自动下载N…

汉王云名片识别(SM)组件开发详解

大家好,最近在DeviceOne平台上做了一个汉王云名片识别的功能组件。下面把我开发过程给大家做一个分享,希望可以帮助到大家。 下面我把我的思路给大家讲解一下。1.找到我要集成的sdk,也就是汉王云名片的sdk下载(android和ios&#…

[App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论

您可以查看 App 的总评分或单个顾客评论。如有必要,您可以针对某条评论报告问题。 【注】顾客可以为您的 iOS 和 macOS App 评分并撰写评论,但只能为 Apple TVOS App 评分。 必要职能:“帐户持有人”职能、“管理”职能、“App 管理”职能、“…

visio studio json工具_《产品经理入门指南》彩蛋2:别技淫原型图!你的Visio和Balsamiq Mockup入门了吗?...

温馨提示:如果你有关于产品经理方面的任何问题,欢迎关注我的微信公众号与我互动。最新的免费系统的产品经理课程《老司机带你做产品》已经推出,请关注微信公众号:iamliuwenzhi很多产品新人刚开始工作时,喜欢一拿到需求…

渐进式web应用程序_通过渐进式Web应用程序吸引用户并增强他们的体验

渐进式web应用程序by Dave Gray戴夫格雷(Dave Gray) 通过渐进式Web应用程序吸引用户并增强他们的体验 (Engage your users and enhance their experience with Progressive Web Apps) 什么是渐进式Web应用程序? (What is a Progressive Web App?) A Progressive W…

mysql牵引例子_MySQL学习06(事务和索引)

事务概述什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的ACID原则原子性(Atomic)整个事务中的所有操作,要么全部完成,要么全部不完成&#…

android操作系统 真的吗_旋挖机培训学校真的能学会吗,旋挖钻机到底有哪些操作系统...

旋挖机培训学校真的能学会吗添加微:yywyyc 旋挖钻机到底有哪些操作系统【前言】很多使用旋挖钻机或者想要了解旋挖钻机的工程公司可能不是特别了解旋挖钻机本身的系统以及部件,本篇文章针对旋挖钻机的操作系统来给大家介绍一下,让大家了…

WebAPI 2参数绑定方法

简单类型参数 Example 1: Sending a simple parameter in the Url [RoutePrefix("api/values")] public class ValuesController : ApiController {// http://localhost:49407/api/values/example1?id2[Route("example1")][HttpGet]public string Get(int…

推荐几个自己经常去的一些博客和网站

唐巧的技术博客objc中国Ray WenderlichCocoaDocs.orgNSHipsterLukes HomepageCocoabit | 做自己喜欢的事情转载于:https://www.cnblogs.com/faceup/p/10423259.html

创建hugo博客_Hugo + Firebase:如何在几分钟内免费创建自己的静态网站

创建hugo博客by Aravind Putrevu通过Aravind Putrevu Hugo Firebase:如何在几分钟内免费创建自己的静态网站 (Hugo Firebase: How to create your own static website for free in minutes) Ever thought of having your own website for putting up your projec…

探测与响应是各企业机构在2017年的首要安全事务

作者系:Gartner首席研究分析师 Sid Deshpande &Gartner研究总监 Lawrence Pingree 2017年,各个企业正在改变其安全支出战略,从仅注重防御转而更加关心探测和响应程度。2017年的全球信息安全支出预计将达到900亿美元,相较2016年…

java怎么引入html文件路径_如何在public_html中读取文件但在域外?使用相对路径...

我正在尝试从我的(附加组件)域目录之外的目录中读取文件 . 这是我的目录结构:public_html /domain /file_read.phpfile_write.phpsensitive /file.dat虽然我能够使用“../sensitive/file.dat”写入敏感,但我无法使用相同的方法进行读取 . 有什么想法吗&a…

JS基本概念(3)

【5】操作符 (1)一元操作符:只能操作一个值的操作符 递增、递减操作符a --a 前置    a a-- 后置(这四个操作符对任何值都适用,不能转换成数字的转换为NaN) 一元加、一元减操作符&#xff0…

csv文件怎么转成excel_Java读写excel,excel转成json写入磁盘文件

pom读写excel主要的dependency<dependency> <groupId>org.apache.poigroupId> <artifactId>poiartifactId> <version>3.16version> dependency> <dependency> <groupId>org.apache.poigroupId> …

如何用Ant Design Pro框架做项目省力

1、熟悉React所有语法&#xff0c;以及redux、redux-saga、dva、一类的库的能力 2、灵活运用该框架提供的基础UI组件&#xff0c;想方设法利用现有的UI组件进行组合&#xff0c;尽可能减少工作量 转载于:https://www.cnblogs.com/ww01/p/10430553.html

通过在Chipotle用餐了解模板方法设计模式

by Sihui Huang黄思慧 通过在Chipotle用餐了解模板方法设计模式 (Understanding the Template Method design pattern by eating at Chipotle) Object-Oriented Design Patterns in Life— gain an intuitive understanding of OO design patterns by linking them with real-…

Coriant助力Aureon部署100Gbps光纤网络

根据相关消息显示&#xff0c;光传输设备厂商Coriant日前表示已经向网络传输和业务通信服务供应商Aureon Technology提供了7100纳米分组光传输平台&#xff0c;帮助其进行100Gbps光纤网络的拓展。 该服务供应商&#xff08;Aureon&#xff09;将利用该分组光传输系统&#xff0…