概述
面向對象編程語言是對客觀世界的模擬,客觀世界里成員變量都是隱藏在對象內部的,外界無法直接操作和修改。 封裝可以被認為是一個保護屏障,防止該類的代碼和數據被其他類隨意訪問。要訪問該類的數據,必須通過指定的 方式。適當的封裝可以讓代碼更容易理解與維護,也加強了代碼的安全性。
封裝的原則
將屬性隱藏起來,若需要訪問某個屬性,提供公共方法對其訪問。
封裝的步驟
1、使用 private 關鍵字來修飾成員變量。
2、對需要訪問的成員變量,提供公共的訪問方式,也就是定義對應的 getXxx 方法 、 setXxx 方法。
封裝的操作——private關鍵字
private的含義
1、 private是一個權限修飾符,代表最小權限。
2、可以修飾成員變量和成員方法,來達到隱藏屬性的目的
3、被private修飾后的成員變量和成員方法,只在本類中才能訪問
private的使用格式
private 數據類型 變量名;
為什么使用private修飾?
因為不要把屬性暴露給別人
this關鍵字
this的含義
this代表所在類的當前對象的引用(地址值),即對象自己的引用。
記住 :方法被哪個對象調用,方法中的this就代表那個對象。即誰在調用,this就代表誰。
構造方法
當一個對象被創建時候,構造方法用來初始化該對象,給對象的成員變量賦初始值。
作用: 初始化該對象,給對象的成員變量賦初始
構造方法的定義格式
封裝的具體例子
public class Person { //定義成員變量 private String name;//姓名 private int age;//年齡 private char gendar;//性別 //定義成員方法 //有參構造方法 public Person() { } //無參構造方法 public Person(String name, int age, char gendar) { this.name = name; this.age = age; this.gendar = gendar; } //get和set方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public char getGendar() { return gendar; } public void setGendar(char gendar) { this.gendar = gendar; } /** * study方法 * */ public void study(){ System.out.println("好好學學習,天天向上"); } /** * sleep();睡覺 */ public void sleep(){ System.out.println("學習一天了,可以睡覺了"); } }