封装概述
概述
面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。
原则:将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。
封装性在Java当中的体现:
- 方法就是一种封装
- 关键字private也是一种封装
封装的步骤
1. 使用 private 关键字来修饰成员变量。
2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。
封装的操作——private关键字
- private是一个权限修饰符,代表最小权限。
- 可以修饰成员变量和成员方法。
- 被private修饰后的成员变量和成员方法,只在本类中才能访问。
this的含义
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。格式
:this.成员变量名
代码举例
定义Student类
package demo03; /* 间接访问private成员变量,就是定义一对儿Getter/Setter方法 必须叫setXxx或者是getXxx命名规则。 对于Getter来说,不能有参数,返回值类型和成员变量对应; 对于Setter来说,不能有返回值,参数类型和成员变量对应。 对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而setXxx规则不变。 */ public class Student { private String name; // 姓名 private int age; // 年龄 private boolean male; // 是不是爷们儿 // 这个成员方法,专门用于向Male设置数据 public void setMale(boolean b) { male = b; } public boolean isMale() { return male; } public void setName(String str) { name = str; } // 这个成员方法,专门获取Name的数据 public String getName() { return name; } public void setAge(int num) { age = num; } public int getAge() { return age; } }
使用Student类
package demo03; public class Demo04Student { public static void main(String[] args) { Student stu = new Student(); stu.setName("鹿晗"); stu.setAge(20); stu.setMale(true); System.out.println("姓名:" + stu.getName()); System.out.println("年龄:" + stu.getAge()); System.out.println("是不是爷们儿:" + stu.isMale()); } }
执行结果