黑马程序员技术交流社区

标题: 匿名内部类面试题-求详解 [打印本页]

作者: LPStone    时间: 2015-5-9 23:13
标题: 匿名内部类面试题-求详解
感觉匿名内部类最难了 ,求大神详解,谢谢!
根据长下文,在提示处补充代码。

interface Inter
{
        void method();
}
class Test
{
          //补足代码。通过匿名内部类。
}
class InnerClassTest
{
        public static void main(String[] args)
        {
                 Test.function().method();
        }
}





作者: jiangwenjun    时间: 2015-5-9 23:31
public static Inter function(){
      retrun  new Inter(){
             public void method(){
                 System.out.println("HI");
             }
      }

}
作者: yihuihua    时间: 2015-5-10 00:24
Test.function().method();
首先Test.function()是由类直接调用的,说明是个静态方法,.method();可以看出返回值类型是Inter,因为只有Inter才能调用method();
作者: 北京南瓜    时间: 2015-5-10 00:28
jiangwenjun 发表于 2015-5-9 23:31
public static Inter function(){
      retrun  new Inter(){
             public void method(){

大神啊,能不能详解一下,我也不是很懂
作者: 我干阿衰    时间: 2015-5-10 01:05
public static Inter function() {
//由Test.function().method();这是一个链式编程,其返回的都是一个对象.
  //首先Test.function()说明functions是一个静态方法        ,同理method()也为静态.

                return new Inter() {    //此段代码可以看成 Inter i = new Test
                                public void method() {
                                        System.out.println("method");
                                }
                        }
                }
作者: lovejjfg    时间: 2015-5-10 12:10
我干阿衰 发表于 2015-5-10 01:05
public static Inter function() {
//由Test.function().method();这是一个链式编程,其返回的都是一个对象. ...

差个分号。。。
作者: as12510    时间: 2015-5-10 13:27
static A function(){
  return new A();
  class A implement Inter{
static void  method(){}
}
}


作者: lzh2015    时间: 2015-5-10 14:32
public static void function() {
}





作者: 彭越    时间: 2015-5-10 14:41
难吗,还可啦!
作者: rose_xiaomei    时间: 2015-5-10 20:38
匿名内部类其实没那么难理解,说白了就是一个匿名子类对象,记住格式基本没什么大问题了,格式: new 父类或者接口(){ 定义子类的内容... }
//Test.function()可以推断出,Test类中有一个静态方法Function();
//.method()推出function这个方法返回的是一个对象,并且是一个Inter类型的对象
public static Inter function(){   //静态Inter类型的function
     return new Inter(){            //基本格式 new 接口
        public void method(){
           System.out....
       }
   }
}

作者: dengxing    时间: 2015-5-10 20:55
yihuihua 发表于 2015-5-10 00:24
Test.function().method();
首先Test.function()是由类直接调用的,说明是个静态方法,.method();可以看出 ...

赞!!!!
作者: Melo    时间: 2015-5-10 22:06
大神啊,能不能详解一下,
作者: yuanhnu    时间: 2015-5-10 22:10
少个分号;




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