Java面向对象编程(19)封装的实现❤

水深无声 2022-10-31 15:57 256阅读 0赞

这一节我们来讲封装的实现。

一、封装操作步骤:

  1. 将属性的修饰符设为私有(private)。
  2. 按Shift+Alt+S,选择Generate Getters And Setters(生成get和set方法),勾选我们需要封装的属性,生成get和set方法。
  3. 在需要的地方调用set方法设值,调用get方法取值即可。

示例代码如下:
我们创建一个会员类(包含电话号,密码,注册名,余额四个属性),创建一个会员Bob并在主类中获取Bob的电话号。
Member类:

  1. public class Member {
  2. //声明Member的属性
  3. public String phone;
  4. public String password;
  5. public int regName;
  6. private double amount;
  7. }

然后是我们的主类:

  1. public class Test01 {
  2. public static void main(String[] args) {
  3. // 投资人也是会员
  4. Member Bob = new Member();//新建一个会员Bob
  5. Bob.phone="18755555555";//设置Bob的手机号
  6. System.out.println("Bob的电话号是:"+Bob.phone);
  7. }
  8. }

此时我们想要把phone 属性保护起来,防止从外部使用点语法(即Bob. phone)来修改phone的值。我们想到使用封装:

修改Member类:在Member类中,按Shift+Alt+S快捷键,选择Generate Getters And Setters,并勾选phone,点击Generate生成get和set方法:

  1. public class Member {
  2. private String phone;
  3. public String password;
  4. public int regName;
  5. private double amount;
  6. public void setPhone(String phone) {
  7. this.phone=phone;
  8. }
  9. //使用get返回数据,防止使用点语法修改phone值
  10. public String getPhone() {
  11. return phone;
  12. }
  13. }

同时我们将phone的修饰符改为private,这样我们就完成了phone属性的封装。我们可以通过set和get方法来操作phone属性。此时Test01类中会报错,phone属性无法访问。

主类对应修改为:

  1. public class Test01 {
  2. public static void main(String[] args) {
  3. // 投资人也是会员
  4. Member Bob=new Member();
  5. Bob.setPhone("18555555555");
  6. System.out.println(Bob.getPhone());
  7. }
  8. }

这样我们就可以通过setPhone方法来修改phone属性的值,通过getPhone方法获取phone属性的值,而防止了在外部使用点语法对phone属性的值进行修改。


  1. 软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
  2. 博主经验有限,若有不足,欢迎交流,共同改进~
  3. 有意可加Q 908417285 交流学习。
  4. 乾坤未定,你我皆是黑马

发表评论

表情:
评论列表 (有 0 条评论,256人围观)

还没有评论,来说两句吧...

相关阅读

    相关 面向作用及好处

    一、什么是封装? 顾名思义,封:封闭,装:装起来,将具体的实现细节装到一个容器中,并封闭起来,防止容器外部直接访问容器内部的实现细节,仅公开暴露指定的访问路径;生活中的例子: