13.内部类
- 内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就
称为内部类,而A类相对B类来说就是外部类了。- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类
Outer类
package com.wang.oop.innerClass;
public class Outer{
//内部类===================
//外部类私有属性
private int age = 10;
//外部类公有方法
public void out01(){
System.out.println("这个是外部类方法!");
}
//外部类私有方法
public void out02(){
System.out.println("这个是外部类方法!");
}
class inner{
public void in(){
System.out.println("这个是内部类方法!");
//内部类主要功能可以获取外部类的私有属性和方法
System.out.println(age);
out02();
}
}
//静态内部类===================
static class inner02{
public void in(){
System.out.println("这个是静态内部类方法!");
}
}
//局部内部类===================
public void method(){
System.out.println("这个是外部类方法!");
class inner03{
public void in(){
System.out.println("这个是局部内部类!");
}
}
}
public static void main(String[] args) {
//匿名内部类,没有名字初始化类,不用实例保存到变量中
new A().eat();
}
}
//匿名内部类===================
//和外部内同层级,java中可以有多个class类,但是只能有一个public class类
class A{
public void eat(){
}
public static void main(String[] args) {
}
}
启动类
package com.wang.oop.innerClass;
public class Application{
public static void main(String[] args) {
Outer outer = new Outer();
//通过外部内来实例化内部类
Outer.inner inner = outer.new inner();
inner.in();
//输出结果:这个是内部类方法! 10 这个是外部类方法!
}
}