App下載

Java面向?qū)ο笕筇匦灾庋b

猿友 2021-07-19 10:47:41 瀏覽數(shù) (2065)
反饋

封裝作為面向?qū)ο蟮娜筇匦灾唬欠浅V匾闹R(shí)點(diǎn)。本篇文章將和大家分享一些封裝的基礎(chǔ)知識(shí)以及在 Java 語(yǔ)言中封裝的使用方法。

1、什么是封裝?

概念:禁止直接訪問(wèn)一個(gè)對(duì)象中的數(shù)據(jù),應(yīng)通過(guò)操作接口來(lái)訪問(wèn)。適當(dāng)?shù)姆庋b有助于代碼更容易理解和維護(hù),也加強(qiáng)了代碼的安全性。

(1)方法就是一種封裝。

(2)關(guān)鍵字 private 也是一種封裝。


2、private 的使用格式

private 數(shù)據(jù)類型 變量名;

(1)使用 ?private ?修飾變量。

(2)提供? getXXX?/?setXXX?/?isXXX?三種方法,可以訪問(wèn)成員變量。

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);
    }

    // 這個(gè)成員方法,專門用于向age設(shè)置數(shù)據(jù)
    public void setAge(int num) {
        if (num < 100 && num >= 9) { // 如果是合理情況
            age = num;
        } else {
            System.out.println("數(shù)據(jù)不合理!");
        }
    }

    // 這個(gè)成員方法,專門私語(yǔ)獲取age的數(shù)據(jù)
    public int getAge() {
        return age;
    }

}


3、封裝優(yōu)化-this關(guān)鍵字

this.成員變量名;

使用?this?關(guān)鍵字修飾方法中的變量,解決成員變量被隱藏的問(wè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)一個(gè)對(duì)象被創(chuàng)建,構(gòu)造方法用來(lái)初始化對(duì)象,給對(duì)象的成員賦初始值值。

定義格式

修飾符 構(gòu)造方法名(參數(shù)列表){
    // 方法體
}
public class Student {

    // 成員變量
    private String name;
    private int age;

    // 無(wú)參數(shù)的構(gòu)造方法
    public Student() {
        System.out.println("無(wú)參構(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è)構(gòu)造類,因?yàn)?Java 會(huì)自動(dòng)提供一個(gè)無(wú)參構(gòu)造器。如果自定義了構(gòu)造方法,則 Java 提供的默認(rèn)無(wú)參構(gòu)造器就會(huì)失效。

(2)構(gòu)造方法名稱必須和類名相同,沒(méi)有返回值,不需要 void 修飾符。

(3)構(gòu)造方法是可以重載的。重載 === 在同一個(gè)類下,同名不同參數(shù)。


5、標(biāo)準(zhǔn)代碼-JavaBean

JavaBean 是 Java 語(yǔ)言編寫類的一種標(biāo)準(zhǔn)規(guī)范,符合 JavaBean 的類,要求類必須是具體的、公共的,并且具有無(wú)參的構(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的全部?jī)?nèi)容,如果想要了解更多 Java 面向?qū)ο蟮南嚓P(guān)內(nèi)容,請(qǐng)繼續(xù)關(guān)注W3Cschool,如果對(duì)您的學(xué)習(xí)有所幫助,希望可以多多支持我們。


0 人點(diǎn)贊