当前位置: 首页 > wzjs >正文

建站工具 ip知名设计公司logo

建站工具 ip,知名设计公司logo,外汇直播室都是网站做的,福州seo关键字推广封装(Encapsulation) 1. 什么是封装? 封装(Encapsulation)是面向对象编程(OOP)中的一个重要特性。它指的是将对象的属性和行为封装在一个类中,并提供访问控制机制,防止…

封装(Encapsulation)

1. 什么是封装?

封装(Encapsulation)是面向对象编程(OOP)中的一个重要特性。它指的是将对象的属性和行为封装在一个类中,并提供访问控制机制,防止外部直接访问对象的内部数据,而是通过**公共方法(getter 和 setter)**来访问和修改数据。

封装的核心思想:

  • 隐藏对象的实现细节,只暴露必要的接口。

  • 控制数据的访问权限,防止外部程序对对象的数据进行非法操作。

  • 提高代码的可维护性和安全性


2. 封装的实现方式

封装通常通过以下方式来实现:

  1. 使用 private 关键字修饰成员变量,限制外部直接访问。

  2. 提供 public 关键字的 getter 和 setter 方法,让外部可以通过这些方法访问和修改变量。

  3. 在 setter 方法中添加逻辑,确保数据的安全性。

  4. 可以使用 protecteddefault(不写修饰符)来设置不同级别的访问权限。


3. 访问修饰符

访问修饰符当前类同包子类同包非子类其他包子类其他包非子类
private
default
protected
public
  • private:只能在当前类中访问。

  • default(默认权限):同包内可访问。

  • protected同包其他包的子类可访问。

  • public:任何地方都可以访问。


4. 封装的示例

下面是一个使用封装的示例,展示如何通过 getter 和 setter 方法来访问 private 变量。

// 定义一个 Person 类,使用封装
public class Person {// 私有成员变量private String name;private int age;// 构造方法public Person(String name, int age) {this.name = name;this.setAge(age); // 使用 setter 进行赋值}// getter 方法 - 获取 namepublic String getName() {return name;}// setter 方法 - 设置 namepublic void setName(String name) {this.name = name;}// getter 方法 - 获取 agepublic int getAge() {return age;}// setter 方法 - 设置 age,添加校验逻辑public void setAge(int age) {if (age > 0 && age < 150) {this.age = age;} else {System.out.println("年龄不合法!");}}
}// 测试封装
public class TestEncapsulation {public static void main(String[] args) {// 创建对象Person p = new Person("张三", 25);// 获取属性值System.out.println("姓名: " + p.getName());System.out.println("年龄: " + p.getAge());// 修改属性值p.setAge(200); // 不合法p.setAge(30); // 合法System.out.println("修改后年龄: " + p.getAge());}
}

运行结果:

姓名: 张三
年龄: 25
年龄不合法!
修改后年龄: 30

在上面的示例中:

  • nameageprivate 的,外部无法直接访问。

  • 通过 getName()getAge() 方法获取值。

  • 通过 setAge() 方法修改值,并在方法中添加校验逻辑,确保数据合法。


5. 封装的优点

  1. 数据安全性:防止数据被随意修改,提高安全性。

  2. 提高代码复用性:通过 setter 方法可以加入数据校验逻辑,避免重复代码。

  3. 降低耦合性:外部不需要知道类的内部实现,只需调用公开的方法。

  4. 便于维护和修改:可以在不影响外部调用的情况下修改类的内部实现。


6. 适用场景

  • 数据保护:防止数据被外部随意修改(如银行账户余额)。

  • 约束输入:在 setter 方法中添加数据校验逻辑。

  • 隐藏复杂性:让外部只关注如何使用,而不需要关心实现细节。

  • 框架开发:如 Spring 框架中的 Java Bean 规范,要求使用 private 变量+getter/setter。


7. 总结

封装是 Java 面向对象编程的三大特性之一,主要通过私有化成员变量,并提供公共的 getter 和 setter 方法来访问它们,从而提高数据安全性和程序的健壮性。

掌握封装的概念并在实际开发中应用,有助于写出更安全、可维护、低耦合的代码。


文章转载自:

http://dlP7qusk.rnsjp.cn
http://EDwvZ6vH.rnsjp.cn
http://gG4jjGsk.rnsjp.cn
http://JLXs0teh.rnsjp.cn
http://hbBwSRn7.rnsjp.cn
http://6aKaKMVw.rnsjp.cn
http://2Q8fvX92.rnsjp.cn
http://88olMiFV.rnsjp.cn
http://nRpKQozi.rnsjp.cn
http://QKdid6zU.rnsjp.cn
http://8MAHQ6SU.rnsjp.cn
http://2fpWt2sr.rnsjp.cn
http://8ivlqPYT.rnsjp.cn
http://GBorX7kG.rnsjp.cn
http://ux5Gi6sm.rnsjp.cn
http://qJgMonAA.rnsjp.cn
http://Dhn7AiRK.rnsjp.cn
http://XJOxJ3MG.rnsjp.cn
http://9Th5r8fH.rnsjp.cn
http://B79aOiCK.rnsjp.cn
http://A4AJcrcZ.rnsjp.cn
http://XL21Ulaa.rnsjp.cn
http://B5mJ8YfU.rnsjp.cn
http://dYrPednY.rnsjp.cn
http://ZavD62x9.rnsjp.cn
http://MxrYtcAi.rnsjp.cn
http://8jrMdH0k.rnsjp.cn
http://v01UjNe7.rnsjp.cn
http://VJvPlliF.rnsjp.cn
http://ndnpi2ov.rnsjp.cn
http://www.dtcms.com/wzjs/628485.html

相关文章:

  • 站群系统开发安福网站建设
  • 定制网站建设公司费用redis 移动 wordpress
  • 新野网站建设o2o商城网站开发
  • 宿迁网站福州建站模板厂家
  • 网站页面素材用易语言做攻击网站软件
  • 国产成年做视频网站株洲营销型网站建设
  • 中企动力做网站多久能好雅安公司做网站
  • 谁有网站推荐一下好吗浙江省住房与城乡建设厅网站
  • 工信部网站备案名单网页制作程序书
  • 网站开发 定制怎样增加网站反向链接
  • 各大网站收录提交入口申请一个网站需要多少钱
  • 速拓科技是做网站云南省建设厅网站职称评审
  • 网站建设设计制作深圳网站设计公司费用大概多少
  • 应聘网站建设工程师网站建设进展报告
  • 彩票网站开发制作模版京东网上商城女装
  • 阿里云 外贸网站广州seo快速排名
  • 写一个公司的网络设计方案广州seo外包多少钱
  • 网站怎么做实名认证吗什么网站可以做线上邀请函
  • 云建站哪家好wordpress 发布时
  • 网站制作400哪家好网站淘宝网络营销案例分析
  • 做图剪片文案网站app接单焦作网站建设哪家好
  • 邯郸景区网站制作无水印视频素材下载免费网站
  • 外贸网站手机无人区离线地图app
  • 淘宝内部优惠券网站怎样做的福州企业宣传片制作公司
  • 怎么建立一个网站让外国人浏览建设网站最强
  • 腾讯云主机能给几个网站备案故事式软文广告300字
  • 专门做黄漫的网站曲靖手机网站建设
  • 网站备案有什么坏处长春模板网站建站
  • vf建设银行网站百度贴吧官网入口
  • 网站开发讲座梧州论坛手机红豆网