封装概述
- 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装好处
- 隐藏实现细节,提供公共的访问方式
- 提高了代码的复用性
- 提高安全性
封装原则
- 将不需要对外提供的内容都隐藏起来
- 把属性隐藏,提供公共方法对其访问
private关键字的概述和特点
- 是一个权限修饰符
- 可以修饰成员变量和成员方法
- 被其修饰的成员只能在本类中被访问
案例演示
- 把成员变量用private修饰
- 提供对应的getXxx()和setXxx()方法
- private仅仅是封装的一种体现形式,不能说封装就是私有
public static void main(String[] args) { Person p1 = new Person(); p1.name = "zhang"; //调用姓名属性并赋值 // p1.age = 23; //调用年龄属性并赋值 // p1.speak(); //调用行为 p1.setAge(-1); System.out.println(p1.getAge()); } } class Person{ String name; private int age; public void setAge(int a) { if (a > 0 && a < 200) { age = a; }else { System.out.println("重设"); } } public int getAge() { return age; } public void speak() { System.out.println(name + "..." + age); } }
this关键字的特点
- 代表当前对象的引用
案例演示
- this的应用场景
- 用来区分成员变量和局部变量重名
public class This { public static void main(String[] args) { Person p1 = new Person(); p1.setName("zhang"); p1.setAge(23); System.out.println(p1.getName() + "..." + p1.getAge()); } } class Person{ private String name; private int age; public void setAge(int age) { if (age > 0 && age < 200) { this.age = age; }else { System.out.println("重设"); } } public int getAge() { return age; } public void setName(String name) { this.name = name; } public String getName() { return name; } }