包的訪問控制權限

private:可以定義方法,屬性,定義的方法和屬性不能被類的外部所看到。

default:可以在本包的任意地方訪問。

public:都可以訪問,不受任何限制。

protected:保護,不同包的非子類不可以訪問。

protected權限,在不同包的它的子類能夠被訪問:

package org.lxh.demo08.g ;
public class HelloDemo{
    protected String name = "LXH" ;        // 只能在本包及不同包的子類中訪問
};

在其他包的子類訪問這個屬性。

複製代碼

package org.lxh.demo08.h ;
import org.lxh.demo08.g.HelloDemo ;
class SubHelloDemo extends HelloDemo{    //在其他包中的子類!
    public void print(){
        System.out.println("訪問受保護屬性:" + super.name) ;
    }
};
public class ProtectedDemo01{
    public static void main(String args[]){
        SubHelloDemo sub = new SubHelloDemo() ;
        sub.print() ;
    }
};

複製代碼

運行結果:

訪問受保護屬性:LXH

 

如果現在沒有使用子類,而是直接在不同類中訪問,則會出現無法訪問的錯誤。

複製代碼

package org.lxh.demo08.h ;
import org.lxh.demo08.g.HelloDemo ;
public class ProtectedDemo02{
    public static void main(String args[]){
        HelloDemo sub = new HelloDemo() ;
        System.out.println(sub.name) ;    // 錯誤的,不同包的類無法訪問
    }
};

複製代碼

 

回顧

  當產生一個類之後,爲了保證類中的內容不被外部直接看到,則使用private關鍵字。但是,如果兩個有關係的類要進行屬性相互訪問的話就比較麻煩。

之前只能使用getter(),和setter()方法取得和設置,所以爲了減少私有屬性的的訪問的麻煩,使用了內部類,但是內部類會破壞程序的結構。

  爲了讓一個類的內容可以方便的使用,使用了繼承的概念,但是在繼承中,private屬性也是無法被子類看到,所以此時,爲了方便子類的操作,

可以將屬性使用protected進行封裝,這樣一來,外部也無法看到(不同包)

  之後有了繼承之後,既然有了父子的關係,所以可以使用向上或者向下的轉型,以完成多態性,但是,在開發中,類與類直接直接繼承並不多見,而往往

繼承抽象類,或實現接口,當若干個操作間需要解耦合的時候,就可以使用接口完成

  既然有內部類了,則如果一個接口或者抽象類的子類只使用一次,則可以將其定義爲匿名內部類

  開發中沒有包的類是絕對不存在的。

  封裝-》繼承-》多態。

JAVA命名規範

  類:所有單詞首字母大寫。

  方法:第一個首字母小寫,之後每個單詞首字母大寫:如:getInfo();

  屬性:第一個首字母小寫,之後每個單詞首字母大寫:如:studentName;

  包:所有單詞的字母小寫,如:org.lxh.demo08.h

  常量:所有字母大寫,如:FLAG.

總結:

  protected訪問權限;

  命名規範。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章