封裝作為面向對象的三大特性之一,是非常重要的知識點。本篇文章將和大家分享一些封裝的基礎知識以及在 Java 語言中封裝的使用方法。
1、什么是封裝?
概念:禁止直接訪問一個對象中的數(shù)據,應通過操作接口來訪問。適當?shù)姆庋b有助于代碼更容易理解和維護,也加強了代碼的安全性。
(1)方法就是一種封裝。
(2)關鍵字 private 也是一種封裝。
2、private 的使用格式
private 數(shù)據類型 變量名;
(1)使用 ?private
?修飾變量。
(2)提供? getXXX
?/?setXXX
?/?isXXX
?三種方法,可以訪問成員變量。
public class Person {
private String name; // 姓名
private int age; // 年齡
private boolean male; // 判斷性別是否為 男士
public void setMale(boolean b) {
male = b;
}
public boolean isMale() {
return male;
}
public void show() {
System.out.println("我叫:" + name + ",年齡:" + age);
}
// 這個成員方法,專門用于向age設置數(shù)據
public void setAge(int num) {
if (num < 100 && num >= 9) { // 如果是合理情況
age = num;
} else {
System.out.println("數(shù)據不合理!");
}
}
// 這個成員方法,專門私語獲取age的數(shù)據
public int getAge() {
return age;
}
}
3、封裝優(yōu)化-this關鍵字
this.成員變量名;
使用?this
?關鍵字修飾方法中的變量,解決成員變量被隱藏的問題。
public class Student{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
}
4、封裝優(yōu)化-構造方法
當一個對象被創(chuàng)建,構造方法用來初始化對象,給對象的成員賦初始值值。
定義格式
修飾符 構造方法名(參數(shù)列表){
// 方法體
}
public class Student {
// 成員變量
private String name;
private int age;
// 無參數(shù)的構造方法
public Student() {
System.out.println("無參構造方法執(zhí)行啦!");
}
// 全參數(shù)的構造方法
public Student(String name, int age) {
System.out.println("全參構造方法執(zhí)行啦!");
this.name = name;
this.age = age;
}
// Getter Setter
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
注:
(1)所有類都具有一個構造類,因為 Java 會自動提供一個無參構造器。如果自定義了構造方法,則 Java 提供的默認無參構造器就會失效。
(2)構造方法名稱必須和類名相同,沒有返回值,不需要 void 修飾符。
(3)構造方法是可以重載的。重載 === 在同一個類下,同名不同參數(shù)。
5、標準代碼-JavaBean
JavaBean 是 Java 語言編寫類的一種標準規(guī)范,符合 JavaBean 的類,要求類必須是具體的、公共的,并且具有無參的構造方法,提供操作成員變量的 get 和 set 方法。
public class Student {
private String name; // 姓名
private int age; // 年齡
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
}
6、總結
以上就是關于 Java 中面向對象三大特性之一封裝的全部內容,如果想要了解更多 Java 面向對象的相關內容,請繼續(xù)關注W3Cschool,如果對您的學習有所幫助,希望可以多多支持我們。