黑马程序员技术交流社区

标题: 视频中 内部类的问题 求解 [打印本页]

作者: 冯心程    时间: 2012-5-15 01:19
标题: 视频中 内部类的问题 求解

我记着不是Outer.Inner().XX(); 这个不是静态的
                   Outer.Inner.XX(); 这个是静态的所以能直接访问

求解不懂 怎么就根据function() 就确定 它是static的了呢?


作者: 崔陈喜    时间: 2012-5-15 01:40
内部类可以直接访问外部类中的成员,包括私有成员。
但是被Static修饰的内部类只能调用外部的静态方法。
因为function直接被test外部类调用而判断function是被static修饰的


作者: 黑马罗坚    时间: 2012-5-15 01:44
new Test.function().method();

如果inner类不是静态的话
static inter function(){
       new Test().new Inner();
}
作者: 黑马罗坚    时间: 2012-5-15 01:45
new Test.function().method();

如果inner类不是静态的话
static inter function(){
       new Test().new Inner();
}
作者: 冯心程    时间: 2012-5-15 03:10
本帖最后由 冯心程 于 2012-5-15 03:31 编辑
nailsoul 发表于 2012-5-15 01:45
new Test.function().method();

如果inner类不是静态的话

手一抖 发两个、、3Q
作者: 冯心程    时间: 2012-5-15 03:50
崔陈喜 发表于 2012-5-15 01:40
内部类可以直接访问外部类中的成员,包括私有成员。
但是被Static修饰的内部类只能调用外部的静态方法。
因 ...

不看这些恼人的理论 单从逻辑上来说 是不是可以这么理解
①编译的时候如果function不是静态的 那么还没有被实例化的test是不认识function是什么东西的  但是如果function是static的就事先就存在了 那么即便是test还没有被实例化也认识function这个东西   
  ②编译的时候如果test已经被new了 那么它就知道里面有个function ,function就不需是静态的了。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2