Java面向对象_封装的概述

你的名字 2022-05-08 02:16 349阅读 0赞

一、封装的概述

  1. 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
  2. **1.好处**
  3. 隐藏实现细节,提供公共的访问方式
  4. 提高了代码的复用性
  5. 提高安全性
  6. **2.封装原则**
  7. 将不需要对外提供的内容都隐藏起来
  8. 把属性隐藏起来,提供公共方法对其访问

二、如何去理解隐藏和提高安全性呢?通过一个例子

  1. class Student {
  2. //姓名
  3. String name;
  4. //年龄
  5. private int age;
  6. //写一个方法对数据进行校验
  7. /*
  8. 返回值类型:void
  9. 参数列表:int a
  10. */
  11. public void setAge(int a) {
  12. if(a < 0 || age > 120) {
  13. System.out.println("你给的年龄有问题");
  14. }else {
  15. age = a;
  16. }
  17. }
  18. //show()方法,显示所有成员变量值
  19. public void show() {
  20. System.out.println("姓名:"+name);
  21. System.out.println("年龄:"+age);
  22. }
  23. }
  24. class StudentDemo {
  25. public static void main(String[] args) {
  26. //创建学生对象
  27. Student s = new Student();
  28. s.show();
  29. System.out.println("--------------");
  30. //给成员变量赋值
  31. s.name = "林青霞";
  32. //s.age = 27;
  33. s.setAge(27);
  34. s.show();
  35. System.out.println("--------------");
  36. //给age赋值
  37. //s.age = -27; //这个数据是不合理的
  38. //通过方法给值
  39. s.setAge(-27);
  40. s.show();
  41. System.out.println("--------------");
  42. }
  43. }

我们对例子进行一下解析,首先这里有两个类,一个Student类和一个StudentDemo类

Student类:

学生姓名:name(默认权限,同一个包下的类都可以访问)

学生年龄:age(private私有成员变量,只能在本类中使用)

show()方法(public公有的成员方法)

StudentDemo类:

是一个单纯的测试类,在创建完学生对象后,可以修改其属性,修改的方式有两种

一种直接赋值,一种是通过set方法

  1. //给成员变量赋值
  2. s.name = "林青霞";
  3. //s.age =-27;
  4. s.setAge(27);

从上面两种赋值方式我们可以看到,直接赋值带来的后果是无论修改的是否合理,都可以修改,并且成功

而set方法就可以在方法中限制数据的规范。

问题是,如果人家就是不使用set方法呢?还是得任人宰割,这是很可怕的

所以,就把成员变量设置成private,意思这是我私有的,不想给你看到的,你想改就使用set方法吧!

这其实就是封装了。

发表评论

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

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

相关阅读

    相关 Java面向对象概述

    文章目录 一、面向对象的概述 二、面向对象与面向过程的区别 三、面向对象的三大特征 四、面向对象的五大基本原则 总结 ----------

    相关 面向作用及好处

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

    相关 Java深入浅出

    前言 封装是一种隐藏信息的技术,是将一个系统中的结构和行为通过类来划分的过程。即通过定义一组类,将特定的数据组合到某一个类中,形成一个整体,将该隐藏的数据进行保护,只对外

    相关 java面向对象概述

    面向对象概述 1.1 程序设计方法 面向过程:站在程序员的角度按照“自顶向下,逐步求精”的模块化思想去解决问题,适合解决笑规模的问题。 面向对象:按照“由下而上”的思想,