黑马程序员技术交流社区

标题: 求帮助 [打印本页]

作者: 爷^周晨    时间: 2016-7-11 18:57
标题: 求帮助
,
"编程题(OC) 40分
一个游泳队有3名成员
游泳队有队名,口号两个属性等属性.
每个成员有姓名,性别,生日,最佳100米自由泳成绩四个属性.
1>10分
创建这两个类,其中游泳队的队名属性不能在外界随意更改.类的属性要求做到高内聚.
2>8分
提供一个方法创建游泳队对象的时候能初始化队名,口号两个属性.
3>8分
提供一个方法在创建运动员对象的时候能初始化姓名,性别,生日,最佳100米自由泳成绩四个属性
4>14分
自己创建三个运动员对象,组成一个游泳队,并且提供一个方法打印成绩最好的运动员的姓名和成绩.
假设三个人的成绩都不相同.
(方法不限)



作者: cat73    时间: 2016-7-11 18:57
本帖最后由 cat73 于 2016-7-11 19:43 编辑

感觉 Java 写这一堆 get/set 方法好蛋疼。。
还是 C# 的写法简单。。。
  1. public final class Main {
  2.     public static void main(final String args[]) throws Exception {
  3.         new Main()._main(args);
  4.     }

  5.     private void _main(final String args[]) throws Exception {
  6.         final Player p1 = new Player("队员-1", Sex.man, new Date(1998, 7, 4), 10.345d);
  7.         final Player p2 = new Player("队员-2", Sex.woman, new Date(1997, 4, 11), 8.765d);
  8.         final Player p3 = new Player("队员-3", Sex.man, new Date(1992, 1, 8), 9.111d);

  9.         final Team team = new Team("测试队伍", "口号 0.0");
  10.         team.addPlayers(p1, p2, p3);
  11.         team.printBasePlayer(System.out);
  12.     }

  13.     /**
  14.      * 游泳队
  15.      *
  16.      * @author cat73
  17.      */
  18.     public class Team {
  19.         /**
  20.          * 游泳队的队员列表
  21.          */
  22.         private final List<Player> players = new ArrayList<>();
  23.         /**
  24.          * 游泳队的名字
  25.          */
  26.         private final String name;
  27.         /**
  28.          * 游泳队的口号
  29.          */
  30.         private String slogan;

  31.         /**
  32.          * 实例化一个游泳队
  33.          *
  34.          * @param name 游泳队的名字
  35.          * @param slogan 游泳队的口号
  36.          */
  37.         public Team(final String name, final String slogan) {
  38.             this.name = name;
  39.             this.slogan = slogan;
  40.         }

  41.         /**
  42.          * 获取游泳队的名字
  43.          *
  44.          * @return 游泳队的名字
  45.          */
  46.         public final String getName() {
  47.             return this.name;
  48.         }

  49.         /**
  50.          * 获取游泳队的口号
  51.          *
  52.          * @return 游泳队的口号
  53.          */
  54.         public final String getSlogan() {
  55.             return this.slogan;
  56.         }

  57.         /**
  58.          * 设置游泳队的口号
  59.          *
  60.          * @param slogan 游泳队的新口号
  61.          */
  62.         public final void setSlogan(final String slogan) {
  63.             this.slogan = slogan;
  64.         }

  65.         /**
  66.          * 获取游泳队的队员列表
  67.          *
  68.          * @return 游泳队的队员列表
  69.          */
  70.         public final Player[] getPlayers() {
  71.             return (Player[]) this.players.toArray();
  72.         }

  73.         /**
  74.          * 增加队员
  75.          *
  76.          * @param players 要增加的队员列表
  77.          */
  78.         public void addPlayers(final Player... players) {
  79.             for (final Player player : players) {
  80.                 this.players.add(player);
  81.             }
  82.         }

  83.         /**
  84.          * 移除队员
  85.          *
  86.          * @param players 要移除的队员列表
  87.          */
  88.         public void removePlayers(final Player... players) {
  89.             for (final Player player : players) {
  90.                 this.players.remove(player);
  91.             }
  92.         }

  93.         /**
  94.          * 打印成绩最好的运动员的姓名和成绩
  95.          *
  96.          * @param out 打印到的输出流
  97.          */
  98.         public void printBasePlayer(final PrintStream out) {
  99.             if (this.players.size() <= 0) {
  100.                 return;
  101.             }

  102.             double baseSource = Double.MAX_VALUE;
  103.             Player basePlayer = null;
  104.             for (final Player player : this.players) {
  105.                 if (player.getBaseSource() < baseSource) {
  106.                     baseSource = player.getBaseSource();
  107.                     basePlayer = player;
  108.                 }
  109.             }

  110.             out.println(String.format("%s: %f", basePlayer.getName(), basePlayer.getBaseSource()));
  111.         }
  112.     }

  113.     /**
  114.      * 队员
  115.      *
  116.      * @author cat73
  117.      */
  118.     public class Player {
  119.         /**
  120.          * 队员的名字
  121.          */
  122.         private String name;
  123.         /**
  124.          * 队员的性别
  125.          */
  126.         private Sex sex;
  127.         /**
  128.          * 队员的生日
  129.          */
  130.         private final Date birthday;
  131.         /**
  132.          * 队员的 100 米自由泳最佳成绩
  133.          */
  134.         private double baseSource;

  135.         /**
  136.          * 实例化一个队员
  137.          *
  138.          * @param name 队员的名字
  139.          * @param sex 队员的性别
  140.          * @param birthday 队员的生日
  141.          * @param baseSource 队员的 100 米自由泳最佳成绩
  142.          */
  143.         public Player(final String name, final Sex sex, final Date birthday, final double baseSource) {
  144.             this.name = name;
  145.             this.sex = sex;
  146.             this.birthday = birthday;
  147.             this.baseSource = baseSource;
  148.         }

  149.         /**
  150.          * 获取队员的名字
  151.          *
  152.          * @return 队员的名字
  153.          */
  154.         public final String getName() {
  155.             return this.name;
  156.         }

  157.         /**
  158.          * 修改队员的名字(省的哪年有人改名什么的。。。)
  159.          *
  160.          * @param name 队员的新名字
  161.          */
  162.         public final void setName(final String name) {
  163.             this.name = name;
  164.         }

  165.         /**
  166.          * 获取队员的性别
  167.          *
  168.          * @return 队员的性别
  169.          */
  170.         public final Sex getSex() {
  171.             return this.sex;
  172.         }

  173.         /**
  174.          * 修改队员的性别(哪年去做个变性手术。。。)
  175.          *
  176.          * @param sex 队员的新性别
  177.          */
  178.         public final void setSex(final Sex sex) {
  179.             this.sex = sex;
  180.         }

  181.         /**
  182.          * 获取队员的生日
  183.          *
  184.          * @return 队员的生日
  185.          */
  186.         public final Date getBirthday() {
  187.             return this.birthday;
  188.         }

  189.         /**
  190.          * 获取队员的 100 米自由泳最佳成绩
  191.          *
  192.          * @return 队员的 100 米自由泳最佳成绩
  193.          */
  194.         public final double getBaseSource() {
  195.             return this.baseSource;
  196.         }

  197.         /**
  198.          * 修改队员的 100 米自由泳最佳成绩
  199.          *
  200.          * @param baseSource 队员的新的 100 米自由泳最佳成绩
  201.          */
  202.         public final void setBaseSource(final double baseSource) {
  203.             this.baseSource = baseSource;
  204.         }
  205.     }

  206.     /**
  207.      * 性别枚举(哪年你想扩展个伪娘啊什么的就方便了。。。)
  208.      *
  209.      * @author cat73
  210.      */
  211.     public enum Sex {
  212.         man, woman
  213.     }
  214. }
复制代码



作者: 爷^周晨    时间: 2016-7-11 20:20
cat73 发表于 2016-7-11 19:40
感觉 Java 写这一堆 get/set 方法好蛋疼。。
还是 C# 的写法简单。。。

大哥,这是OC  IOS的,不是Java
作者: 爷^周晨    时间: 2016-7-12 00:03
cat73 发表于 2016-7-11 19:40
感觉 Java 写这一堆 get/set 方法好蛋疼。。
还是 C# 的写法简单。。。

没看上面写的OC题。。。。。。你这是马虎啊
作者: 爷^周晨    时间: 2016-7-12 00:18
爷^周晨 发表于 2016-7-12 00:03
没看上面写的OC题。。。。。。你这是马虎啊

我这都不知道咋给你分了,虽然方法不对,但是你是第一个回我的人,十分感谢
作者: 15620606706    时间: 2016-7-14 01:04
准备逆袭中,奋斗!!!
作者: zhaodecang    时间: 2016-7-15 13:53
用判断语句写呀




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