返回顶部
首页 > 资讯 > 精选 >浅谈Java中的内部类
  • 504
分享到

浅谈Java中的内部类

2023-06-02 16:06:20 504人浏览 泡泡鱼
摘要

最近在讲Java中的内部类,感觉内部类实际上对于初学者用得不多,那么内部类简单的说,其实就是在一个类的内部定义的类。按照定义的情况分为:成员内部类,局部内部类,静态内部类,匿名内部类。成员内部类,就是定义一个当作类的成员变量的类。局部内部类

最近在讲Java中的内部类,感觉内部类实际上对于初学者用得不多,那么内部类简单的说,其实就是在一个类的内部定义的类。

按照定义的情况分为:成员内部类,局部内部类,静态内部类,匿名内部类。

成员内部类,就是定义一个当作类的成员变量的类。

局部内部类,就是在类里面定义一个当作局部变量的类,通常是在方法或代码块中使用。

静态内部类,就是在类中定义一个静态变量,而该静态变量是一个类。

匿名内部类,通常是在创建一个接口对象,该对象是在创建对象的同时实现接口,而该接口的实现只是在此处使用一次,所以不需要定义名字,称为匿名内部类。

请看如下代码:

public interface MyInter{

public void method();

}

public class Outter {

//public static int i; // 普通静态变量

// 静态内部类

public static class Inner3{

}

//public String name; // 普通成员变量

// 成员内部类

public class Inner1{

}

public void test() {

//String n; // 普通局部变量

// 局部内部类

class Inner2{

}

// 匿名内部类,在运行时会生成一个临时的名字,类似:Outter$1.java

MyInter in = new MyInter() {

@Override

public void method() {

}

};

}

}

上面的代码展示了4种不同的内部类的情形。

接下来看看这4种情形的具体用法。

静态内部类:

public class Outter {

public int o1;

public static int os1;

public void om1() {

System.out.println(Inner3.ns3);

System.out.println(new Inner3().n3);

System.out.println("om1");

}

public static void oms1() {

System.out.println("oms1");

}

//public static int i;

// 静态内部类

public static class Inner3{

// 在静态内部类中可以定义基本的成员和方法,以及静态成员和方法

public int n3;

public static int ns3;

public void m3() {

System.out.println("m3");

}

public static void ms3() {

System.out.println(os1);

oms1();

System.out.println("ms3");

}

}

}

静态内部类的使用:

public static void main(String[] args) {

  Outter.Inner3 i3 = new Outter.Inner3();

  i3.n3 = 3;

  Outter.Inner3.ns3 = 4;

  Outter.Inner3.ms3();

  i3.m3();

}

可以看到静态内部类和静态变量使用方式差不多,直接使用类名即可。

成员内部类:

//成员内部类

public class Inner1{

public int n1;

public int o1;

public void m1(int o1) {

o1 = 1; // 局部变量

this.o1 = 2; // 当前属性

Outter.this.o1 = 4; // 外部属性

om1();

System.out.println("m1");

}

}

成员内部类的使用:

public static void main(String[] args) {

// 调用

Outter.Inner1 i1 = new Outter().new Inner1();

i1.n1 = 3;

i1.m1(3);

}

由于是成员,所以需要先创建对象才能使用。

局部内部类和匿名内部类:相当于局部变量,只能在方法里面调用和创建对象等,可以调用外部的变量和方法,外部不能调用它。请看如下方法:

public void test() {

//String n;

// 局部内部类

class Inner2{

public void m2() {

o1 = 3;

}

}

Inner2 i2 = new Inner2();

i2.m2();

// 匿名内部类,在运行时会生成一个临时的名字,类似:Outter$1.java

MyInter in = new MyInter() {

@Override

public void method() {

o1 = 3;

}

};

in.method();

}

至此,内部类简单的使用基本就到这了。

--结束END--

本文标题: 浅谈Java中的内部类

本文链接: https://lsjlt.com/news/230701.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈Java中的内部类
    最近在讲Java中的内部类,感觉内部类实际上对于初学者用得不多,那么内部类简单的说,其实就是在一个类的内部定义的类。按照定义的情况分为:成员内部类,局部内部类,静态内部类,匿名内部类。成员内部类,就是定义一个当作类的成员变量的类。局部内部类...
    99+
    2023-06-02
  • 浅谈Java面向对象之内部类
    目录内部类访问外部对象访问内部对象局部内部类匿名内部类静态内部类内部类 内部类是定义在另一个类中的类,例如 TalkingClock 类中内嵌了 TimePrinter 类: c...
    99+
    2024-04-02
  • 浅析Java语言中的内部类
    浅析Java语言中的内部类[@more@]  提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上...
    99+
    2023-06-03
  • 浅谈Java内省机制
    目录概念JavaBean内省相关API代码案例:获取属性相关信息内省属性的注意事项完整代码概念 JavaBean 在实际编程中,我们常常需要一些用来包装值对象的类,例如Student...
    99+
    2022-11-13
    Java内省机制 Java内省
  • 浅谈Java中Properties类的详细使用
    目录一、Properties 类二、打印JVM参数三、打印自定义.properties文件中的值3.1、list输出到控制台用绝对路径加载3.2、propertyNames输出get...
    99+
    2024-04-02
  • 浅谈java类和对象
    目录一、面向对象的描述二、类和对象的基本概念三、类定义和使用1、简单认识类2、类的定义3、实例化对象4、类的三大特性封装继承多态一、面向对象的描述 面向对象是一种现在最为流行的程序设...
    99+
    2024-04-02
  • 如何理解Java内部类中的局部内部类
    这篇文章给大家介绍如何理解Java内部类中的局部内部类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。局部内部类  局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或...
    99+
    2023-06-05
  • 浅谈java Properties类的使用基础
    Properties类继承自HashTable,通常和io流结合使用。它最突出的特点是将key/value作为配置属性写入到配置文件中以实现配置持久化,或从配置文件中读取这些属性。它的这些配置文件的规范后缀名为".properties"。表...
    99+
    2023-05-30
  • 浅谈Java虚拟机对内部锁的四种优化方式
    自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除(Lock Elision)、锁粗化(Lock Coarsening)、偏向锁(Biased Locking)以及适应性锁(Adaptive...
    99+
    2023-05-31
    java 虚拟机 优化
  • 如何理解Java内部类中的匿名内部类
    如何理解Java内部类中的匿名内部类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。匿名内部类  匿名内部类应该是平时我们编写代码时用得最多的,在编写事件监听的代码时使用匿名...
    99+
    2023-06-05
  • 如何理解Java内部类中的成员内部类
    如何理解Java内部类中的成员内部类,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的...
    99+
    2023-06-05
  • 浅谈java枚举类(附代码)
    java枚举类介绍:(java学习视频推荐:java视频教程)一、什么情况下使用枚举类?有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便。二、为什么不用静态常量来替代枚举类呢?public static final i...
    99+
    2020-08-22
    java
  • Java内部类与匿名内部类
    目录一、内部类什么是内部类成员内部类访问特点二、匿名内部类前提格式使用方式一、内部类 什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 成员...
    99+
    2024-04-02
  • Java 内部类
    文章目录 1、初识内部类 2、非静态内部类(实例内部类) 3、静态内部类(重点) 4、内部类的使用 5、局部内部类 6、匿名内部类 ...
    99+
    2023-09-16
    java
  • Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)
    内部类是什么? 字面意思,在类的内部编写的类就叫内部类!即一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。 内部类是类的第五大成员→【提示:类的五大...
    99+
    2023-10-26
    jvm
  • 浅谈Java中的Queue家族
    目录Queue接口Queue的分类BlockingQueueDequeTransferQueueQueue接口 先看下Queue的继承关系和其中定义的方法: Queue继承自Col...
    99+
    2024-04-02
  • 浅谈Java中FastJson的使用
    FastJson的使用 使用maven导入依赖包 <!--下边依赖跟aop没关系,只是项目中用到了 JSONObject,所以引入fastjson--> <de...
    99+
    2024-04-02
  • 怎么浅谈Java并发编程中的Java内存模型
    这篇文章的内容主要围绕怎么浅谈Java并发编程中的Java内存模型进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!物理计算机并发问题在介绍Java内存...
    99+
    2023-06-17
  • java中内部类的类型有哪些
    java中内部类的类型有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式...
    99+
    2023-06-14
  • Java中的Kotlin 内部类原理
    目录Java 中的内部类OutterJava.classInnJava.classKotlin 中的内部类总结Java 中的内部类 这是一个 Java 内部类的简单实现: publi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作