黑马程序员技术交流社区

标题: 为什么能找到? [打印本页]

作者: 徐瑶    时间: 2014-3-19 15:56
标题: 为什么能找到?
class Outer{
         int nun;
}

class Inner{
        public static void main(String[] args){
                Outer out = new Outer();
        }
}
new Outer()为什能找到类Outer类来创建对象
作者: 歌尽繁华    时间: 2014-3-19 16:07
Inner不是Outer的内部类,Inner没有在Outer的body里面,是两个独立的类,当然可以直接new
作者: a569609054    时间: 2014-3-19 16:17
这两个类是独立的两个类,是可以直接创建对象的。
作者: leon_hm    时间: 2014-3-19 16:36
两个类是相互独立的。而且放在一个目录下。肯定是可以new的。
作者: 张东健    时间: 2014-3-19 17:39
这两个类是可以访问的到的
作者: sgs_gzy    时间: 2014-3-19 17:52
两个类是分开的好么,当然Inner能创建Outer的对象
你要在Outer局部或者成员上新建个类,这才算是Outer的内部类。
作者: H._张_♂    时间: 2014-3-19 18:10
首先,class Outer这个类没有写构造方法,系统会自动添加构造方法 Outer(){};即一个空的构造方法,构造后该对象拥有一个成员变量nun,
其次,class Inner{这个类有一个 public static void main(String[] args){}主函数,也是程序运行起来的一个接口,可以单独执行后面的语句

  1. class Inner {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.        
  7.              Outer out = new Outer();
  8.              out.print();  
  9.         }

  10. }

  11. class Outer{
  12.          int nun;
  13.     public void print(){
  14.             System.out.print("Print");
  15.     }
  16.          
  17. }
复制代码

你可以看到能对new出来的新对象调用方法,说明对象成功创建。
作者: 李猛    时间: 2014-3-19 18:16
上面说的很清楚了,由于这是两个独立的类,而且类本身没有被手动添加构造函数,当你new对象时系统默认会为你提供一个空构造函数,所以不会有什么问题




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