为什么内部类中有static成员时内部类也必须声明为static
来源:互联网 发布:汉字转ascll java 编辑:程序博客网 时间:2024/04/30 02:44
如果A和B类关系紧密,且A类的主要作用是帮助完成B类的实现,这时可将A类作为B类的内部类,两个类可以互相访问各自的私有成员,这样就方便B类的设计,使B类更加自给自足(self contained)。http://www.tanhuanyao.com http:// tanhuanyao.com http://www.bianshayao.com/ http://bianshayao.com/这是我理解的内部类产生的原因,有点类似于C++中的友元类 A类作为B类的内部类,便是B类的一份子,地位上和B类的属性和方法相当,此时A类便有static和非static之分了,这就是为什么只有内部类的类本身才有static的说法的原因。内部类声明为static和普通类的成员为static的含义一样,都是表示被声明为static的东西属于类范畴,不依赖于类的具体对象。如果内部类是非static的,那么这个内部类就依赖于外部类的具体对象,在该内部类中可以调用外部类的非static方法;如果内部类是static的,即该内部类属于外部类的类范畴,不依赖于外部类的具体对象,那么该内部类只能调用外部类的static方法,因为外部类的非static方法依赖于外部类的具体对象。这和普通类中static方法只能访问static的属性和方法的道理是一样的。那么为什么规定内部类中如果出现了static方法,该内部类也必须声明为static呢?内部类中的static方法表明该方法不依赖于内部类的具体对象,属于内部类的类范畴,假设此时内部类为非static的,那么内部类对象的产生就依赖于外部类对象,有一个外部类对象,才能有一个与之对应的内部类对象,而内部类对象中的static方法不依赖于内部类对象,所以使用该static方法便没有必要创建具体的内部类对象,如果该static方法确有其存在的意义,那就说明该内部类完全没有必要是非static的,java规定这时该内部类必须是static的。
0 0
- 为什么内部类中有static成员时内部类也必须声明为static
- java 内部类中 static (内部类对象成员)
- ListView优化中View Holder为什么用static声明为静态内部类
- 内部类 static内部类
- 【Java语法】java中成员内部类内为什么不允许有任何静态声明搜索
- static 内部类
- [Java]static内部类
- 关键字static内部类
- java static 内部类
- 内部类static ,final
- static修饰内部类
- static与内部类
- static静态内部类
- static修饰内部类
- java为什么非静态内部类中不能有static修饰的属性,但却可以有常量?
- [Java]非static内部类
- Java总结:static内部类
- java 内部类与static
- PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
- EBS接口表关系概览(部分)
- oracle的安装实践一
- C/C++刁钻问题各个击破之细说sizeof
- 布线工程师谈PCB设计
- 为什么内部类中有static成员时内部类也必须声明为static
- 多线程之GCD
- HTK搭建大词汇量连续语音识别系统(三)
- java.lang.UnsatisfiedLinkError: GetDistanceByMC 百度DistanceUtil计算距离,出现错误
- C++中各种类型的成员变量的初始化方法(转)
- Java内存管理知识整理
- 谨慎选择工作,努力工作是为了自己
- 第十三章:多任务
- C++ Primer学习-第15章 面向对象编程