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