大神帮我看下这串关于java匿名内部类有什么问题没

这串代码是引自一个学习博客:http://blog.csdn.net/chenssy/article/details/13170015

package testNote1;

public class OutClass {  
    public InnerClass getInnerClass(final int age,final String name){  
        return new InnerClass() {  
            int age_ ;  
            String name_;  
            //构造代码块完成初始化工作  
            {  
                if(0 < age && age < 200){  
                    age_ = age;  
                    name_ = name;  
                }  
            }  
            public String getName() {  
                return name_;  
            }  

            public int getAge() {  
                return age_;  
            }  
        };  
    }  

    public static void main(String[] args) {  
        OutClass out = new OutClass();  

        InnerClass inner_1 = out.getInnerClass(201, "chenssy");  
        System.out.println(inner_1.getName());  

        InnerClass inner_2 = out.getInnerClass(23, "chenssy");  
        System.out.println(inner_2.getName());  
    }  
}  

我在想上面的代码是不是少了定义类,如:

package testNote1;

public class InnerClass {
    public String name_;
    public int age_;

      public String getName() {  
          return name_;  
      }  

      public int getAge() {  
          return age_;  
      }  

}

如果是这样的话,代码中的内部类中下图的部分是否定义多余了:

图片说明

2个回答

上面的写法是匿名的写法,下面的写法是命名的写法,都是可以的。匿名的写法没办法在代码中使用类型名。

ybdt1201
ybdt1201 现在的问题是,如果给InnerClass单独定义,上面的代码就会报这个错:InnerClass cannot be resolved to a type;这样的话上面关于匿名的写法是否有误,是否必须要另外单独定义InnerClass这个类
3 年多之前 回复

一个是匿名内部类,一个是内部类

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问