Java内部类(Inner Class)详解

QGroundControl高级配置与自定义功能实战指南 本文深入探讨了QGroundControl(QGC)的高级配置与自定义功能,为无人机开发者、系统集成商和高级用户提供实战指南。内容涵盖从品牌界面定制、自定义MAVLink消息处理,到插件开发与自动化部署的全流程,旨在帮助用户解锁QGC的隐藏潜力,打造专属的行业解决方案。 阅读详情

重新来认识一下内部类的区别

1          Static member class(静态成员类)
类声明中包含“static”关键字的内部类。如以下示例代码,
Inner1/Inner2/Inner3/Inner4就是Outer的四个静态成员类。静态成员类的使用方式与一般顶层类的使用方式基本相同。

public  class   Outer{
    
// just like static method, static member class has public/private/default access privilege levels
    
    
// access privilege level: public 
     public  static  class  Inner1 {
        
public  Inner1() {
            
// Static member inner class can access static method of outer class
            staticMethod();    
            
// Compile error: static member inner class can not access instance method of outer class
            
// instanceMethod();  
        }
    }
    
    
// access privilege level: default 
     static  class  Inner2 {
        
    }
    
    
// access privilege level: private 
     private  static  class  Inner3 {
        
// define a nested inner class in another inner class 
         public  static  class  Inner4 {    
        }
    }

    
private  static  void  staticMethod() {
        
// cannot define an inner class in a method
         /* public static class Inner4() {
        }
*/
    }
    
    
private  void  instanceMethod() {
        
// private static member class can be accessed only in its outer class definition scope
        Inner3 inner3  =  new  Inner3();
        
// how to use nested inner class
        Inner3.Inner4 inner4  =  new  Inner3.Inner4();
    }
}

class  Test {
    Outer.Inner1 inner1 
=  new  Outer.Inner1();
    
// Test and Outer are in the same package, so Inner2 can be accessed here
    Outer.Inner2 inner2  =  new  Outer.Inner2(); 
    
// Compile error: Inner3 cannot be accessed here
    
// Outer.Inner3 inner3 = new Outer.Inner3(); 
}
 
1.1      静态成员类特性

静态成员类可访问外部类的任一静态字段或静态方法

像静态方法或静态字段一样,静态成员类有public/private/default权限修饰符

1.2      静态成员类约束

静态成员类不能与外部类重名

像外部类的静态方法一样,不能直接访问外部类的实例字段和实例方法

静态成员类只能定义于外部类的顶层代码或外部类其它静态成员类的顶层代码中(嵌套定义);不能定义于外部类的某个函数中。

1.3      新增语法
    如示例代码所示,可以以“OuterClass.InnerClass”的方式来引用某个内部类。
1.4      什么时候使用静态成员类
B为A的辅助类,且只为A所用时,可将B定义为A的静态成员类。例如JDK中的LinkedList类就有Entry静态成员类:
public  class  LinkedList < E >  extends  AbstractSequentialList < E >  
   …;
   
private  static  class  Entry < E >  {
    E element;
    Entry
< E >  next;
    Entry
< E >  previous;

    Entry(E element, Entry
< E >  next, Entry < E >  previous) {
        
this .element  =  element;
        
this .next  =  next;
        
this .previous  =  previous;
    }
    }
    …;
}
   显然,Entry用来表示LinkedList中的一个结点,只被LinkedList自身使用。

2          Member class(成员类)
一个静态成员类,若去掉“static”关键字,就成为成员类。如下示例代码,Inner1/Inner2/Inner3/Inner4就是Outer的四个成员类
 

public  class  Outer {
    
// just like instance method, member class has public/private/default access privilege levels
     private  int  data;
    
    
// access privilege level: public 
     public  class  Inner1 {
        
private  int  data;
        
private  int  data1;
        
public  Inner1() {
            
// member class can access its outer class' instance field directly
            data1  =  1 ;
            
// itself data field
            data  =  1 ;
            
// its outer class instance field
            Outer. this .data  =  1 ;
        }
    }
    
    
// access privilege level: default
     class  Inner2 {
        
// can not define static filed, method, class in member class
        
// static int j = 1;
        
        
// but, "static final" compound is allowed 
         static  final  int  CONSTANT  =  1 ;
    }
    
    
// access privilege level: private 
     private  class  Inner3 {
        
public  class  Inner4 {
            
        }
    }
    
    
// in fact, Inner5 is not a member class but a static member class
     interface  Inner5 {
    }
    
    
private  static  void  staticMethod() {
        
// can not create a member class instance directly in outer class' static method
        
// Inner1 inner1 = new Inner1();
    }
    
    
private  void  instanceMethod() {
        
// can create a member class instance in outer class' instance method
        Inner1 inner1  =  new  Inner1();
    }
}

class  Test {
    
public  Test() {
        
// cannot create member class instance directly in class other than outer class
        
// Outer.Inner2 inner2 = new Outer.Inner2();
        
        
// create a member class instance outside it's outer class
        Outer outer  =  new  Outer();
        Outer.Inner1 inner1 
=  outer. new  Inner1();
    }
}
 
 
2.1      成员类特性
·        类似于外部类的实例函数,成员类有public/private/default权限修饰符
·        一个成员类实例必然所属一个外部类实例,成员类可访问外部类的任一个实例字段和实例函数。
2.2      成员类约束

成员类不能与外部类重名

不能在成员类中定义static字段、方法和类(static final形式的常量定义除外)。因为一个成员类实例必然与一个外部类实例关联,这个static定义完全可以移到其外部类中去

成员类不能是接口(interface)。因为成员类必须能被某个外部类实例实例化,而接口是不能实例化的。事实上,如示例代码所示,如果你以成员 类的形式定义一个接口,该接口实际上是一个静态成员类,static关键字对inner interface是内含(implicit)的。

2.3      新增语法
    一个成员类实例必然所属于其外部类的一个实例,那么如何在成员类内部获得其所属外部类实例呢?如示例代码所示,采用“OuterClass.this”的形式。
2.4      指定内部类实例所属的外部类实例
内部类实例可在其外部类的实例方法中创建,此新创建内部类实例所属的外
部类实例自然就是创建它的外部类实例方法对应的外部类实例。
          另外,如示例代码所示,对于给定的一个外部类实例outerClass,可以直接创建其内部类实例,语法形式为:
OuterClass.InnerClass innerClass = outerClass.new InnerClass();

2.5      什么时候使用成员类
     成员类的显著特性就是成员类能访问它的外部类实例的任意字段与方法。方便一个类对外提供一个公共接口的实现是成员类的典型应用。
       以JDK Collection类库为例,每种Collection类必须提供一个与其对应的Iterator实现以便客户端能以统一的方式遍历任一 Collection实例。每种Collection类的Iterator实现就被定义为该Collection类的成员类。例如JDK中 AbstractList类的代码片断:
public  abstract  class  AbstractList < E >  extends  AbstractCollection < E >  implements  List < E >  {
    
private  class  Itr  implements  Iterator < E >  {
         ………;
    }

     
public  Iterator < E >  iterator() {
        
return  new  Itr();
     }
}
 

    因为定义在AbstractList中的Itr可访问AbstractList中的任意字段和方法,所以很方便实现Iterator,无需AbstractList对外暴露更多的接口。
    试想,如果没有成员类机制,只有在AbastractList源码之外定义一个实现Iterator的类Itr,该类有一个AbstractList实例 成员list,为了Itr能获取list的内部信息以便实现遍历,AbstractList必然要向Itr开放额外的访问接口。

3          Local class(局部类)
对一个静态成员类,去掉其声明中的“static”关键字,将其定义移入其外部类
的静态方法或静态初始化代码段中就成为了局部静态成员类。
       对一个成员类,将其定义移入其外部类的实例方法或实例初始化代码中就成为了局部成员类。
       局部静态成员类与静态成员类的基本特性相同。例如,都只能访问外部类的静态字段或方法,但不能访问外部类的实例字段和实例方法等。
       局部成员类与成员类的基本特性相同。例如,局部成员类实例必属于其外部类的一个实例,可通过OuterClass.this引用其外部类实例等。
另外,局部类也有其自己的特性,如以下代码所示:

public  class  Outer {
    
private  int  instanceField; 
    
private  static  int  staticField; 
    
    
// define a local member class in instance code block
    {
        
int  localVirable1  =  0 ;
        
final  int  localVirable2  =  1 ;
        
class  Inner1 {
            
public  Inner1() {
                
// can access its outer class' field and method directly
                instanceField  =  1 ;
                
// use OuterClass.this to get its corresponding outer class instance
                Outer. this .instanceField  =  1 ;
                
                
// can not access the not final local virable in its containing code block
                
// System.out.print(localVirable1);
                
                
// can access the final local virable in its containing code block
                System.out.print(localVirable2);
            }
        }        
        
        
// local class can not have privilege modifier 
         /* public class inner2 {            
        }
*/
    }
    
    
//  define a local static member class in static code block
     static  {
        
class  Inner2 {
            
public  Inner2() {
                staticField 
=  1 ;
                
// can not access instance field and method in a local static member class 
                
// intanceField = 2;
            }
        }
    }
    
    
public  void  intanceMethod() {
        
// define a local class in its out class' instance method
         class  Inner3 {
        }
        
        
// local class is visible only in its containning code block
        
// Outer.Inner2 inner2;
    }
    
    
private  static  void  staticMethod() {
        
// define a local static member class in its out class' static method
         class  Inner4 {    
            
public  Inner4() {
                staticField 
=  2 ;
            }
        }
        
        
// can not define a interface as a local class
         /* interface I {
        }
*/
    }
}

 
3.1      局部类特性
如示例代码所示,局部类能且只能访问其所属代码段中的声明为final的局部
变量。为什么只能访问声明为final的局部变量呢?我们知道,局部变量在其所属的代码段(譬如某个函数)执行完毕后就会被回收,而一个局部类 的实例却可以在其类定义所属代码段执行完毕后依然存在,如果它可操控非final的局部变量,用户就可以通过该实例修改已不存在的局部变量,无意义。
3.2      局部类约束

如示例代码所示,内部类只在定义它的代码段中可见,不能在它所属代码段之外的代码中使用;因此也就没有public/private/default权限修饰符(无意义)

不能以局部类形式定义一个接口。局部类只在其所属代码段中可见,定义这样的接口无意义

局部类类名不能与其外部类类名重复

3.3      什么时候使用局部类
局部类大部分以匿名类的形式使用。
           
4          Anonymous class(匿名类)
没有类名的局部类就是匿名类。用一条语句完成匿名类的定义与实例创建。例
如如下代码:
public  class  Outer {
    
public  void  instanceMethod() {
        
// define a nonymous class which implements Action interface and creat an instance of it
        Action action  =  new  Action() {
            
public  void  doAction() {
                System.out.println(
" a simple anonymous class demo " );
            }};
        action.doAction();
        
        
// define a nonoymous class which extends BaseClass and create an instance of it
         new  BaseClass( 5 ) {
            
public  void  printData(){
                System.out.println(
" data =  "  +  getData());
            }
        }.printData(); 
// "data = 5" will be outputed
    }
}

interface  Action {
    
void  doAction();
}

class  BaseClass {
    
private  int  data;
    
    
public  BaseClass ( int  data) {
        
this .data  =  data;
    }
    
    
public  int  getData() {
        
return  data;
    }
}

4.1      匿名类特性与约束
匿名类是一种特殊的局部类。局部类的特性与约束都适用与它。
4.2      新增语法
4.2.1      继承自某个基类的匿名类

new class-name ( [ argument-list ] ) { class-body }
 
创建匿名类实例时,“argument-list”将被传入其基类(即class-name)对应的构造函数。
4.2.2      实现某个接口的匿名类
new interface-name () { class-body }

4.3      什么时候使用匿名类

该类定义代码段很短

只需要创建该类的一个实例

类的定义代码与类的使用代码紧邻

使用匿名不影响代码的易读性

譬如,如下实现类似与c的callback功能的代码就是匿名类的典型应用:
 
File f  =  new  File( " /src " );       //  The directory to list

//  Now call the list() method with a single FilenameFilter argument
//  Define and instantiate an anonymous implementation of FilenameFilter
//  as part of the method invocation expression. 
String[] filelist  =  f.list( new  FilenameFilter() {
  
public  boolean  accept(File f, String s) {  return  s.endsWith( " .java " ); }
}); 
//  Don't forget the parenthesis and semicolon that end the method call!
APP爬虫:Airtest的使用和爬取实战详解 Airtest是一个跨平台的自动化测试工具,主要用于移动应用和游戏的UI自动化测试。它支持图像识别、触摸操作、文本输入等功能,能够模拟真实用户的操作行为。此外,Airtest还具备强大的日志记录和报告生成功能,方便开发者进行调试和分析。图像识别:通过截图匹配元素,无需依赖 UI 层次结构。跨平台支持:支持 Android、iOS 和 Windows 应用。简单易用:提供 IDE 和脚本录制功能,降低使用门槛。 阅读详情

相关推荐

告别“单打独斗”:Oh My Open Code 如何用多模型协作重塑 AI 编程范式

介绍"Oh My OpenCode"——一个能协调多个专业AI模型完成复杂开发任务的智能编程框架。您将看到它如何分配任务、发挥不同模型的独特优势,并通过并行处理和实时纠错等功能解决AI编程流程中的常见痛点。

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 4212

静态内部类学习笔记InnerClassDemo2.java

/* 内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有。   之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式:外部类名.this   2.外部类要访问内部类,必须建立内部类对象。     访问格式: 1.当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。   可以直接建立内部类对象。 格式:   外部类名.内部类

kingy460的专栏 1073

英特尔SVS:十亿级向量搜索的硬件优化与LVQ压缩实战

向量搜索作为处理高维嵌入数据的核心技术,其核心原理是通过近似最近邻(ANN)算法在海量数据中快速找到相似项,以解决传统暴力搜索在规模上的瓶颈。这项技术的核心价值在于为推荐系统、图像检索、自然语言处理等AI应用提供高效的相似性匹配能力,尤其在RAG架构中成为连接非结构化数据与大语言模型的关键基础设施。面对十亿级数据带来的内存与算力挑战,局部自适应向量量化(LVQ)等压缩技术通过减少存储开销并保持精度,而硬件层面的深度优化则利用AVX-512等指令集大幅提升计算效率。本文聚焦于英特尔开源的Scalable Ve

weixin_42526310的博客 553

Java Nested Class(嵌套类)和Inner Class(内部类)

最近在阅读《Java核心技术-卷I开发基础(原书12版)》第6.3章时, 感觉书中对于Java的内部类(inner class)以及嵌套类(nested class)的定义不够清晰和严谨, 其中静态内部类(static inner class)的定义, 又与内部类本身部分特性的描述产生冲突, 感觉难以理解并且无法自洽, 故而在网上冲浪过程中搜寻与Java内部类更为严谨可靠的定义和分类.

TomAndersen的博客 2526

雷达信号处理DDC数字下变频

由于接收到的雷达信号频率较高,不能对其进行直接采样并数据处理,所以需要对雷达信号进行预处理,在降低其采样率的同时,将其由中频降低到低频,然后对输出的基带信号进行后续的解析,以便于获取雷达信号的特征参数。 本文采用数字正交下变频,将单通道信号转化为正交双通道信号,数字下变频(DDC)的原型为模拟下变频,通过对窄带雷达信号或单频信号进行数字混频,然后对信号进行正交采样,提取 I、Q 两路正交分量,最后通过滤波去除信号中的高频分量,将信号由中高频搬移至低频。 模拟下变频的系统框图如下: 其数学推导.

qq_44033461的博客 5229

GPU架构(1.1)--介绍 GPU的 VPU(Vision Processing Unit)架构

基于自研的 VPU(Vision Processing Unit)架构,专为高性能图形处理和深度学习设计。VPU 架构通过优化计算单元、内存层次结构、同步机制和指令流水线,提供了卓越的性能和能效。VPU 架构通过优化计算单元、内存层次结构、同步机制和指令流水线,提供了卓越的性能和能效。这种架构不仅适用于高性能图形处理,还广泛应用于深度学习、科学计算和边缘计算等领域。通过了解 VPU 架构的详细设计和工作原理,读者可以更好地利用这些先进的 GPU 技术,开发出高效、可靠的计算系统。

MHD0815的博客 1300

Java 静态内部类(Inner Class)

静态内部类,就是使用static关键字修饰的成员内部类。与成员内部类相比,在形式上,静态内部类只是在内部类前增加了static关键字,但在功能上,静态内部类只能访问外部类的静态成员

Robin Hu的专栏 1446

泛微OA与泛微OA之间打通实现统一待办配置

问题:学校OA与集团OA均为泛微Ecology8.0 ,由于流程审批互通的需要,要将两套OA系统打通,实现跨系统的流程流转。

symstandsun的博客 2269

内部类学习(五)--静态内部类(Static Inner Class)

这里介绍最后一种比较特殊的内部类――静态内部类(Static Inner Class),即在内部类的前面增加了static修饰符(modifier)。注意,仅仅只有内部类能够被声明为static类型,通常我们声明一个普通类的时候不能使用static,否则编译出错。那么为什么我们要使用静态的内部类呢?在什么情况下我们需要使用静态的内部类呢?我们前面讲过,编译器会自动给内部类加上一个referen

鱼与飞鸟 9144

Cadence OrCAD Capture软件启动过程卡死且无法恢复的解决方法

如下图所示Cadence OrCAD Capture软件在启动后出现卡死的现象,且等待后无法自动恢复,需要强行关闭,再次启动依然卡死。

fydar的博客 4043

cuRobo 入门教程(一)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供运动学计算、碰撞检测、轨迹优化等功能。该库采用并行优化技术,在GPU上实现高效运算,比现有方案快60倍。cuRobo支持多种机器人模型和环境表示,包含正向/逆向运动学、无碰撞轨迹生成、模型预测控制等核心算法,并可与IsaacSim等仿真平台集成。其特点包括:1) 支持多种碰撞检测方式(长方体/网格/深度图像);2) 提供批量环境处理和实时世界更新;3) 通过CUDA Graphs加速优化迭代;4) 在Jetson Orin等平台实现毫秒级运动规划。安装支

2506_90492529的博客 1930

java 内部类(inner class)详解

一、为何使用内部类 内部类提供了更好的封装,只有外部类能访问内部类 内部类可以独立继承一个接口,不受外部类是否继承接口影响 内部类中的属性和方法即使是外部类也不能直接访问,相反内部类可以直接访问外部类的属性和方法,即使private 利于回调函数的编写 一个内部类的例子:public class OuterClass { private String outerName; pri

Heaven Wang 的专栏 3万+

游戏大厂如何解析引擎技术

本文系统解析了游戏大厂如何评估和定制游戏引擎。游戏引擎作为游戏开发的核心基础,大厂会从性能、跨平台支持、渲染能力、网络模块等8个维度进行技术解析,通过文档查勘、源码阅读、Demo测试等7个步骤深度评估。解析后通常有三种决策:直接使用、深度定制或自研重构。文章以腾讯、网易、米哈游等为例,展示了不同厂商的引擎定制策略,并分析了技术解析面临的挑战和未来趋势。最终指出,体系化的引擎技术解析是打造高质量游戏的关键,需要持续的技术投入和团队协作。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 535

java inner class_Java Inner Class 内部类

更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》成员内部类 member inner class在类的内部可以访问外部类的所有属性,包括 static 和 final,因此可以修改外部类如下所示:内部类 Inner 可以访问外部类 Outer 的成员变量 i外部类 Outer 可以使用内部类 Inner如果想在其他地方使用内部类 Inner,需要通过外部类的对象来访问publi...

weixin_28676973的博客 159

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

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

JAVA 内部类 inner class

内部类: 在一个类的内部定义的类称为内部类。 类的内部: 第一:与属性或方法 同级 内部类 这个类与外部类的每个对象是一对一的关系。Person与Birthday 静态内部类 这个类与外部类是1对1的关系。每个对象共享这个内部类对象。Hero和Crystal 第二:在方法内部 本地内部类 在方法中定义的类(局部类,出了方法就没了) 匿名内部类 没名字,与抽象类和接口配合使用。创建内部类的同时创建...

蔚蓝色丨天空的博客 264

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java inner class_Java | 内部类(Inner Class)

前言本文内容主要来自 Java 官方教程中的《嵌套类》章节。本文提供的是 JDK 14 的示例代码。定义内部类(Inner Class),是 Java 中对类的一种定义方式,是嵌套类的一个分类,即非静态嵌套类(Non-Static Nested Class)。内部类(非静态嵌套类)分为成员内部类、局部内部类和匿名内部类三种。Java 编程语言允许一个类被定义在另一个类中,这样的类就称为嵌套类。嵌套...

weixin_30652105的博客 300

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java new inner class_Java内部类(Inner Class)详解

Java内部类(Inner Class)详解简单的说,内部(inner)类指那些类定义代码被置于其它类定义中的类;而对于一般的、类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类。对于一个内部类,包含其定义代码的类称为它的外部(outer)类。1 Static member class(静态成员类)类声明中包含“static”关键字的内部类。如以下示例代码,In...

weixin_36228334的博客 544

【Java第23集】java内部类(Inner Class)详解

Java内部类是面向对象编程中的重要特性,通过成员内部类、静态嵌套类、局部内部类和匿名内部类的形式,提供了灵活的代码组织和实现方式。合理使用内部类可以显著提高代码的封装性、可读性和复用性,但需注意其潜在的复杂性和内存管理问题。在实际开发中,根据具体场景选择合适的内部类类型,能够有效提升代码质量。

学不可以已,活到老,学到老。 1080

Java内部类 inner class

为什么使用内部类 内部类(inner class)是定义在另外一个类中的类。为什么需要使用内部类呢?主要有一下三点: 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。 内部类可以对同一个包的其他类隐藏起来。 当像要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较便捷 使用内部类访问对象状态 内部类既可以访问自身数据域,也可以访问创建它的外围对像的数据...

justLym的博客 354

inner class java_Java内部类(Inner Class)详解

Java内部类(Inner Class)详解简单的说,内部(inner)类指那些类定义代码被置于其它类定义中的类;而对于一般的、类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类。对于一个内部类,包含其定义代码的类称为它的外部(outer)类。1 Static member class(静态成员类)类声明中包含“static”关键字的内部类。如以下示例代码,In...

weixin_36241447的博客 423

inner class java_java 内部类(inner class)详解

一、为何使用内部类内部类提供了更好的封装,只有外部类能访问内部类内部类可以独立继承一个接口,不受外部类是否继承接口影响内部类中的属性和方法即使是外部类也不能直接访问,相反内部类可以直接访问外部类的属性和方法,即使private一个内部类的例子:public class OuterClass {private String outerName;private int outerAge;public ...

weixin_39814088的博客 180

java inner class_Java内部类(Inner Class)详解

Java内部类(Inner Class)详解重新来认识一下内部类的区别1Static member class(静态成员类)类声明中包含“static”关键字的内部类。如以下示例代码,Inner1/Inner2/Inner3/Inner4就是Outer的四个静态成员类。静态成员类的使用方式与一般顶层类的使用方式基本相同。publicclassOuter{//justlikestaticmet...

weixin_39726379的博客 182

java new inner class_Java内部类(Inner Class)

简单的说,内部(inner)类指那些类定义代码被置于其它类定义中的类;而对于一般的、类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类。对于一个内部类,包含其定义代码的类称为它的外部(outer)类。1Static member class(静态成员类)类声明中包含“static”关键字的内部类。如以下示例代码,Inner1/Inner2/Inner3/Inner4就是Outer...

weixin_29550689的博客 158

浅谈Java内部类(inner class)

Java的内部类可以分为四种:成员内部类(“regular” inner class),静态内部类(static nested class),局部内部类(method-local inner class)和匿名内部类(anonymous inner class)。下面我举几个小例子来看看这些内部类都有什么特点。

peflapos的博客 605

java内部类:class Inner

Class Inner

weixin_42186778的博客 380

Java——内部类(inner class)

为什么要使用内部类? 主要因为以下三点: 1、内部类方法可以访问该类定义所在的作用域的数据,包括私有数据。 2、内部类可以对同一个包中的其他类隐藏起来。 3、想要定义一个回调函数却不想编写大量代码,使用匿名内部类比较便捷。 一个类的定义放在另一个类的内部,这个类就叫做内部类。 (类名不需要和文件夹相同) public class Inner { //像这样...

diju8279的博客 206
上一篇: ConcurrentHashmap使用
下一篇: java内部类
ichsonx
博客等级 码龄19年 202粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值