Java中什么是嵌套类?

如题所述

第1个回答  2012-04-26
第一,你要知道什么是内部类,第二,你要知道内部类根据使用方式(需求)分为2类,一是普通内部类,二是静态内部类(也就是你说的嵌套类),两者在代码上就是后者被前者多了static修饰。两者在使用上由什么区别呢,或者说处于什么需求要有这两个内部类呢?
普通图内部类我们看到最多的就是集合里面的itarator,它通过内部类实现Itarator接口,来访问外部类数据,对外部类数据实现迭代。一般通过回调暴露接口
静态内部类即嵌套类,Map.Entry<K,V>就是一个例子。它就相当与一个组合,在类的内部纯粹当作一个类型来使用。
具体点,比如我们要实现一个链表,链表里需要一个节点Node类,一个迭代器
class Linked{
static class Node{}
Node next;
private class LinkedItarator implements Itarator{
}
public Itarator itarator(){
return new LinkedItarator();
}
}
Node就相当与链表里的一个成员,在外部类使用,而LinkedItarator实现迭代器,直接对外部数据处理
第2个回答  2012-03-29
内部类、匿名内部类
第3个回答  2012-03-27
不知道
第4个回答  2012-03-27
是不是内部类啊?只听说过内部类,就是嵌套在类的内部。

Java中什么是嵌套类?
静态内部类(也称:嵌套类)如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类对象。然而,当内部类是static的时,就不是...

内部类可以继承外部类吗
在Java中,内部类(也称为嵌套类)可以继承外部类的所有非私有成员。这意味着,外部类是一个类而不是接口,那么内部类可以继承外部类的所有非私有属性和方法。外部类是一个接口,那么内部类可以实现该接口的所有方法。请注意,当一个内部类继承了外部类时,内部类隐式地拥有外部类的所有非私有成员的访...

java内部类静态嵌套类
内部类在Java中,尤其是静态内部类和静态嵌套类,是面向对象编程中的一个重要概念。静态内部类和静态嵌套类在定义和使用上有细微的区别,但它们都提供了一种在结构上更加灵活和复杂的方法来组织和管理代码。静态内部类和静态嵌套类的主要区别在于它们与外部类的关系以及访问外部类成员的方式。静态内部类可以...

[Kotlin] 内部类
内部类 也叫做嵌套类,在Java里是一个被大家经常使用到的东西。内部类除了匿名内部类外还分为三种,一种是可以自由访问外部类成员变量和方法的 成员内部类 ,一种是可以被独立构造实例且和外部类完全剥离的 静态内部类 ,一种是作用域和生命周期都只处在一个方法中的 方法内部类 ,但这种内部类我们...

Java嵌套类
}}private class TxtPrinter{ \/\/ 嵌套类public void print(Object data) {}}private class ExlPrinter{ \/\/ 嵌套类public void print(Object data) {}}} 例子可能不够生动,应该能解释清楚:有个类Class B,他的逻辑只对Class A负责,但是又不想把B暴露给他人,就把B定义成A的嵌套类 亲,如果...

Java,内部类有什么特别的好处吗
提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学...

Java内部类的问题?
内部类分类:内部类可以分为:实例内部类、静态内部类和成员内部类,每种内部类都有它特定的一些特点。在类 A 中定义类 B,那么类 B 就是内部类,也称为嵌套类,相对而言,类 A 就是外部类。如果有多层嵌套,例如类 A 中有内部类 B,而类 B 中还有内部类 C,那么通常将最外层的类称为顶层...

嵌套层是什么意思?
嵌套层是什么意思?对于计算机语言的编程人员而言,嵌套层指的是一个代码块内部包含另一个代码块,且这些代码块之间存在层层嵌套的情况。一个代码块内部可以包含多个代码块,这就是嵌套层的概念。嵌套层是计算机语言编程过程中必不可少的概念。它使得程序可以具备更为复杂的逻辑,通过不同的嵌套层次完成更...

java类的测试( main函数)
嵌套类就其实另外一个类,但是因为它嵌套在外层的类里,所以能拥有访问外层类所有成员的权限(包括private),但是嵌套类在虚拟机层面是一个独立的类,名称是“OuterClass$NestedClass”,因为没有其它类能依赖于这个类(因为NestedClass是OuterClass的私有成员),所以生成的这个class文件能从jar包中移除。...

Static Nested Class 和 Inner Class的不同,说得越多越好
在C++中,嵌套类也与静态内部类在一定程度上相似,但其定义方式和使用方式不同。嵌套类是作为外部类成员直接定义的类,可以访问外部类的私有成员。Java的内部类与C++的嵌套类主要区别在于是否有指向外部的引用。内部类在Java中可以访问外部类的私有成员,但需要外部类实例作为参数。静态内部类则在创建时无...

相似回答