【JAVASE_学习笔记】内部类

深入探索前端调试神器vConsole vConsole作为一款前端调试神器,为前端开发者提供了一个便捷的调试解决方案。通过本文的介绍和示例,相信你已经对vConsole有了更深入的了解。然而,vConsole的功能远不止于此,它还有许多高级用法和技巧等待你去发掘。讨论:你在前端开发中是如何使用vConsole的?你有没有发现vConsole的一些隐藏功能或技巧?欢迎在评论区分享你的经验和见解!💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面! 阅读详情

【JAVASE_学习笔记】内部类

内部类:在一个类的内部定义另外一个类,另外一个类称为内部类
内部类的class文件名:外部类$内部类.class
内部类的类型:成员内部类:在外部类的成员位置
       局部内部类:在外部类的局部位置
内部类的好处:可以直接访问外部类的所有成员
应用场景:在描述A事物时,A事物内部还维护了另外一个B事物,且B事物必须要访问到A事物的成员,这时可以用内部类来描述B事物

成员内部类

访问方式:
     方式一:在外部类提供一个方法创建内部类的对象进行访问
     方式二:在其他类中直接创建内部类的对象进行访问
     Outer.Inner inner=new Outer().new Inner();
    格式:外部类.内部类 变量名=new 外部类().new  内部类();
举例:

//测试类
public class Demo1 {
    public static void main(String[] args) {
        Outer o=new Outer();
        o.useMethod();
        //直接在测试类中创建内部的对象进行访问
        Outer.Inner oi=new Outer().new Inner();
        oi.method();
    }
}
//外部类
class Outer{
    String name;
    //内部类
    class Inner{
        public void method(){
            System.out.println("今天是个学习Java的好日子!");
        }
    }
    //外部类提供一个方法创建内部类的对象进行访问
    public void useMethod(){
        Inner i=new Inner();
        i.method();
    }
}

注意:
   1.内部类可以访问外部类的所有成员(包括私有)
   2.内部类与外部类存在同名成员时,在内部类中默认是访问内部类的成员,可以通过“外部类.this.成员”进行指定访问外部类的成员
   3.私有的成员内部类只能通过在外部提供一个公共的方法进行访问,在其他类无法访问(private只是为了数据安全)
   4.如果一个成员内部类定义了静态的成员,则该类也必须使用static修饰,静态成员内部类只能访问外部类的static成员变量
   因为:静态成员变量是不依赖对象而存在的
   
静态成员内部类在其他类创建对象的格式:
  外部类.内部类 变量名=new 外部类.内部类();
举例:

//测试类
public class Demo2 {
    public static void main(String[] args) {
        Outer2.Inner2 oi2=new Outer2.Inner2();
        oi2.getStaticParm();//损伤
        Outer2 o=new Outer2();
        o.method();//心脏  人体
    }
}
//外部类
class Outer2{
    String type="人体";
    int age;
    static String mod="损伤";
    //私有的内部类
    private class Inner{
        String type="心脏";
        public void getparm(){
            System.out.println(type);
            System.out.println(Outer2.this.type);//可以通过外部类.this.成员指定访问外部类的成员
        }
    }
    //成员内部类定义了静态的成员,该类也必须用static修饰
    static class Inner2{
        private int weight;
        static String color;
        //静态成员内部类只能访问静态的成员变量
        public void getStaticParm(){
            System.out.println(mod);
        }
    }
    //私有的成员内部类只能用外部类的方法进行访问
    public void method(){
        Inner i=new Inner();
        i.getparm();
    }
}

局部内部类

如果局部内部类要访问局部变量,则局部变量必须用final修饰(jdk1.8不会报错——封装好了)
举例:

//测试类
public class Demo3 {
    public static void main(String[] args) {
        Outer3 o=new Outer3();
        o.method();//10
    }
}
//外部类
class Outer3{
    String name;
    public void method(){
        final int a=10;//被局部内部类访问的局部变量必须用final修饰
        //局部内部类
        class Inner{
            public void getParm(){
                System.out.println(a);
            }
        }
        //局部内部类可以在外部类的局部方法内,局部内部类外创建内部类的对象访问内部类的方法
        Inner i=new Inner();
        i.getParm();
    }
}

匿名内部类

没有类名的内部类
使用前提:必须存在继承或者实现关系
举例:

//测试类
public class Demo4 {
    public static void main(String[] args) {
        Outer4 o=new Outer4();
        o.print();
    }
}
//抽象类
abstract class Animal{
    public abstract void eat(); 
} 
//接口
interface Hibernation{
    public abstract void hibernation();
    public abstract void sleep();
}
class Outer4{
    public void print(){
        //创建的是Animal的子类对象
        new Animal(){
            public void eat() {
                System.out.println("猫吃鱼");
            }
        }.eat();//猫吃鱼
        //当接口中有多个方法时,运用多态可以调用多个方法
        Hibernation h=new Hibernation(){
            public void hibernation(){
                System.out.println("有些动物会冬眠");
            }
            public void sleep() {
                System.out.println("有些动物会进行深层睡眠");
            }
        };
        h.hibernation();//有些动物会冬眠
        h.sleep();//有些动物会进行深层睡眠
    }
}
Open3D 计算FPFH特征【2025最新版】 FPFH特征描述子的python实现,本文最新更新时间为:2025年3月18日。 阅读详情

相关推荐

Windows系统下AutoDock 4.2.6安装避坑指南(附MGLTools配置技巧)

本文详细介绍了在Windows系统下安装和配置AutoDock 4.2.6的完整流程,特别针对分子对接研究中常见的软件安装问题提供了解决方案。从环境准备、分步安装到常见报错处理,涵盖MGLTools配置技巧、工作目录设置和环境变量优化,帮助科研人员快速搭建稳定的分子对接平台。

weixin_29234239的博客 313

第八章 包和内部类

摘要:

xieshuzhi1234的博客 200

在AVP28335(兼容德州仪器TMS320-28335) 上实现ModbusSlaveRTU-485源码及注释。

今天先把题目先给出来, 在近两天会把源码 (含详细注释 )及部署、测试结果给出来, 希望能给大家帮助。(全免费 我有点缺德,断了别人的一个财路)。

FOOLCODE的专栏 642

十六、内部类

具体指明对象类型:outcladdname.innerclassname 三、使用.new

weixin_62190821的博客 162

ASReview:基于主动学习的AI文献筛选工具,提升科研效率

主动学习是机器学习的一个重要分支,其核心原理是让算法能够主动选择最有价值的数据进行标注,从而以更低的成本获得更好的模型性能。这一技术通过人机协作的闭环流程,显著提升了数据标注和模型训练的效率和精度。在工程实践中,主动学习尤其适用于数据标注成本高昂或数据类别不平衡的场景,例如医学影像分析、自然语言处理中的文本分类以及推荐系统的冷启动问题。通过优先标注模型最不确定的样本,它能够有效解决传统机器学习面临的冷启动和数据稀疏性挑战。本文聚焦的ASReview项目,正是将主动学习原理应用于系统文献综述这一具体场景,通过

weixin_28725959的博客 432

Halcon实战:5种边缘检测算子对比(Sobel、Roberts、Prewitt、Kirsch、Canny)

本文深入对比了Halcon中Sobel、Roberts、Prewitt、Kirsch和Canny五大边缘检测算子的实战表现与核心差异。通过工业图像实例与代码解析,提供了基于噪声水平、边缘连续性及实时性要求的场景化选型指南,帮助工程师精准选择最适合的算子以优化视觉检测流程。

weixin_29266007的博客 392

Eclipse 创建 Java 类---Eclipse教程第10课

打开新建 Java 类向导 你可以使用新建 Java 类向导来创建 Java 类,可以通过以下途径打开 Java 类向导: 点击 "File" 菜单并选择 New > Class 在 Package Explorer 窗口中右击鼠标并选择 New > Class 点击类的下拉按钮 () 并选择 () 在打开创建 Java 类向导前,最好选择好Java类所属的包名,这...

weixin_30388677的博客 1289

家庭网络中,路由器和交换机的连接顺序

它的目的是给路由器增加端口,用户访问互联网的速度比情况一要快,常用于办公网络、家庭成员多的场景。光纤入户首先连接的肯定是光猫,而在光猫的后面,是先连接交换机?还是应该接路由器呢?家庭网络中路由器和交换机的先后连接顺序。它目的是让更多的用户访问互联网。常用于一些超大型机房、网吧等。至于路由器和交换机的区别。两者之间很多功能都有兼容。但用户上网速度相对较慢。在技术日益迭代的今天。

m0_74075744的博客 1万+

JAVA基础 面上对象(3)

JAVA基础 面向对象(3)必回知识点总结

心态的博客 1810

Allegro如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层

在Allegro做PCB设计的时候,如果需要复制器件的位号到其它层是无法直接实现的,如果直接拷贝器件的位号的话,效果如下。但是Allegro的Cross Copy命令是支持复制任何属性的图形到其它层的,下面以复制器件位号和丝印外框为例说明。同样如果使用Z-copy命令,也是无法Z-copy text的,Finds下方texts是灰色的。如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层。另外cap处可以选择线段的端点是圆形,八角形,或者方形的铜皮。拷贝C1013,出现的是C*

weixin_54787054的博客 2671

基于STM32L4XX 、HAL库的TMC2209-LA-T步进电机驱动器驱动程序应用设计

/ R/W=0 表示写。uint32_t gconf_value = (0 << 0) // I_scale_analog: 禁用,使用UART控制电流。uint32_t ihold_irun = (8 << 0) // 保持电流 8/31 最大值。

PP_Cottage的博客 449

【Java要点】4. 内部类、eclipse快捷键、Object类的常见方法

转发请在文章中提供本文的链接,谢谢! 一、 内部类 1.1 内部类概述 *在java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类一般来说包括这四种:①成员内部类、②局部内部类、③匿名内部类和④静态内部类。 *内部类可以直接访问外部类的成员,包括私有成员变量和私有成员方法。 *成员内部类是依附外部类而存在的,外部类要访问内部类的成员,必须创建相应的对象。 ...

熊猫广志的博客 1378

【AUTOSAR-Nm】-2.2-通过CAN/Lin...信号报告Nm状态机的跳转

如何通过Can/Lin/Fr/Udp/J1939信号,获取每个通道对应状态机的跳转信息:“前一次状态”和“当前状态”。

「汽车电子助手」的博客 2464

JAVASE学习笔记 内部类以及匿名内部类

1.内部类的概述 内部类的含义可以简单的理解为: 将一个类定义在另一个类B的内部,我们将A称为内部类,将B称为外部类。 根据内部类定义的位置不同:可以分为成员内部类和局部内部类 成员内部类的分类 成员内部类:内部类定义在外部类的成员位置 局部内部类:内部类定义在外部类的成员方法内 public class MyTest { public static void main(String[] args) { //根据内部类定义的位置不同:分为成员内部类以及局部

qq_41537102的博客 290

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JavaSE学习笔记--内部类

---------------------- http://edu.youkuaiyun.com/heima" target="blank">android培训、http://edu.youkuaiyun.com/heima" target="blank">java培训、期待与您交流! --------

liuyang0618的专栏 523

pscad IEEE标准系统搭建说明

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

JavaSE学习笔记 - 多态、权限、内部类

父子类类型转换   向上转型(子类转换成父类,自动转型):创建子类对象,当做父类使用,在调用方法的时候优先去找子类中的属性和方法,如果子类中没有再去父类中去寻找。也就是说如果子类覆盖重写了父类的方法,当子类实例化给父类在调用方法的时候调用的子类中的方法。如果父类和子类有相同的属性,当子类实例化给父类在调用属性的时候调用是父类的属性。 父类指向子类的方法不能调用子类的特有方法,也不能调用子类的特有属性。   向下转型:将父类对象转换为子类对象。使用 instanceof 关键字来判断是否父类是否是某一个子类实

Sun 167

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaSE学习笔记(6.Java的内部类)

1.内部类的描述: 定义在类内部的类叫做内部类,内部类跟其他成员一样,是类的组成部分 同一文件内的两个并列的类不是内部类,内部类是以类内外进行区分的,不是以文件内外进行区分的 内部类会被编译成这样的class文件,OutClass.class、OutClass$A.class、OutClass$B.class 2.内部类的本质: 内部类其实就是进行了一定访问约束的类(普通类、接口、枚举、抽...

qq418674358的专栏 374

JavaSE学习笔记_7:Java内部类

Java内部类   1、内部类访问规则 可以讲内部类看成是外部类中的一个成员,以前怎么看待类中的成员的,现在可以类似的去看待。既然是外部类的一个成员,那么就可以别成员修饰符,private、static等修饰。被private修饰和被static修饰后,所具备的特点(如:被private修饰,则只在本类中有效,不对外暴露,外部其他类不能直接使用)和以前讲过的没有本质的区别,可以类似去套。

java_cm66的博客 556

javaSE学习笔记15-抽象类、Object类、接口、内部类

3.接口中的方法都是抽象的public abstract(编写时一般省略public abstract,系统自动识别,写出来也是灰色的)接口 关键字interface,接口只定义一些方法,接口都需要实现类来实现定义的这些抽象方法。约束和实现分离:---面向接口编程。6.接口可以被多实现,实现接口的关键字,implements。Test类,类中包含匿名内部类Apple,接口UserService。声明类的关键字是class,声明接口的关键字是interface。7.实现接口的类,必须要重写接口中的方法。

qq_57785748的博客 288

JavaSE学习笔记(十)—— 权限修饰符&内部类

一、权限修饰符   在java中有四种权限修饰符:范围从大到小分别是:public、protect、default(friendly)、private,它们之间的区别是: public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。 protect: 介于public 和 privat...

VNOpU2015的专栏 251

java内部类的权限符_JavaSE学习笔记(十)—— 权限修饰符&内部类

一、权限修饰符在java中有四种权限修饰符:范围从大到小分别是:public、protect、default(friendly)、private,它们之间的区别是:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。protect: 介于public 和 private 之间的一种访问修饰符,一般...

weixin_35076990的博客 557

【JavaSE韩顺平学习笔记 2】15.接口,内部类,枚举,注解annotation

接口内部类枚举注解annotation。

qq_53479519的博客 258

java内部类的权限修饰_JavaSE学习笔记(十)—— 权限修饰符&内部类

一、权限修饰符在java中有四种权限修饰符:范围从大到小分别是:public、protect、default(friendly)、private,它们之间的区别是:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。protect: 介于public 和 private 之间的一种访问修饰符,一般...

weixin_42316952的博客 335

javaSE_day07 学习笔记 —— 关键字(abstract,interface)、内部类、匿名类

javaSE_day07 目录javaSE_day071. 关键字1.1 abstract1.2 interface1.2.1 定义接口2. 使用接口 implements3. ==接口==和==接口==之间是继承关系4. ==类==和==接口==之间是实现关系,可以实现多个接口2. 函数式接口接口和抽象类的区别3. 内部类1. 类体内部类2. 方法内的内部类3. 匿名类 1. 关键字 1.1 abstract 抽象方法: 由abstract修饰的方法 特点:没有方法体 抽象类: 由abstr

LIKE_0217的博客 623

javaSE学习笔记(三)抽象类,接口,package,import,修饰符,内部类

static 因为类名调用抽象方法没有意义final abstract强制子类重写,final修饰的方法不能重写private abstract强制子类重写,private不让子类继承狭义上就是interface,广义上对外提供的规则都是接口package 包名;多级包用.分开即可package语句必须是程序的第一条可执行的代码package语句在一个java文件中只能有一个没有package,默认表示无包名。

给自己的程序生涯留下一点痕迹 286

JavaSE学习笔记 匿名内部类方式实现多线程程序以及定时器的使用

匿名内部类方式实现多线程程序以及定时器的使用1.匿名内部类方式实现多线程程序2.定时器的概述和使用 在前面的文章中,我们已经讨论了创建多线程的三种方式: 1.通过继承Thread类来创建多线程 2.通过实现Runnable接口来创建多线程 3.通过实现Callable接口来实现多线程 其实在代码实现过程中,当创建的线程只用一次,可以通过匿名内部类来实现创建多线程。 其次我们介绍下Java中的定时器,可用于调用多个定时任务,以后台线程方式执行。 1.匿名内部类方式实现多线程程序 匿名内部类的方式实现多线

qq_41537102的博客 894
上一篇: 【c语言练习】2.0
下一篇: 【JAVA_SE学习笔记】Object类
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值