樂字節Java|JavaBean封裝、繼承與權限修飾

本文繼續講Java封裝。上一篇:樂字節Java|GC垃圾回收機制、package和import語句java

此次講述JavaBean、繼承與權限修飾。
圖片描述編程

1、 封裝javaBean

封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和行爲(或方法)結合爲一個獨立的總體,並儘量隱藏對象的內部實現細節。安全

(1)隱藏實現細節,提供公共的訪問方式this

(2)好處:編碼

A:隱藏實現細節,提供公共的訪問方式spa

B:提升代碼的複用性設計

C:提升代碼的安全性code

(3)設計原則對象

把不想讓外界知道的實現細節給隱藏起來,提供公共的訪問方式繼承

(4)private是封裝的一種體現。

public、protected、private、default

例1:

public class Use{
    public static void main(String[] args) {
        Show.show("封裝");
    }
}
//對System.out.println(str)的封裝,直接調用就好
class Show{
    public static void show(String str){
        System.out.println(str);
    }
}

例2

public class Man {
    //對屬性的封裝,一我的的名字,年齡,妻子都是這個對象(人)的私有屬性
    private String name;
    private int age;
    private Woman wife;
    //對該人對外界提供方法的封裝   能夠設定妻子的名字,姓名,年齡也能夠得到男人的姓名和年齡
    //方法封裝
    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;
    }
    //此處少了一個getWife()方法,是由於該男人不想讓外界訪問本身的妻子
    public void setWife(Woman wife){
        this.wife=wife;
    }
}
class Woman{
    //屬性的封裝
    private String name;
    private int age;
    private Man husband;
    //方法封裝
    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 Man getHusband() {
        return husband;
    }
    public void setHusband(Man husband) {
        this.husband = husband;
    }
}

JavaBean
自己是一個類,屬於Java的面向對象編程,是一個封裝對象實例的封裝類。
javaBean編碼規則:

(1) javaBean必須聲明爲public class,這樣纔可以被外部所訪問;

(2) 一個JavaBean中至少存在一個無參構造方法

(3)類中全部的屬性都必須封裝,即:使用private聲明;

(4)爲封裝的私有屬性提供公共的setter、getter方法;

2、 類的繼承與權限控制

一、繼承

繼承:子承父業

繼承的本質在於抽象。類是對對象的抽象,繼承是對某一批類的抽象,從而實現對現實世界更好的建模。同時使用繼承能夠提升代碼的複用性。(事實上,利用組合能夠更好的實現代碼複用!)extends的意思是「擴展」。子類是父類的擴展。

java中使用extends關鍵字實現類的繼承機制,語法規則:

<modifier> class <name> [extends <superclass>]{}

做用: 實現代碼的複用,延續+擴展父類信息。

經過繼承,子類自動擁有了基類的全部成員(成員變量和成員方法)。

Java只支持單繼承,不容許多繼承:一個子類只能擁有一個基類,一個基類能夠派生出多個子類

二、訪問控制

Java權限修飾符 public protected private 置於類的成員定義前,用來限定其餘對象對該類對象成員的訪問權限。

經過訪問權限的控制達到信息隱藏

理解:如電腦 利用一個外殼包裹,保護了裏面的電器元件,提供了少許的按鍵與其對接使用。我要看電視,只須要按一下開關和換臺就能夠了。有必要了解電視機內部的結構嗎?有必要碰碰顯像管嗎?

製造廠家爲了方便咱們使用電視,把複雜的內部細節所有封裝起來,只給咱們暴露簡單的接口,好比:電源開關。具體怎麼內部實現的,咱們不須要操心。再好比你的手機,手機的鍵盤,屏幕,聽筒等,就是其對外接口。你只須要知道如何按鍵就可使用手機,而不須要了解手機內部的電路是如何工做的。封裝機制就像手機同樣只將對外接口暴露,而不須要用戶去了解其內部實現。細心觀察,現實中不少東西都具備這樣的特色。
圖片描述

須要讓用戶知道的暴露出來,不須要讓用戶瞭解的所有隱藏起來。這就是封裝。白話:「該露的露,該藏的藏」。

概念:

咱們程序設計要追求「高內聚,低耦合」。高內聚就是類的內部數據操做細節本身完成,不容許外部干涉;

低耦合:僅暴露少許的方法給外部使用。
圖片描述

public: 一覽無遺;

protected:子承父業 (兒子本身使用);

default :家庭和氣;

private :佔爲已有。

對於class的權限修飾只能用public和default。

public 類能夠在任意地方訪問

default類只能夠在同包被訪問

1)、屬性儘量私有化 private

2)、訪問器: setter與getter訪問器 >private ,通常public居多

setterXxx: 存儲 與 getterXxx: 查看

相關文章
相關標籤/搜索