靜態內部類

2021-08-15 10:15:23 字數 1968 閱讀 6561

1. 靜態內部類只能訪問外部的靜態變數和方法,不能訪問成員變數和方法

2. 靜態內部類不需要先新建外部類,外部類就相當於乙個命名空間而已

3. 靜態內部類可以宣告自己的靜態變數和方法,常規的內部類,只能成員變數和成員方法

linkedlist便是靜態內部類的典型用法,以下模式下這種用法:

public class linkedlist

private static class entry

/*** 可以確認上一節點,自己是最後一節點

* * @param t

* @param pre

*/public entry(t t, entrypre, entrynext)

} /**

* 增加乙個物件:預設是往末位增加

* * @param t

*/public void add(t t)

// 如果已經存在至少乙個元素,那新加的元素就在末位的元素進行連線

if (size > 0)

// 元素數量及修改次數+1

size++;

modsize++;

} /**

* 將元素插入固定位置

*/public void add(int index, t t)

entrynewentry = new entry<>(t);

// size =1時,增加的是乙個

if (0 == this.size)

//如果是從頭開始插入,則需要調整first first.next newentry 三個元素

// size==1時候不需要調整end

if (0 == index)

// 中部插入,則先定位target元素,修改 newentry target target.pre

entrytarget = getentry(index);

newentry.pre = target.pre.pre;

newentry.next = target;

target.pre.next = newentry;

target.pre = newentry;

size++;

modsize++;

} /**

* 取固定下標位置的元素, next index次即可

*/public t get(int index)

entrytarget = getentry(index);

return target.t;

} /**

* 移除元素,預設移除最後一位的元素,倒數第二位變成末位

*/public void remove()

/*** 移除固定位置的元素, remove後需要對 target.pre target.next進行調整

*/public t remove(int index)

size--;

modsize++;

return target.t;

} /**

* 返回元素數量

* * @return

*/public int size()

/*** 清空所有的元素

*/public void clear()

/*** 取得固定位置的元素包裝類entry, next index次即可

*/private entrygetentry(int index)

// index 為0的情況下返回first

entrytarget = this.first;

entrytemp = this.first;

for (int i = 0; i < index; i++)

return target;

} @override

public string tostring()

} return sb.tostring();

}}

內部類 靜態內部類

static可以修飾內部類,通常用來給外部類賦值 例如 建造者模式 靜態內部類不能使用外部類非靜態的屬性,必須用物件名呼叫 在外部類中 建立靜態內部類可以直接建立,不需要建立外部類 不能使用成員內部類的方式建立靜態內部類物件 內部類 物件名 new 內部類 外部類.內部類 物件名 new 外部類.內...

內部類 靜態內部類

package org.lgy.study.innerclass 靜態內部類屬於外部類本身,而不屬於外部類的物件。使用靜態內部類時無需建立外部類的物件。public class staticinnerclass public static void method2 public void metho...

內部類 靜態內部類

即定義在類或方法體內部的類,經常被使用於gui android程式設計中的事件處理 測試外部類等 public class outer class inner 即為內部類 在例項化內部類之前應該先 例項化外部類 方案一outer outer new outer inner inner outer.n...