JAVA 封装


任务描述

本关任务:构造一个类,把对象的属性封装起来,同时提供一些可以被外界访问属性的方法。

相关知识

为了完成本关任务,你需要掌握:1.什么是封装;2.封装的意义;3.实现Java封装的步骤。

什么是封装

封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。 封装时的权限控制符区别如下:

封装的意义

对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。使用封装有四大好处:

  • 良好的封装能够减少耦合。
  • 类内部的结构可以自由修改。
  • 可以对成员进行更精确的控制。
  • 隐藏信息,实现细节。

封装把一个对象的属性私有化,同时提供一些可以被外界访问属性的方法,如果不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

实现Java封装的步骤

  1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如:

     
      
    1. public class Person {
    2. private String name;
    3. private int age;
    4. }

    这段代码中,将 nameage 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

  2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:

 
  1. /*
  2. *封装演示
  3. */
  4. public class Person {
  5. /*
  6. * 对属性的封装 一个人的姓名、性别和年龄都是这个人的私有属性
  7. */
  8. private String name;
  9. private String sex;
  10. private int age;
  11. /*
  12. * setter()、getter()是该对象对外开放的接口
  13. */
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public String getSex() {
  21. return sex;
  22. }
  23. public void setSex(String sex) {
  24. this.sex = sex;
  25. }
  26. public int getAge() {
  27. return age;
  28. }
  29. public void setAge(int age) {
  30. this.age = age;
  31. }
  32. }

采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。

封装可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码,就可以对成员变量进行更精确的控制。

 
  1. public void setAge(int age) {
  2. if (age > 120) {
  3. System.out.println("ERROR:error age input...."); // 提示错误信息
  4. } else {
  5. this.age = age;
  6. }
  7. }
  8. public String getSexName() {
  9. if ("0".equals(sex)) {
  10. sexName = "女";
  11. } else if ("1".equals(sex)) {
  12. sexName = "男";
  13. } else {
  14. sexName = "人妖";
  15. }
  16. return sexName;
  17. }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值