Java基礎筆記37——靜態內部類
阿新 • • 發佈:2021-09-17
靜態內部類:定義在一個類中的類,即巢狀類,且使用static修飾
注意:
1.不能訪問外部類非靜態成員
2.非靜態內部類只能定義非靜態成員,而靜態內部類可以定義靜態成員和非靜態成員
3.例項化
(1)在類中訪問:
靜態內部類類名 物件名 = new 靜態內部類類名();
(2)在類以外訪問內部類
巢狀靜態內部類的類的物件.靜態內部類類名 物件名 = new 巢狀靜態內部類的類的物件.靜態內部類類名();
例子:
package com.lqh.chapter05; //外部類 public class OuterStatic { // 外部類變數 staticString out = "outer"; static String repeat = "22"; // 靜態內部類 static class Inner { String in = "inner"; static String repeat = "88";//可以定義static修飾的變數 // 內部方法 public void inMethod() { System.out.println("內部類方法"); } public voidvisitOutMethod() { System.out.println("訪問外部類的變數:" + out); outMethod(); } public String getRepeat() { //repeat是內部類的值,而OuterStatic.this.repeat則是外部類的值 return repeat + " "+ OuterStatic.repeat; } } public static voidoutMethod() { System.out.println("外部類方法"); } public void visitInMethod() { //在類中訪問內部類 Inner inner = new Inner(); inner.visitOutMethod(); } public static void main(String[] args) { OuterStatic outer = new OuterStatic(); outer.visitInMethod(); //在類以外中訪問內部類 OuterStatic.Inner inner = new OuterStatic.Inner(); inner.inMethod(); System.out.println(inner.getRepeat()); } }
輸出結果為:
訪問外部類的變數:outer
外部類方法
內部類方法
88 22