码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习-匿名类

时间:2020-01-25 16:52:07      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:code   array   als   vat   random   prim   car   import   效果   

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学习-匿名类

标签:code   array   als   vat   random   prim   car   import   效果   

原文地址:https://www.cnblogs.com/gilgamesh-hjb/p/12232002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!