java学习第22天

内部类概述:内部类就是在一个类中定义一个类,举例:在一个类A中定义一个类B,类B就被称为内部类

内部类定义格式:

Public class 类名{

   修饰符 class 类名{

}

}

内部类的访问特点:

内部类可以直接访问外部类的成员,包括私有

外部类要访问内部类成员,必须创建对象

package leiqiantao;

public class Outer {
    private int num=20;
    public class Inner{
        public void show(){
            System.out.println(num);
        }
    }
    public void method(){
        Inner i=new Inner();
        i.show();
    }

}

对按照内部类在类中定义的位置不同,可以分为如下两种形式

在类的成员位置:成员内部类

在类的局部位置:局部内部类

成员内部类,外界创建对象:格式 外部类名.内部类名 对象名=外部类对象.内部类对象;

范例: Outer.Inner oi=new Outer().new Inner();(一般成员内部类为私有,该方法不适用)

package leiqiantao;

public class Outer {
    private int num=20;
    public class Inner{
        public void show(){
            System.out.println(num);
        }
    }
    public void method(){
        Inner i=new Inner();
        i.show();
    }

}

package leiqiantao;

public class OuterDemo {
    public static void main(String[] args) {
        Outer.Inner oi=new Outer().new Inner();
        oi.show();
    }
}

D:\Java\jdk-16.0.1\bin\java.exe -Didea.launcher.port=52768 "-Didea.launcher.bin.path=D:\IntelliJ IDEA 2018.2.8\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\dell\IdeaProjects\java学习\out\production\java学习;D:\IntelliJ IDEA 2018.2.8\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMainV2 leiqiantao.OuterDemo

20

 

Process finished with exit code 0

 

 

222

经常使用为

package leiqiantao;

public class Outer {
    private int num=20;
    private class Inner{
        public void show(){
            System.out.println(num);
        }
    }
    public void method(){
        Inner i=new Inner();
        i.show();
    }

}

package leiqiantao;

public class OuterDemo {
    public static void main(String[] args) {
        /*
        Outer.Inner oi=new Outer().new Inner();
        oi.show();
        */
       
Outer o=new Outer();
        o.method();
    }
}

D:\Java\jdk-16.0.1\bin\java.exe -Didea.launcher.port=57995 "-Didea.launcher.bin.path=D:\IntelliJ IDEA 2018.2.8\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\dell\IdeaProjects\java学习\out\production\java学习;D:\IntelliJ IDEA 2018.2.8\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMainV2 leiqiantao.OuterDemo

20

 

Process finished with exit code 0

posted @ 2021-07-19 19:33  几人著眼到青衫  阅读(37)  评论(0)    收藏  举报