Java学习-匿名类

Posted 细雨轻风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习-匿名类相关的知识,希望对你有一定的参考价值。

1.筛选出符合条件的Hero:要求hp>100 && damage<50

匿名类实现:

先定义接口HeroChecker,其中的test()方法实现了Hero的筛选

1 package generic;
2 
3 import charactor.Hero;
4 
5 public interface HeroChecker {
6     public boolean test(Hero h);
7 }
 1 package generic;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 import java.util.Random;
 6 import charactor.Hero;
 7 
 8 public class test {
 9 
10     public static void main(String[] args) {
11         Random r = new Random();
12         List<Hero> heros = new ArrayList<Hero>();
13         for (int i = 0; i < 10; i++) {
14             heros.add(new Hero("hero " + i, r.nextInt(1000), r.nextInt(100)));
15         }
16         System.out.println("初始化后的集合:");
17         System.out.println(heros);
18         System.out.println("筛选出 hp>100 && damange<50的英雄");
19 
20         // 借助接口HeroChecker实现匿名类,匿名类中有test()方法,正是要求的筛选方法
21         HeroChecker hc = new HeroChecker() {
22             @Override
23             public boolean test(Hero h) {
24                 // TODO Auto-generated method stub
25                 if (h.hp > 100 && h.damage < 50)
26                     return true;
27                 else
28                     return false;
29             }
30         };
31         filter(heros, hc);
32     }
33 
34     // 通过匿名类HeroChecker的test()方法,测试HeroList的每一个Hero,输出符合要求的Hero
35     private static void filter(List<Hero> heros, HeroChecker hc) {
36         for (Hero hero : heros) {
37             if (hc.test(hero) == true)
38                 System.out.print(hero);
39         }
40     }
41 
42 }

效果图:

以上是关于Java学习-匿名类的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记3.8.4 内部类 - 匿名内部类

Java学习笔记之二十六深入理解Java匿名内部类

Java基础学习笔记十 Java基础语法之finalstatic匿名对象内部类

Java匿名内部类的学习

java学习中,成员内部类匿名内部类(java 学习中的小记录)

Java学习-匿名类