内部类的类体中不可以声明类变量和类方法?

jerry313 2009-11-27 09:39:13
如题,老师课件上写的

是不是值内部类中不能生命静态变量和静态方法

但是好像静态内部类可以声明

是不是没写全面?

...全文
997 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
popesdo 2009-11-28
  • 打赏
  • 举报
回复
(非静态)普通内部类中不能有静态方法和静态变量
普通内部类的对象只能在与其外围类的对象相关的情况下才能被创建。构建普通内部类对象时,需要一个指向
其外围类对象的引用,即普通内部类只能通过外部类的对象才能创建。因此,普通内部类的字段与方法,只能
放在类的外部层次上,所以普通的内部类不能有static方法和static变量,也不能包含静态类。

class A{
class B{
static void C(){};
//error: The method C cannot be declared static;
// static methods can only be declared in a static or top level type

static int a;
//error: The field a cannot be declared static;
// static fields can only be declared in static or top level types


}
}


静态内部类一般称为 嵌套类,有如下性质:
1.要创建嵌套类的对象,并不需要其外围类的对象。
2.不能从嵌套类的对象中访问非静态的外围类对象。
嵌套类既可以包含static方法和变量,也可以包含嵌套类和普通内部类。
my_caterpillar 2009-11-28
  • 打赏
  • 举报
回复
一楼的网址里边关于内部类讲的很详细的,去看看吧!
tg008007x3 2009-11-28
  • 打赏
  • 举报
回复
楼上讲的已经很详细了,祝楼主好运.
sun90cn 2009-11-27
  • 打赏
  • 举报
回复
en 不错。
老张-AI 2009-11-27
  • 打赏
  • 举报
回复
老张-AI 2009-11-27
  • 打赏
  • 举报
回复
可以的
比如这样
public   class   A{   

static class B{
static int C;
}

}
不善^ 2009-11-27
  • 打赏
  • 举报
回复
看看这个文章 你就知道了
http://zhidao.baidu.com/question/124117953.html

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧