黑马程序员技术交流社区

标题: 匿名对象内部类 [打印本页]

作者: 城北一直晴。    时间: 2015-5-28 17:19
标题: 匿名对象内部类
interface Inter
{
void method();
}
class Test
{
  Static Inter function()//总说这里错误,大家看看怎么改?
{
   return new Inter()
  {
   public void method()
   {
    System.out.println("method run");
    }
   };
}
}
class InnerClassTest
{
public static void main (String[] args)
{
  Test.function.method();
  }
}
作者: 黯然残影    时间: 2015-5-28 18:13
你这是方法呢?还是定义内部类呢 ?
作者: 挖煤黑小伙    时间: 2015-5-28 18:27
我是小白 我看着就晕了!
作者: 城北一直晴。    时间: 2015-5-28 18:45
黯然残影 发表于 2015-5-28 18:13
你这是方法呢?还是定义内部类呢 ?

匿名内部类
作者: 城北一直晴。    时间: 2015-5-28 18:51
挖煤黑小伙 发表于 2015-5-28 18:27
我是小白 我看着就晕了!

你是小白技术分还那么多
作者: wuyusi    时间: 2015-5-28 20:35
方法上,static后接的是接口名,不错才怪,将inter该成void
作者: 城北一直晴。    时间: 2015-5-28 20:44
wuyusi 发表于 2015-5-28 20:35
方法上,static后接的是接口名,不错才怪,将inter该成void

interface Inter
{
void method();
}
class Test
{
//补足代码,通过匿名内部类。
}
class InnerClassTest
{
public static void main(String[] args)
{
  Test.function().method();
  }
}
//这是那个练习的原题。你试试。
作者: 914360849    时间: 2015-5-28 21:21
匿名对象 ,可以理解为 把对象改为了new 类名();的形式
作者: !85684009ex    时间: 2015-5-28 21:41
膜拜大神!谢谢你!
作者: l598790586    时间: 2015-5-28 21:55
接口不可以创建对象,肯定报错的
作者: 仅此一抹心醉    时间: 2015-5-28 22:04
小白 表示已经看懵逼了········
作者: wuyusi    时间: 2015-5-28 23:07
城北一直晴。 发表于 2015-5-28 20:44
interface Inter
{
void method();

之前分析错了,sorry
interface Inter
{void method();
}
class Test
{static Inter function()
        {
                return new Inter()
                        {
                        public void method()
                                {
                        //表达式
                                }
        };
        }
       
}
class InnerClassTest
{
        public static void main(String[] args)
        {
                Test.function().method();
        }
}

作者: wuyusi    时间: 2015-5-28 23:09
你把static的s写成大写了,Static不是关键字了
作者: 城北一直晴。    时间: 2015-5-29 09:13
914360849 发表于 2015-5-28 21:21
匿名对象 ,可以理解为 把对象改为了new 类名();的形式

interface Inter
{
void method();
}
class Test
{
//补足代码,通过匿名内部类。
}
class InnerClassTest
{
public static void main(String[] args)
{
  Test.function().method();
  }
}
//这是那个练习的原题。你试试。
作者: 城北一直晴。    时间: 2015-5-29 09:14
l598790586 发表于 2015-5-28 21:55
接口不可以创建对象,肯定报错的

interface Inter
{
void method();
}
class Test
{
//补足代码,通过匿名内部类。
}
class InnerClassTest
{
public static void main(String[] args)
{
  Test.function().method();//主要要看懂这句话哈。
  }
}
//这是那个练习的原题。你试试。
作者: bin2015    时间: 2015-5-29 09:43
匿名内部类不是用接口创建对象而是借用接口的名字来创建接口的实现类对象,要实现接口里的方法。所以楼主思路是没有问题的。
  Static Inter function()这个function是什么,干嘛要写这个,你写的是匿名内部类如果加了这个function,这个是方法名还是内部类的类名,去掉这个function看看
作者: 城北一直晴。    时间: 2015-5-29 15:07
bin2015 发表于 2015-5-29 09:43
匿名内部类不是用接口创建对象而是借用接口的名字来创建接口的实现类对象,要实现接口里的方法。所以楼主思 ...

interface Inter
{
void method();
}
class Test
{
//补足代码,通过匿名内部类。
}
class InnerClassTest
{
public static void main(String[] args)
{
  Test.function().method();//主要要看懂这句话哈。
  }
}
//这是那个练习的原题。你试试。
作者: bin2015    时间: 2015-5-29 16:08
  1. interface Inter
  2. {
  3.         void method();
  4. }
  5. class Test
  6. {
  7.         //补足代码,通过匿名内部类。
  8.          public static void fuction()
  9.         {
  10.                   new Inter(){
  11.                         public  void method()
  12.                         {
  13.                                 System.out.println("匿名内部类");
  14.                         }
  15.                 }.method();
  16.         }
  17. }
  18. class InnerClassTest
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.                 Test.fuction();//主要要看懂这句话哈。
  23.         }
  24. }
复制代码

作者: bin2015    时间: 2015-5-29 16:13
本帖最后由 bin2015 于 2015-5-29 16:17 编辑
  1. <blockquote>new Inter(){            //这里创建的不是Inter接口的对象,创建的是Inter接口实现类的对象。
  2.                         public  void method()     //实现了接口的method方法
  3.                         {
  4.                                 System.out.println("匿名内部类");
  5.                         }
  6.                 }.method();//调用method的方法
复制代码



作者: bin2015    时间: 2015-5-29 16:18
这个题目是接口实现类的局部匿名类部类
作者: 志行    时间: 2015-5-29 16:44
城北一直晴。 发表于 2015-5-29 09:14
interface Inter
{
void method();

....怎么感觉那么像视频里面的原题呢~~~
作者: forTomorrow    时间: 2015-5-29 16:54
static 应该小写 还有你没有一个公共类 应该把main函数所在那个类前面用public修饰
作者: 志行    时间: 2015-5-29 16:57
恩我给你找了一下  ,入学测试第九天 第四个 匿名内部类的视频里面讲的很清楚  再看一看吧~~~~~~~~~
作者: 麦兜是个猪    时间: 2015-5-29 17:16
这个老毕在视频里讲的很清楚了啊,你再看看视屏,匿名内部类补足代码那个。
作者: 城北一直晴。    时间: 2015-5-29 18:10
志行 发表于 2015-5-29 16:57
恩我给你找了一下  ,入学测试第九天 第四个 匿名内部类的视频里面讲的很清楚  再看一看吧~~~~~~~~~ ...

蒽蒽。谢谢哈。
作者: 城北一直晴。    时间: 2015-5-29 18:11
志行 发表于 2015-5-29 16:44
....怎么感觉那么像视频里面的原题呢~~~

就是原题,:lol
有什么学习方法交流交流,我都记不住》
作者: 志行    时间: 2015-5-30 13:30
城北一直晴。 发表于 2015-5-29 18:11
就是原题,
有什么学习方法交流交流,我都记不住》

看视频 写代码 最后自己写总结    恩  说的很容易 我也容易忘  加油吧  多看看别人总结 ,我最近在论坛经常看论坛提问~~~然后会的就回复 不会的就 查一查  再回复  比较偷懒的学习方法~~




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