1. 程式人生 > >複習筆記07 包&修飾符

複習筆記07 包&修飾符

1 包和許可權修飾符

1.1不同包之間的互相訪問

 使用類的全名 :包名.類名

 使用關鍵字import將類匯入

注意:*代表的是萬用字元,代表匯入了這個包下所有的類,並沒有匯入子包下的類

1.2 許可權修飾符

public 當前類,相同包下不同的類,不同包下的類

default 當前類,相同包下不同的類

private 當前類

protected 當前類,相同包下不同的類

 

default:當前包下使用

protected:讓子類物件使用

1.3 修飾符小結

2 內部類

2.1 內部類概述

A:什麼是內部類

將類寫在其他類的內部,可以寫在其他類的成員位置和區域性位置,這時寫在其他類內部的類就稱為內部類。其他類也稱為外部類。

B:什麼時候使用內部類

在描述事物時,若一個事物內部還包含其他可能包含的事物,比如在描述汽車時,汽車中還包含這發動機,這時發動機就可以使用內部類來描述。

class 汽車 { //外部類

class 發動機 { //內部類

}

2.2 成員內部類

  成員內部類,定義在外部類中的成員位置。與類中的成員變數相似,可通過外部類物件進行訪問

  在內部類當中,可以直接訪問外部類的成員,包括私有成員

A:定義格式

  class 外部類 {

    修飾符 class 內部類 {

    //其他程式碼

    }

  }

B:訪問方式

  外部類名.內部類名 變數名 = new

外部類名().new 內部類名();

 

成員內部類的修飾符:

  成員內部類可以使用的修飾符:private,public,procted,final,static,abstract 

  我們可以使用許可權修飾符修飾成員內部類,但是如果使用私有來修飾,則無法在其他類中訪問

  我們可以使用static修飾成員內部類,不用再建立外部類的物件了

  我們可以使用abstract,final修飾成員內部類

 

 2.3 區域性內部類

在方法內,出了方法之後就無法使用

區域性內部類,定義在外部類方法中的區域性位置。與訪問方法中的區域性變數相似,可通過呼叫方法進行訪問

A:定義格式

class 外部類 {

  修飾符 返回值型別 方法名(引數) {

    class 內部類 {

       //其他程式碼

    }

  }

}

B:訪問方式

在外部類方法中,建立內部類物件,進行訪問

2.4 匿名內部類

A:作用:匿名內部類是建立某個型別子類物件的快捷方式。

B:格式:

  new 父類或介面(){

    //進行方法重寫

  };

 

程式碼演示

//已經存在的父類:

public abstract class Person{

  public abstract void eat();

}

 

//定義並建立該父類的子類物件,並用多型的方式賦值給父類引用變數

Person  p = new Person(){

  public void eat() {

    System.out.println(“我吃了”);

  }

};

 

//呼叫eat方法

p.eat();

使用匿名物件的方式,將定義子類與建立子類物件兩個步驟由一個格式一次完成,。雖然是兩個步驟,但是兩個步驟是連在一起完成的。

匿名內部類如果不定義變數引用,則也是匿名物件。程式碼如下:

new Person(){

  public void eat() {

    System.out.println(“我吃了”);

  }

}.eat();