黑马程序员技术交流社区

标题: 这句话如何理解 [打印本页]

作者: wodeairenw    时间: 2013-4-24 15:00
标题: 这句话如何理解
本帖最后由 wodeairenw 于 2013-4-24 20:57 编辑

已解决。。。
作者: 殇_心。    时间: 2013-4-24 15:27
我这样理解:
比如说人和心的关系。
心就是内部类。
测试代码如下:
class Person
{
        int name;
        class Heart
        {
                void run()
                {
                        System.out.println("心在跳");
                }
        }
}
作者: smallsea    时间: 2013-4-24 15:27
public class Out {
     public class Inner{
                                  //是外部类         
                Out out = new Out ();
                                  //实例内部类
                     // Inner inner= out.new Inner();
                Out .Inner inner= out.new Inner();
       }
}
作者: harborbest    时间: 2013-4-24 15:53
在外部类里边创建一个内部类,而这个内部类可以实例化!代码上边的朋友写了不写了。
作者: JavaUtil    时间: 2013-4-24 16:06
好像应该是这样的吧!
public class Out {
      public Inner inn;     //外部类创建内部类的对象
      public class Inner{
                    //内部类的编写
        }
      .....    .//外部类对内部类的操作
}
作者: wodeairenw    时间: 2013-4-24 16:11
殇_心。 发表于 2013-4-24 15:27
我这样理解:
比如说人和心的关系。
心就是内部类。

实例(对象?)这两个字怎么理解,你这是说的创建包含有内部类的类
作者: 何羡玉    时间: 2013-4-24 16:30

public class outer {
       outer(){
               inner in=new inner();
       }
         class inner{
                 inner()
                 {
                         System.out.println("hahahh");
                         
                 }
                void method()
                {
                        //自己定义方法内容
                }
                 
         }
        public static void main(String[] args) {
                // TODO Auto-generated method stub
         outer ou=new outer();
        }
}
创建一个外部类,这个类里面有一个内部类。然后再创建这个外部类的对象。
作者: 殇_心。    时间: 2013-4-24 16:31
wodeairenw 发表于 2013-4-24 16:11
实例(对象?)这两个字怎么理解,你这是说的创建包含有内部类的类

实例 不就是 举个例子吗?
你怎么理解的?
作者: wodeairenw    时间: 2013-4-24 16:39
殇_心。 发表于 2013-4-24 16:31
实例 不就是 举个例子吗?
你怎么理解的?

我感觉是匿名内部类对象,但是行不通。因为有别的参数在里面:外部类中定义一个名为str的String字符串并初始化任意值,在内部类中定义跟外部类同种类型且同名的变量;这两个变量一定义后匿名内部类里面的变量会报错,但不要匿名内部类就不报错,不知道为什么
作者: 殇_心。    时间: 2013-4-24 16:49
wodeairenw 发表于 2013-4-24 16:39
我感觉是匿名内部类对象,但是行不通。因为有别的参数在里面:外部类中定义一个名为str的String字符串并 ...

把你错误代码贴出来呗。哥们。````
作者: wodeairenw    时间: 2013-4-24 16:57
本帖最后由 wodeairenw 于 2013-4-24 20:58 编辑
殇_心。 发表于 2013-4-24 16:49
把你错误代码贴出来呗。哥们。````
  1. 已解决。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。谢谢。。
复制代码

作者: 殇_心。    时间: 2013-4-24 17:24
本帖最后由 殇_心。 于 2013-4-24 17:26 编辑

先说个小错误吧:
你把匿名内部类定义在了成员位置上。
这是显然编译失败的。
测试代码如下:
public class Test
{

        String str = "aaa";

      
        
        
        public static void main(String[] args)
        {
        }
        void fun()
        {
                new Object()  //匿名内部类对象:
            {
              String str = "aaaaaa";//这个地方和上面冲突
                void print()
                {

                        //在this前打上类名调用外部类变量

                        System.out.println("外部类str="+Test.this.str);

                        //this可以直接调用内部类变量

                        System.out.println("内部类str="+this.str);

                }
            };
        }
}
作者: wodeairenw    时间: 2013-4-24 20:56
殇_心。 发表于 2013-4-24 17:24
先说个小错误吧:
你把匿名内部类定义在了成员位置上。
这是显然编译失败的。

谢谢,是我自己没理解好,基础部扎实啊。
作者: 殇_心。    时间: 2013-4-24 20:59
wodeairenw 发表于 2013-4-24 20:56
谢谢,是我自己没理解好,基础部扎实啊。

互相帮助吧




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