以下内容截取自java内部类使用方法
实例内部类(成员内部类)
1.成员内部类可以等同看做成员变量
2.成员内部类不能有静态声明
3.成员内部类可以访问外部类所有的数据
(内部类直接为class innerClass)
OuterClass outerClass = new OuterClass();
InnerClass innerClass = outerClass.new InnerClass();
静态内部类:
1.静态内部类可以等同看做静态变量
2.内部类的重要的作用:可以访问外部类中的私有的属性
3.静态内部类可以直接访问外部类的静态数据,无法直接访问成员变量
(静态内部类static class InnerClass,构造内部类的对象 需要通过 外部对象 调用内部构造函数,相当于外部对象的属性)
//创建外部类对象
OuterClass.InnerClass.m3();
//执行m4方法
InnerClass innerClass = new OuterClass.InnerClass();
innerClass.m4();
匿名内部类:
指类没有名字,在内部没有class的new对象,class写在同文件主类的外面,竟然还可以写接口,学到了~
package Algorithm.one;
/**
* @Author: ym
* @Date 2021/10/26 20:44
*/
public class OuterClass {
public static void array(UserService u){//②
u.logout();
}
public static void main(String[] args){
//调用array方法
//匿名内部类 new UserServiceIml()
array(new UserServiceIml());//①
}
}
interface UserService{
//退出系统
void logout();
}
class UserServiceIml implements UserService{
public void logout() {
System.out.println("系统退出了"); //
}
}