当前位置: 首页> 财经> 金融 > 自动跳转导航入口_游戏网站开发_以网络营销为主题的论文_重庆 seo

自动跳转导航入口_游戏网站开发_以网络营销为主题的论文_重庆 seo

时间:2025/7/10 20:10:05来源:https://blog.csdn.net/qq_46030794/article/details/146328103 浏览次数:0次
自动跳转导航入口_游戏网站开发_以网络营销为主题的论文_重庆 seo

1. 定义

定义在一个类中的类

2. 使用时机

  • 当一个类需要用到另一个类,并且两个类的联系比较密切时就需要使用内部类
  • 内部类可以访问外部类的私有成员,这样可以将相关的类和接口隐藏在外部类的内部,提高封装性
  • 匿名内部类是没有名字的类,通常用于定义一个只使用一次的类

3. 分类

3.1 静态内部类

可以当做静态变量来看

//静态内部类
public class OuterClass{private static int i = 0;private int j = 100;public static void m1() {System.out.println("m1");}public void m2() {System.out.println("m2");}//静态内部类//四种访问控制权限修饰符在这里都可以使用private static class InnerClass {public void m3() {System.out.println(i); //可以访问System.out.println(j); //不可以访问m1(); //可以访问m2(); //不可以访问}}
}

注意点:无法直接访问外部类中实例变量和实例方法
如何使用: OuterClass.InnerClass oi = new OuterClass.InnerClass ();

3.2 实例内部类

可以当做实例变量来看

//实例内部类
public class OuterClass{private static int i = 0;private int j = 100;public static void m1() {System.out.println("m1");}public void m2() {System.out.println("m2");}//静态内部类//四种访问控制权限修饰符在这里都可以使用private class InnerClass {public void m3() {System.out.println(i); //可以访问System.out.println(j); //可以访问m1(); //可以访问m2(); //可以访问}}
}

注意点:可以直接访问外部类中所有的实例变量,实例方法,静态变量,静态方法
如何使用: OuterClass.InnerClass oi = new OuterClass().new InnerClass ();

3.3 局部内部类

可以当做局部变量来看

//局部内部类
public class OuterClass{private static int i = 0;private int j = 100;public void m1() {//局部变量int i = 11;//局部内部类class InnerClass {public void m2() {System.out.println(i); //可以访问System.out.println(j); //可以访问}}//new 对象InnerClass ic = new InnerClass();ic.m2();}public static void m3() {int i = 11;//局部内部类//这里的内部类的类名可以和上面相同的原因是属于局部,就和局部变量一样,出了大括号之后就没了class InnerClass {public void m2() {System.out.println(i); //可以访问System.out.println(j); //不可以访问}}}
}

注意点:

  • 局部内部类方外类外部的局部变量时,局部变量需要被final修饰
  • 不能使用访问权限控制符修饰,因为只是在局部访问,外部不需要访问,添加这些修饰符也没有什么用
  • 从JDK8开始,不需要手动添加final了,但JVM会自动添加

3.4 匿名内部类

特殊的局部内部类,没有名字,只可以使用一次

//匿名内部类
public class test {public static void main(String[] args) {Computer c = new Computer();c.conn(new Usb() {@Overridepublic void read() {System.out.println("read");}@Overridepublic void write() {System.out.println("write");}});}
}class Computer {public void conn(Usb usb) {usb.read();usb.write();}
}interface Usb {void read();void write();
}
关键字:自动跳转导航入口_游戏网站开发_以网络营销为主题的论文_重庆 seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: