Java中什么是嵌套类? 20

 我来答
nevermore602
2012-03-28
知道答主
回答量:7
采纳率:0%
帮助的人:11.6万
展开全部
静态内部类(也称:嵌套类)

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

  1. 要创建嵌套类的对象,并不需要其外围类的对象。
  2. 不能从嵌套类的对象中访问非静态的外围类对象。

1)事实上,与前相同,静态内部类也就类似一个类的静态成员方法,它不需要外部类的对象而直接由外部类创建。

2)类似一个类的静态成员方法,它只能访问外部类的静态成员,而不能访问非静态成员。

3)静态内部类中可以定义静态成员,当然也可以定义非静态成员。而其它的内部类都不能定义静态成员。

4)在类外部生成一个静态内部类也和在类外部调用静态方法一样,直接用外部类名创建,如下例:

Outer.Inner in = new Outer.Inner();
Oo_sky
推荐于2018-04-05 · TA获得超过1169个赞
知道小有建树答主
回答量:372
采纳率:25%
帮助的人:277万
展开全部

【概念】

定义在一个类内部的类,叫作“嵌套类”。嵌套类分为两种:static的和非static的。后者又有一个专门的名字,叫作“内部类”。所以从概念可以看出,嵌套类跟内部类是所属关系,后者包含于前者。示例代码如下:

class OuterClass {
    ...
    static class StaticNestedClass {
        ...
    }
    class InnerClass {
        ...
    }
}

同时,嵌套类是其所在类的成员。内部类可以访问所在类的所有成员,即使该成员是private的。而static嵌套类则不得访问所在类的成员。同时,嵌套类,static和非static的,都可以被声明为private、public、protected和default的。


【为什么要使用嵌套类】

好处应该都比较文本化吧,以后在使用的过程中去理解和体会吧:对只在一个地方使用的类进行逻辑上的分组;增加了封装性;易于阅读和维护。


【static嵌套类】

因为static嵌套类不能直接访问所在类的非static成员变量和方法,所以static嵌套类必须通过绑定所在类的实例来进行访问。而对于所在类的静态成员和方法包括private、protected和public的,可以访问。因为它也有static修饰。

static嵌套类通过写出封装的类名来进行实例化和访问其内部成员:

OuterClass.StaticNestedClass nestedObject =
     new OuterClass.StaticNestedClass();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chris_strive
2012-03-27 · TA获得超过350个赞
知道小有建树答主
回答量:658
采纳率:100%
帮助的人:413万
展开全部
内部类,即在一个类中定义另一个类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouwei05132
2012-03-28 · 超过11用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:27.3万
展开全部
嵌套类包括内部类、匿名内部类等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ludengji
2012-03-27 · TA获得超过208个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:98.8万
展开全部
class Out {
class Inner {
method(){}
}
public static void main(String[] args) {
Out.Inner in = new Out.Inner();
in.method();
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式