JAVA入门级教学之(成员内部类)
package com.lbj.javase20;
/**
?* 關于成員內部類:
?* ?? ?
?* ?? ?1.成員內部類可以等同看做成員變量
?*?
?* ?? ??? ?內部類重要的作用:可以直接訪問外部類中私有的數據
?*?
?* ?? ?2.成員內部類中不能有靜態聲明和靜態變量、靜態方法。
?*?
?* ?? ?3.成員內部類可以訪問外部類的所有數據
?*?
?*?
?*?
?* @author 14811
?*
?*/
public class Test02 {
?? ?//靜態變量
?? ?private static String s1="A";
?? ?
?? ?//靜態方法
?? ?private static void m1(){
?? ??? ?System.out.println("static m1 method");
?? ?}
?? ?
?? ?//成員變量
?? ?private String s2="B";
?? ?
?? ?//成員方法
?? ?private void m2(){
?? ??? ?System.out.println("m2 method");
?? ?}
?? ?
?? ?//成員內部類
?? ?//可以用訪問控制權限的修飾符修飾
?? ?//public/protected/private/缺省
?? ??? ?class InnerClass{
?? ??? ?
?? ??? ?//靜態方法調用本類中的靜態方法和靜態變量【成員內部類無法訪問靜態方法和靜態類】
//?? ??? ?public static void m3(){
//?? ??? ??? ?System.out.println(s1);
//?? ??? ??? ?m1();
//?? ??? ??? ?
?? ??? ??? ?System.out.println(s2);
?? ??? ??? ?m2();靜態類中無法訪問成員方法和成員變量
//?? ??? ?}
?? ??? ?
?? ??? ?//成員方法
?? ??? ?public void m4(){
?? ??? ??? ?System.out.println(s1);
?? ??? ??? ?m1();
?? ??? ??? ?
//?? ??? ??? ?System.out.println(s2);
//?? ??? ??? ?m2();
?? ??? ??? ?
?? ??? ?}
?? ??? ?
?? ?}
?? ?
?? ?
?? ?//入口哦
?? ?public static void main(String[] args){
?? ??? ?//執行m3
?? ?//?? ?OuterClass.InnerClass.m3();//訪問靜態內部類中的靜態方法
?? ??? ?
?? ??? ?
?? ??? ?//創建外部類對象
?? ??? ?Test02 t=new Test02();
?? ??? ?
?? ??? ?//這里是比較奇怪的
?? ??? ?//靜態內部類的調用是外部類名點.內部類名
?? ??? ?//成員內部類的調用是外部類對象.new xxx();
?? ??? ?InnerClass inner=t.new InnerClass();
?? ??? ?//訪問靜態內部類只需要創建一次對象,訪問成員內部類需要創建兩次對象
?? ??? ?
?? ??? ?inner.m4();
?? ?}
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
}
總結
以上是生活随笔為你收集整理的JAVA入门级教学之(成员内部类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件项目周报_有关细节、效率、周报和扯淡
- 下一篇: JAVA入门级教学之(封装)