Java知识梳理---内部类(扩展)

最全Java面试知识点梳理 1. 前言 最近面试了几家公司,体验了一下电话面试和今年刚火起来的视频面试, 虽然之前就有一些公司会先通过电话面试的形式先评估下候选人的能力水平,但好像不多,至少我以前的面试形式100%都是现场面试。 面试过程中,不可避免的被问到了很多面试题,本篇博客就总结下面试过程中被问到的关于String的2道面试题,分别是: 如何判断一个字符串中某个字符出现的次数? 如何反转一个字符串? 其余的面试题,目前都已梳理出来,后续会以博客的形式进行分享。 Java核心架构笔记大致如下 0~1年: Java基础(基本语 阅读详情

Java知识梳理---内部类(扩展)


Java知识梳理: java知识梳理

内部类可分为成员内部类,静态内部类,局部内部类,匿名内部类。
特点:

  • 内部类可以直接访问外部类的私有成员,而不破坏封装
  • 为外部类提供必要的内部功能组件
  • 编译后会生成独立的字节码文件
    在这里插入图片描述

成员内部类

成员内部类: 定义在其他类中的类作为成员存在

  • 当外部类和内部类有重名的属性时会有限访问内部类属性
  • 不能定义静态成员,但是可以定义静态常量

案例:

public class Outer_class {
    private String name="lala";

    class Inner_class{
        private String name="hha";
        private String phone="1223546";
        //不可以定义静态变量,但是可以定义静态常量
        private static final String country="中国";
        //内部类可以直接访问外部类的私有成员
        public void show(){
            //重名属性访问外部类属性
            System.out.println(Outer_class.this.name);

            System.out.println(name);
            System.out.println(phone);
        }
    }
}
public class test_inner {
    public static void main(String[] args) {
        //创建外部类对象
        Outer_class outer_class=new Outer_class();
        //创建内部类对象
        //需要将外部类的名称加在内部类的前面
        //使用外部类对象.new来创建内部类对象
        Outer_class.Inner_class inner_class=outer_class.new Inner_class();
//        Outer_class.Inner_class inner_class1=new Outer_class().new Inner_class();

        inner_class.show();
    }
}

静态内部类

静态内部类: 使用static关键字定义的内部类

  • 只有内部类才能写成静态的
  • 不依赖外部类对象
  • 可以直接创建或通过类名访问
  • 可声明静态成员
  • 相当于外部类

案例:

public class staticInnerClass {
    private String name="yang";
    //静态内部类,级别和外部类相同
    static class inner_class{
        private String address="河南";
        private static int num=100;

        public void show(){
            //调用外部类属性
            //需要先创建外部类对象,然后使用对象调用属性
            staticInnerClass staticInnerCategory=new staticInnerClass();
            System.out.println(staticInnerCategory.name);

            System.out.println(address);
            System.out.println(num);
        }
    }
}
public class testStatic {
    public static void main(String[] args) {
        staticInnerClass.inner_class inner=new staticInnerClass.inner_class();
        inner.show();
    }
}

局部内部类

局部内部类: 定义在外部类方法中的类,作用范围和创建对象范围仅限于当前方法

  • 局部内部类访问外部类方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final

案例:

public class OuterClass {
    private String name="木头人";

    public void show(){
        String phone="15462364";

        //局部内部类class前面不能加任何访问修饰符,例如private
        class InnerClass{
            private String address="地球";

            public void show1(){
                //可以直接访问外部类的属性
                System.out.println(name);

                //访问方法的局部变量
                //jdk1.8以后默认在局部变量前加上final
                //局部内部类访问外部类方法中的局部变量时,
                //因无法保障变量的生命周期与自身相同,变量必须修饰为final
                //相当于 System.out.println("15462364");
                System.out.println(phone);

                System.out.println(address);
            }
        }

        InnerClass innerClass=new InnerClass();
        innerClass.show1();
    }
}
public class testPart {
    public static void main(String[] args) {
        OuterClass outer_class=new OuterClass();
        outer_class.show();

    }
}

匿名内部类

  • 没有名字的内部类,等价于没有名字的局部内部类
  • 必须继承一个父类或者实现一个接口
  • 定义类,实现类,创建对象的语法合并,只能创建一个该类的对象
  • 优点:减少代码量
  • 缺点:可读性差

案例:

public interface Usb {
    void Service();
}
public class Mouse implements Usb {
    @Override
    public void Service() {
        System.out.println("鼠标USB连接成功!");
    }
}
public class testUsb {
    public static void main(String[] args) {
        //1.创建接口类型变量====多态
        //接口对象引用一个具体的实现类
        /*USB usb=new Mouse();
        usb.Service();*/

        //2.局部内部类
        /*class Key implements USB{

            @Override
            public void Service() {
                System.out.println("键盘USB连接成功!");
            }
        }
        USB usb=new Key();
        usb.Service();*/

        //使用匿名内部类===相当于创建了一个局部内部类
        Usb usb=new Usb() {
            @Override
            public void Service() {
                System.out.println("显示器连接成功!");
            }
        };
        usb.Service();
    }

}

其他相关文章:

Java千百问_08JDK详解(004)_jdk基础扩展类库都有什么 1、jdk基础扩展类库都有什么了解java核心框架看这里:java核心框架是什么样的 jdk基础类库分为两大部分,基础库、扩展基础库,提供了相当大量的功能,扩展基础库具体如下: I/O工具(I/O) java.io和java.nio包提供了一组非常丰富的api来管理应用程序的I/O(输入/输出)。包括文件和设备I/O、对象序列化、缓冲区管理、字符集支持等。此外,API还为服务端提供了包括多路复用 阅读详情

相关推荐

Java基础IO知识梳理

选择模型:低并发用BIO,高并发用NIO,长连接用AIO。资源管理:使用自动关闭流,避免泄漏。

AXBai的博客 1623

内部类的扩展

/* 看API,发现类名或者接口名称中有 . 说明是内部类,或者内部接口。 内部类的延伸。 内部类是可以继承或者实现外部其他的类或者接口的。 好处:通过内部类的方式对类进行继承重写,或者接口进行实现。 通过公共的方式对其内部类对象进行访问。因为通常内部类很有可...

chuyuan1156的博客 202

AI办公Agent技术:文档与表格智能处理实践

办公自动化技术正从规则驱动转向语义理解,大语言模型(LLM)为办公Agent赋予了智能决策能力。这类系统通过五层架构整合自然语言处理、工具API调用和任务规划引擎,能自动完成文档分类、表格分析等高重复性工作。关键技术包括基于TF-IDF和BERT的特征提取、Excel公式自动生成等,在财务报告、法律审查等场景可实现90%以上的效率提升。随着多模态能力和领域专业化发展,办公Agent正在重塑企业文档处理流程,成为数字化转型的核心基础设施。

weixin_30263277的博客 519

java 接口中定义枚举_Java:包含内部枚举的接口;在实现类中扩展功能

我有一个如下界面:package example;import java.awt.Point;public interface Thing {public enum MovingState {MOVING_LEFT,MOVING_UP,MOVING_RIGHT,MOVING_DOWN}public void setNewPosition(MovingState state);public Poin...

weixin_32737183的博客 584

保姆级教程:用GEE(Google Earth Engine)复现CASA模型计算NPP,附完整数据集清单与Python代码

本文提供了一份详细的保姆级教程,指导如何使用GEE(Google Earth Engine)复现CASA模型计算NPP(净初级生产力)。教程涵盖环境准备、关键数据集获取与处理、Python代码实现全流程,以及结果验证与常见问题解决方案,帮助生态学研究者高效完成NPP计算。

weixin_28707365的博客 334

Docker安装Nacos(详细教程)

Docker安装Nacos的步骤相对直接,但需要注意一些细节以确保安装成功。

weixin_73060959的博客 1406

Java中类的拓展之内部类

引言:在内部类中,在平时基本不会用到,只有在库中的代码中遇到的多一些,平时使用多的就是匿名类,在后续会将匿名类补上,这里先了解什么是内部类和如何定义和使用。 目录 一.什么是内部类 二.内部类的代码演示 三.内部类的分类 1.成员内部类 (1)普通内部类 (2)静态内部类 2.局部内部类 (1)定义和使用格式 3.匿名内部类(后续补上) 一.什么是内部类 在 Java 中,将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。 通俗的说就是在一个类中再定义一个.

weixin_47651920的博客 381

5、数字图像采集:X射线成像技术全解析

本文全面解析了数字图像采集中的X射线成像技术,涵盖数字X射线探测器、荧光透视与血管造影、乳腺摄影以及计算机断层扫描(CT)的图像重建原理。详细介绍了TFT平板探测器的优势、DSA技术在血管成像中的应用、乳腺摄影对高对比度和分辨率的需求,以及CT中基于Radon变换和滤波反投影的重建方法。同时探讨了噪声、部分容积效应、金属伪影和运动伪影等常见问题及其影响。最后总结了各类X射线成像技术的特点与应用场景,并展望了未来在图像质量提升和剂量优化方面的技术发展方向。

l6m7n8的博客 128

java 扩展类 包装类_Java——扩展概念(匿名内部类、包装类、装箱与拆箱、数据类型的转换)...

目录1、匿名内部类2、包装类实现原理分析3、装箱与拆箱4、数据类型转换5、总结本文讲解的扩展内容,包括:匿名内部类、包装类实现原理分析、装箱与拆箱、数据类型转换。1、匿名内部类匿名内部类,故名思意就是没有名字的内部类。匿名内部类有什么用?先看下面的一段简单代码:【举例】:观察如下代码的问题public class MainActivity extends AppCompatActivity {@O...

weixin_36330888的博客 260

Dify知识库文档批量下载神器:一键导出所有文件到本地

在使用Dify进行知识库管理的过程中,我们经常遇到一个实际问题:如何将已上传到知识库中的文档批量下载到本地?目前Dify的管理界面虽然功能强大,但暂时没有提供直接的UI界面来批量导出或下载知识库内的文档。这意味着如果我们需要将知识库中的文件备份到本地或进行离线处理,只能通过API接口来实现。本文将详细介绍如何利用Dify的REST API构建一个完整的知识库文档下载解决方案,这也是目前实现知识库文件批量下载到本地的唯一可行路径。🎉进入大模型应用与实战专栏 | 🚀查看更多专栏内容首先,我们需要在Dify的

羊城迷鹿的博客 3473

SAP_FICO模块-资产减值功能对折旧和残值的影响

SAP_FICO模块-资产减值操作对资产历史折旧以及后续折旧的影响,包括减值操作的配置前提

风沙的博客 2805

Java基础,Java 面向对象(OOP)核心知识点

Java 是一门纯面向对象的编程语言,面向对象编程(OOP,Object Oriented Programming)是 Java 编程的核心思想,也是区分新手程序员和入门程序员的关键知识点。面向对象颠覆了传统面向过程「步骤化、流水线」的编程思维,将程序中所有事物抽象为对象,通过对象的属性和行为完成业务逻辑,具备高复用、低耦合、易维护的特点。本文将从核心思想、类与对象、三大特性、核心关键字、构造方法、代码块、内部类、常用工具类、易错点面向过程(POP)

2401_85105482的博客 344

Android12 适配 usb 触屏

在 Android 系统中,输入设备 IDC(Input Device Configuration)设备描述文件(.idc)是用于配置和定义输入设备行为和属性的文本文件。 该文件通常在`/system/usr/idc/` 或 `/vendor/usr/idc/`,具体位置因芯片厂商SDK而异。一般情况此类文件是预置到系统,开发者 root 权限才能修改这些文件。输入设备 IDC 设备描述文件在 Android 系统中起到了识别、配置、映射和定制输入设备的作用,使得系统能够准确解析和处理各种输入设备的事件,提

weixin_35723192的博客 1234

Java基础知识点梳理(详细)

Java基础知识点全面梳理(详细)

程序员小辰的代码小窝 9万+

2026年最值得学习的十大 SAP 开发技术

在这辞旧迎新之际,我想和大家聊聊我心中的2026年我仍然愿意持续投入时间去学习的一些 SAP 开发技术。因为笔者水平和视野局限,加上这份清单有笔者主观兴趣爱好在内,可能大家对清单上罗列的技术有不同意见,欢迎大家在评论区发表自己的见解。下面是笔者列出的十个技术方向,排名不分先后。因为精力有限,2026年我很可能只会选择其中一两个自己最感兴趣的方向去深耕。每项技术后面都提供了链接,方便大家看完就开始学习。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1521

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java SE知识梳理

基础 运算符 编译器优化 byte、short、char的赋值优化 常量优化 位运算 流程控制语句 switch 多个case后面的数值不可以重复。 不能写else,只能写default。 switch后面小括号当中只能是下列数据类型: 基本数据类型:byte/short/char/int 引用数据类型:String字符串、enum枚举 穿透switch语句 switch语句格式很灵活:前后顺序可以颠倒,而且break语句还可以省略。 匹配哪一个case就从哪一个位置向下执

Luis 352

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JAVA重要知识点梳理(一)

1、Struts2和SpringMVC的区别(1)设计理念:前者为有状态的Action(均为多例),Action对象属性字段承载请求、响应,后者一般为无状态的Controller,请求直接封装到方法的参数中;(2)集中访问点不同:都属于前端控制器,用于接收请求、处理请求和生成响应,但集中访问点不同,前者为Filter,后者为Servlet;(3)请求处理粒度不同:前者一个Action对应一个请求上...

wzk646795873的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Java相关知识点梳理总结(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

m0_60528030的博客 961

Java 语言知识结构梳理

当 Java 提供的异常类不能满足需求时,可以自定义异常类,通常继承 Exception 或 RuntimeException 类。

Toroto5的博客 992

JAVA面向对象知识梳理

继承(Inheritance):继承是一种机制,允许创建一个新的类,从已有的类派生出来。子类继承父类的属性和方法,并可以添加自己特有的属性和方法。多态(Polymorphism):多态是指同一个类的对象在不同的情况下表现出不同的行为。封装(Encapsulation):封装是将对象的属性和方法封装在一起,隐藏内部实现细节,只对外提供必要的接口。类(Class):类是对象的抽象,描述了一类具有相同属性和行为的对象。对象(Object):对象是类的实例化,是具体的实体,具有类定义的属性和行为。

2301_81826647的博客 261

java中的四种内部类详解(成员类内部类,静态内部类,局部内部类,匿名内部类)

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf。

2401_85112749的博客 757

java 匿名函数_初学Java要了解些什么 内部类与匿名类怎么回事

  初学Java要了解些什么?内部类与匿名类怎么回事?Java是一门面向对象编程语言,具有简单易用、功能强大的特点,是目前互联网行业应用最广泛的编程语言之一。很多人反映在学习Java时常常被内部类和匿名类搞晕,接下来就给大家梳理一下内部类与匿名类的相关知识。  内部类:  可以将一个类的定义放在里另一个类的内部,这就是内部类。广义上我们将内部类分为四种:成员内部类、静态内部类、局部(方法)内部类、...

weixin_39923137的博客 81

Java 核心知识点全梳理:从基础到进阶的全面解析

本文系统梳理了Java编程语言的核心知识点,包括基础特性、核心概念和进阶问题。首先介绍了Java的面向对象编程、平台独立性和稳健性三大核心特性。然后详细解析了JDK/JRE/JVM的关系、Java与C++的区别、数据类型、面向对象四大特性(封装、继承、多态、抽象)以及接口与抽象类的区别。在进阶部分,重点讲解了异常处理、反射机制、泛型、序列化和并发编程等核心内容。最后精选了常见面试题,如equals()与==的区别、深拷贝与浅拷贝等。全文旨在帮助开发者夯实Java基础,提升开发效率并应对技术面试。

neverdrinkcolo的博客 1933

匿名内部类可以有构造方法_初学Java要了解些什么 内部类与匿名类怎么回事

  初学Java要了解些什么?内部类与匿名类怎么回事?Java是一门面向对象编程语言,具有简单易用、功能强大的特点,是目前互联网行业应用最广泛的编程语言之一。很多人反映在学习Java时常常被内部类和匿名类搞晕,接下来就给大家梳理一下内部类与匿名类的相关知识。   内部类:   可以将一个类的定义放在里另一个类的内部,这就是内部类。广义上我们将内部类分为四种:成员内部类、静态内部类、局部(方法)内...

weixin_33846982的博客 1629

Python基础知识梳理

一、Python语言编程特征 二、基本数据类型(5个) 变量: 常量 类型转换问题 三、输入、输出函数 四、运算符 1、算法运算符 2、逻辑运算符 3、成员运算符 五、随机值获取、重命名 1、获取随机值 2、重命名 六、if语句 七、for循环 八、while循环 java→面向对象 ,c →面向过程;而python介于java和c 之间,既面向对象,又面向过程。 一、Python语言编程特征 Python源文件通常用.py作为扩展名 Python.........

心皿月的博客 1万+

Java进阶知识体系_特殊类(抽象接口内部类枚举注解)

Java进阶知识体系 (一)、类和对象 (二)、方法和封装 (三)、static关键字和继承 (四)、多态 (五)、特殊类 (五)、特殊类 1,抽象类 抽象类的概念 抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能创建对象 抽象方法的概念 抽象方法主要指不能具体实现的方法并且使用abstract关键字修饰,也就是没有方法体。 具体格式如下: 访问权限 abstract 返回值类型 方法名(形参列表); public abstract void cry(); 抽象类和抽象方法的关系

weixin_41300542的博客 560
上一篇: Java基础内容梳理
下一篇: Java常用类梳理--Object类
likehack
博客等级 码龄8年 526粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

likehack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值