Java:类的封装

定义:将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏。

做法:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法赋值(setter)方法,用于对这些属性的访问。

具体步骤:

  1. 修改属性的可见性来限制对属性的访问。
  2. 为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。
  3. 在赋值和取值方法中,加入对属性的存取限制。

例 1

下面以一个员工类的封装为例介绍封装过程。一个员工的主要属性有姓名、年龄、联系电话和家庭住址。假设员工类为 Employee,示例如下:

  1. public class Employee
  2. {
  3. private String name; //姓名
  4. private int age; //年龄
  5. private String phone; //联系电话
  6. private String address; //家庭住址
  7. public String getName()
  8. {
  9. return name;
  10. }
  11. public void setName(String name)
  12. {
  13. this.name=name;
  14. }
  15. public int getAge()
  16. {
  17. return age;
  18. }
  19. public void setAge(int age)
  20. {
  21. //对年龄进行限制
  22. if(age<18||age>40)
  23. {
  24. System.out.println("年龄必须在18到40之间!");
  25. this.age=20; //默认年龄
  26. }
  27. else
  28. {
  29. this.age=age;
  30. }
  31. }
  32. public String getPhone()
  33. {
  34. return phone;
  35. }
  36. public void setPhone(String phone)
  37. {
  38. this.phone=phone;
  39. }
  40. public String getAddress()
  41. {
  42. return address;
  43. }
  44. public void setAddress(String address)
  45. {
  46. this.address=address;
  47. }
  48. }


如上述代码所示,使用 private 关键字修饰属性,这就意味着除了 Employee 类本身外,其他任何类都不可以访问这些属性。但是,可以通过这些属性的 setXxx() 方法来对其进行赋值,通过 getXxx() 方法来访问这些属性。

在 age 属性的 setAge() 方法中,首先对用户传递过来的参数 age 进行判断,如果 age 的值不在 18 到 40 之间,则将 Employee 类的 age 属性值设置为 20,否则为传递过来的参数值。

编写测试类 EmployeeTest,在该类的 main() 方法中调用 Employee 属性的 setXxx() 方法对其相应的属性进行赋值,并调用 getXxx() 方法访问属性,代码如下:

  1. public class EmployeeTest
  2. {
  3. public static void main(String[] args)
  4. {
  5. Employee people=new Employee();
  6. people.setName("张三");
  7. people.setAge(28);
  8. people.setPhone("12345678910");
  9. people.setAddress("广东省广州市");
  10. System.out.println("姓名:"+people. getName());
  11. System.out.println("年龄:"+people.getAge());
  12. System.out.println("电话:"+people.getPhone());
  13. System.out.println("家庭住址:"+people.getAddress());
  14. }
  15. }


运行结果如下:

姓名:张三

年龄:28

 电话:12345678910

家庭住址:广东省广州市


通过封装,实现了对属性的数据访问限制,满足了年龄的条件

在属性的赋值方法中可以对属性进行限制操作,从而给类中的属性赋予合理的值, 并通过取值方法获取类中属性的值(也可以直接调用类中的属性名称来获取属性值)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

濯一一

你的鼓励:我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值