内部类

内部类包含:实例内部类(成员内部类)、静态内部类、本地内部类、匿名内部类 阅读详情

什么是内部类

将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。
例如:Body类中包含着Heart类,这个Heart类就可以使用内部类来描述。(来一幅很形象的图吧)

代码举例

class Body{       //外部类

		class Hreat{    //内部类
		}
}

访问特点

  • 内部类可以直接访问外部类的成员,包括私有成员。
  • 外部类要访问内部类的成员,必须要建立内部类的对象

创建内部类对象格式:

  • 外部类名.内部类名 对象名 = new 外部类型().new 内部类型();

一:成员内部类

代码演示(这里是间接调用)

package innerClass.demo01;

public class Outter {   // 外部类

    public class Inner{   //成员内部类

        public void methodIn(){     // 内部类方法
            System.out.println("内部类方法 ");

            System.out.println("我叫"+name);
        }

    }

    public void methodOut(){      //外部类方法
        System.out.println("外部类方法");

        Inner inner = new Inner();   //new 一个内部类的兑象
        inner.methodIn();           //调用内部类方法
    }

    private String name;
	public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
package innerClass.demo01;

public class InnerClassTest {
    public static void main(String[] args) {

        //new 一个外部类的对象
        Outter outter = new Outter();
        //通过外部类对象调用外部类方法实现调用内部类方法
        outter.methodOut();
    }
}

结果

在这里插入图片描述

代码演示(这里是直接调用)

package innerClass.demo02;

public class Outter {   // 外部类

    public class Inner{   //成员内部类

        public void methodIn(){     // 内部类方法
            System.out.println("内部类方法 ");

            System.out.println("我叫"+name);
        }

    }

    public void methodOut(){      //外部类方法
        System.out.println("外部类方法");

//        Inner inner = new Inner();   //new 一个内部类的兑象
//        inner.methodIn();           //调用内部类方法
    }

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

package innerClass.demo02;

public class InnerClassTest {
    public static void main(String[] args) {
		// 通过   ----- 外部名称 . 内部类名称 对象名  =  new 外部类名称.()new 内部类名称();
        Outter.Inner object = new Outter().new Inner();
        object.methodIn();
    }
}

结果

在这里插入图片描述

内部类变量重名问题

package innerClass.demo03;

public class Outer {

    int num = 10;                                   //num 

    public class Inner{

        int num = 20;                               //num
        public void InnerMethod(){
            int num = 30;                           //num

            System.out.println(num);  //获取内部类方法中的num
            System.out.println(this.num);  //获取内部类中的num
            System.out.println(Outer.this.num); //获取外部类的num
        }
    }
}
package innerClass.demo03;

public class Test {
    public static void main(String[] args) {

        Outer.Inner obj = new Outer().new Inner();
        obj.InnerMethod();
    }
}

结果

在这里插入图片描述

二:局部内部类

一个类定义在方法中,这个类就称为局部内部类。
“局部”:当前所属的方法才能使用它,除了方法就不可以访问。

package innerClass.demo04;

public class Outer {

    public void MethodOuter(){

          class Inner{       // 局部内部类
              int num = 10;
              public void MethodInner(){
                  System.out.println(num);
              }

         }
         Inner inner = new Inner();
          inner.MethodInner();
    }
}
package innerClass.demo04;

public class main {
    public static void main(String[] args) {

        Outer outer = new Outer();
        outer.MethodOuter();
    }
}

结果

在这里插入图片描述

三:匿名内部类

是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。

格式解析
new   接口名称  ( )   {**** } ;
  1. new 代表创建对象
  2. 接口名称就是内部类需要实现的接口名称
  3. {****} 是匿名内部类的主要内容
应用场景

此类指向用一次,用完之后再也不用
匿名内部类就是只能**创建对象时候使用一次,也就是只能new一个对象,**只可用唯一一次
如果想要多次使用,就只能写实现类了。

代码实现

package innerClass.demo05;

public interface noNameInnerClass {

     public abstract void method();

}

package innerClass.demo05;

public class Test {

    public static void main(String[] args) {

        /*
        .等号右边:是匿名内部类,定义并创建该接口的子类对象
         等号左边:是多态赋值,接口类型引用指向子类对象
         */

        noNameInnerClass obj = new noNameInnerClass() {
            @Override
            public void method() {
                System.out.println("匿名内部类方法");

            }
        };                                      //到这里是匿名内部类

        obj.method();

    }

}

结果

在这里插入图片描述

(转载标明出处,谢谢)

Python实战:3步搞定DICOM转JPG/PNG(附批量处理脚本) 本文详细介绍了如何使用Python在3步内将DICOM医学影像转换为JPG/PNG格式,并提供了批量处理脚本。通过Pydicom、Pillow和NumPy库的组合,解决了像素值处理、批量转换效率和医学图像特性保留等关键问题,适合医疗AI开发者和放射科医生快速集成到工作流中。 阅读详情

相关推荐

【嵌入式】树莓派部署NCNN的YOLOv5模型

树莓派部署NCNN框架的YOLOv5模型

Ace_Spade的博客 3783

Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)

Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)

leaf__yang的博客 2万+

西门子200SMART自定义库开发实战:从PID到露点算法的工业应用

本文详细介绍了西门子200SMART自定义库开发实战,涵盖从PID控制到露点算法的工业应用。通过代码封装技巧、多语言支持和性能优化等高级开发方法,帮助工程师提升PLC编程效率。文章特别强调了自创库在实际项目中的优势,如恒温恒湿控制系统的成功案例,展示了自定义库在工业自动化中的强大应用价值。

lake5的博客 1026

内部类(成员内部类、静态内部类、方法内部类)

一:成员内部类:最常见的内部类就是成员内部类,也称作普通内部类;1、Inner类定义在Outer类的内部,相当于Outer类的成员变量的位置,Inner类可以使用任意访问修饰符,如:public、private、protected等。2、Inner类中定义的test()方法可以访问Outer类中的数据,不受访问控制符的影响。3、定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去......

liu771626413的博客 4万+

Redhawk解析PAD / IOPAD的实现方法

Redhawk解析IOPAD的实现方法1. IOPAD DEF的概念说明2. 生成 IOPAD GDS文件3. 生成 IOPAD DEF文件4. Redhawk解析过程中读取IOPAD DEF 本文主要简述【Redhawk解析IOPAD】的实现原理方法,具体脚本没有放在这里。 1. IOPAD DEF的概念说明 2. 生成 IOPAD GDS文件 注: getinfo2IODEF.tcl 是基于innovus获取IOPAD的摆放信息以及库信息。 run_cerate_iopadgds.csh 是基于c

kobayashiyou的博客 3154

拯救者R9000P-2021-AMD5800H黑苹果EFI配置与优化指南

本文详细介绍了在联想拯救者R9000P 2021款(搭载AMD锐龙7 5800H处理器)上安装和优化黑苹果系统的完整指南。内容涵盖EFI配置、OpenCore引导设置、关键驱动(如NootedRed核显驱动)的调整,以及安装后的性能调优与常见问题解决,旨在帮助开发者和极客用户在这款游戏本上搭建稳定可用的macOS开发环境。

weixin_29291069的博客 287

什么是内部类?内部类的种类?内部类的作用?

一、什么是内部类 将一个类定义在一个类或者一个方法里面,这样的类称着内部类 https://www.jianshu.com/p/83a50ef23279 https://blog.youkuaiyun.com/lianxu3344/article/details/79473607 https://blog.youkuaiyun.com/flyfeifei66/article/details/82686086 https:...

T-bright的博客 1万+

sap销售发货的流程_SAP销售订单发货后如何实现发票的自动创建?

问SAP销售订单发货后如何实现发票的自动创建?答业务场景有些快消零售企业,SAP系统单据量大,单据金额少,一般在销售发货后即可确认收入。此时无需人工在系统内操作VF01或者VF04进行开票操作,可将该操作设置成后台作业进行自动批量开票,具体操作如下:1、定义任务:VF06输入完以上信息,点击保存进入以下界面:说明:当前日期的意思是“开票的日期”等于“系统电脑中的当前日期”当前日期+/-...

weixin_42358409的博客 3363

内部类(成员内部类、局部内部类、匿名内部类、静态内部类)

内部类(成员内部类、局部内部类、匿名内部类、静态内部类)

weixin_44216665的博客 5906

深入解析AUTOSAR中IIC的MCAL实现与Vector配置实践

本文深入解析AUTOSAR架构中IIC总线的MCAL实现与Vector配置实践,探讨IIC在汽车电子中的特殊定位及Vector的折中方案。通过Channel与Sequence设计模式、Chain特性应用及DaVinci Configurator配置步骤,提供IIC驱动的优化与安全实现方法,助力开发者高效解决车载通信问题。

weixin_29172963的博客 407

SAP移动类型

SAP移动类型移动类型定义 移动类型定义

qq_20593197的博客 6205

java内部类之成员内部类、局部内部类和匿名内部类

内部类概念 一个类中包含另外一个类。 分类 1、成员内部类。 2、局部内部类(包含匿名内部类)。 成员内部类 定义格式: 修饰符 class 类名称 { 修饰符 class 类名称 { //... } //... } 注意: 内部类使用外部,可以随意访问,但是外部类使用内部类要借助内部类的对象。 使用成员内部类 两种方法: 1...

green703338130的博客 6713

RK3568下MIPI屏幕调试技巧

通过合理配置设备树节点、精确计算像素时钟并完成编译烧录,可高效实现RK3568平台MIPI屏幕的点亮与显示调试。关键在于严格遵循屏幕规格书参数,结合内核日志定位问题,逐步优化时序配置。掌握这一流程后,开发者可快速适配不同分辨率、刷新率的MIPI屏幕,为嵌入式系统显示模块开发奠定基础。如果在调试中遇到特定问题(如驱动匹配失败、时钟计算误差),建议优先查阅屏幕规格书和RK3568芯片手册,或通过内核社区(如Linux-DRI邮件列表)获取支持。

文石_2009的博客 1204

【Java基础】内部类 (成员内部类、局部内部类、静态内部类、匿名内部类)

Java内部类 (成员内部类、局部内部类、静态内部类、匿名内部类)

good good study day day up 3398

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

内部类(成员内部类+局部内部类+静态内部类+匿名内部类)

内部类的定义:在java中,允许在一个类的内部定义类,称为内部类,这个内部类所在的类称为外部类。内部类定义在外部内的内部,通常只服务于外部类,对于其他外部是不具备可见性的。内部类应用场景:1.当某个类只为一个类提供服务时,可以将这个类定义成内部类 2.可以解决接口或者抽象类不能实例化的问题 成员内部类:在一个类中除了可以定义成员变量,成年方法,还可以定义类,这样的类称为成员内部类。在成员内部类中可以访问外部类的所有成员资源(包括私有成员),例如成员变量

qq_51768153的博客 4361

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java 四大内部类总结——局部内部类,匿名内部类,成员内部类,静态内部类

Java 四大内部类总结——局部内部类,匿名内部类,成员内部类,静态内部类

prince0520的博客 3118

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

什么是内部类?内部类的作用

在java语言中,可以把一个类定义到另外一个类的内部,在类里面的这个类就叫内部类,外面的类就叫外部类。 在这情况下,这个内部类可以看做外部类的一个成员。 内部类好处 1.隐藏你不想让别人知道的操作,也即封装性。 public interface Contents { int value(); } public interface Destination { String readLabel...

yy471101598的博客 9669

Java内部类这一篇就够啦,超详细,新人友好(成员内部类、静态内部类、局部内部类和匿名内部类)

详细的介绍成员内部类、静态内部类、局部内部类和匿名内部类,超详细,值得收藏!

shiyuechunfeng的博客 2764

什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?

一、什么是内部类?or 内部类的概念 内部类是定义在另一个类中的类;下面类TestB是类TestA的内部类。即内部类对象引用了实例化该内部对象的外围类对象。 public class TestA{ class TestB {} } 二、 为什么需要内部类?or 内部类有什么作用? 1、 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。 2、内部类可以对同一个包中的其他类隐藏起来。 3、 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。 三、 内部类的分类 成员内部

sulixu的博客 3822

内部类与静态内部类

内部类与静态内部类 目录 前言 内部类 1.1 非静态内部类 1.1.1 定义 1.1.2 内部类的特殊语法规则 1.2 静态内部类 回到顶部 前言   如果你是一个急性子,没什么耐性的人,可以只看下句,自己去品味理解:   内部类:就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的)   静态内部类:就是我跟你没关系,自己可以完全独立存在,但是我就借你的壳用一下,来隐藏自己。   如果还不知道静态和普通成员..

qq_40826814的博客 2984

面试 | 什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?

1 内部类的概念 内部类是定义在另一个类中的类;下面类B是类A的内部类。即内部类对象引用了实例化该内部对象的外围类对象。 public class A{ class B {} } 2 为什么需要内部类?(来自JAVA核心技术) 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。 内部类可以对同一个包中的其他类隐藏起来。 当想要定义一个回调函数且不想编写大量代码时,使用匿名内...

星空下的程序猿 3254

Java 内部类 ==> 成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类

一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类(innerclasses)。 内部类可以使用public、default、protected 、private以及static修饰。而外部顶级类(我们以前接触的类)只能使用public和default修饰。 注意 内部类只是一个编译时概念,一旦我们编译成功,就会成为完全不...

郑德帅 7449

java内部类之成员内部类、静态内部类

内部类其实就是一个类中还包含着另外一个类 如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类,而心脏又在人体当中,正如同是内部类在外部内当中 广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部

gongpulin的博客 4367

java内部类之私有内部类、局部内部类、匿名内部类

一、私有内部类: class Out { private int age = 12; private class In { public void print() { System.out.println(age); } } public void outPrint() { new

gongpulin的博客 1万+

Java-内部类:成员内部类、局部内部类、匿名内部类、静态内部类

本文介绍了Java中内部类:成员内部类、局部内部类、匿名内部类、静态内部类,从5W2H以及它们的区别进行了描述

向诸位大佬虚心学习 1766

Java基础巩固——内部类(静态内部类,局部内部类,匿名内部类)详细讲解

(也叫嵌套类)

Future_yzx的博客 1238
上一篇: java多线程的创建
下一篇: TCP/UDP 之 webSocket
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值