1. 程式人生 > 其它 >Java基礎筆記37——靜態內部類

Java基礎筆記37——靜態內部類

靜態內部類:定義在一個類中的類,即巢狀類,且使用static修飾

注意:

1.不能訪問外部類非靜態成員

2.非靜態內部類只能定義非靜態成員,而靜態內部類可以定義靜態成員和非靜態成員


3.例項化

(1)在類中訪問:

靜態內部類類名 物件名 = new 靜態內部類類名();

(2)在類以外訪問內部類

巢狀靜態內部類的類的物件.靜態內部類類名 物件名 = new 巢狀靜態內部類的類的物件.靜態內部類類名();

例子:

package com.lqh.chapter05;

//外部類
public class OuterStatic {
    // 外部類變數
    static
String out = "outer"; static String repeat = "22"; // 靜態內部類 static class Inner { String in = "inner"; static String repeat = "88";//可以定義static修飾的變數 // 內部方法 public void inMethod() { System.out.println("內部類方法"); } public void
visitOutMethod() { System.out.println("訪問外部類的變數:" + out); outMethod(); } public String getRepeat() { //repeat是內部類的值,而OuterStatic.this.repeat則是外部類的值 return repeat + " "+ OuterStatic.repeat; } } public static void
outMethod() { 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