封裝概述
- 是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
封裝好處
- 隱藏實現細節,提供公共的訪問方式
- 提高了代碼的復用性
- 提高安全性
封裝原則
- 將不需要對外提供的內容都隱藏起來
- 把屬性隱藏,提供公共方法對其訪問
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; } }