本帖最后由 cat73 于 2016-7-11 19:43 编辑
感觉 Java 写这一堆 get/set 方法好蛋疼。。
还是 C# 的写法简单。。。
- public final class Main {
- public static void main(final String args[]) throws Exception {
- new Main()._main(args);
- }
- private void _main(final String args[]) throws Exception {
- final Player p1 = new Player("队员-1", Sex.man, new Date(1998, 7, 4), 10.345d);
- final Player p2 = new Player("队员-2", Sex.woman, new Date(1997, 4, 11), 8.765d);
- final Player p3 = new Player("队员-3", Sex.man, new Date(1992, 1, 8), 9.111d);
- final Team team = new Team("测试队伍", "口号 0.0");
- team.addPlayers(p1, p2, p3);
- team.printBasePlayer(System.out);
- }
- /**
- * 游泳队
- *
- * @author cat73
- */
- public class Team {
- /**
- * 游泳队的队员列表
- */
- private final List<Player> players = new ArrayList<>();
- /**
- * 游泳队的名字
- */
- private final String name;
- /**
- * 游泳队的口号
- */
- private String slogan;
- /**
- * 实例化一个游泳队
- *
- * @param name 游泳队的名字
- * @param slogan 游泳队的口号
- */
- public Team(final String name, final String slogan) {
- this.name = name;
- this.slogan = slogan;
- }
- /**
- * 获取游泳队的名字
- *
- * @return 游泳队的名字
- */
- public final String getName() {
- return this.name;
- }
- /**
- * 获取游泳队的口号
- *
- * @return 游泳队的口号
- */
- public final String getSlogan() {
- return this.slogan;
- }
- /**
- * 设置游泳队的口号
- *
- * @param slogan 游泳队的新口号
- */
- public final void setSlogan(final String slogan) {
- this.slogan = slogan;
- }
- /**
- * 获取游泳队的队员列表
- *
- * @return 游泳队的队员列表
- */
- public final Player[] getPlayers() {
- return (Player[]) this.players.toArray();
- }
- /**
- * 增加队员
- *
- * @param players 要增加的队员列表
- */
- public void addPlayers(final Player... players) {
- for (final Player player : players) {
- this.players.add(player);
- }
- }
- /**
- * 移除队员
- *
- * @param players 要移除的队员列表
- */
- public void removePlayers(final Player... players) {
- for (final Player player : players) {
- this.players.remove(player);
- }
- }
- /**
- * 打印成绩最好的运动员的姓名和成绩
- *
- * @param out 打印到的输出流
- */
- public void printBasePlayer(final PrintStream out) {
- if (this.players.size() <= 0) {
- return;
- }
- double baseSource = Double.MAX_VALUE;
- Player basePlayer = null;
- for (final Player player : this.players) {
- if (player.getBaseSource() < baseSource) {
- baseSource = player.getBaseSource();
- basePlayer = player;
- }
- }
- out.println(String.format("%s: %f", basePlayer.getName(), basePlayer.getBaseSource()));
- }
- }
- /**
- * 队员
- *
- * @author cat73
- */
- public class Player {
- /**
- * 队员的名字
- */
- private String name;
- /**
- * 队员的性别
- */
- private Sex sex;
- /**
- * 队员的生日
- */
- private final Date birthday;
- /**
- * 队员的 100 米自由泳最佳成绩
- */
- private double baseSource;
- /**
- * 实例化一个队员
- *
- * @param name 队员的名字
- * @param sex 队员的性别
- * @param birthday 队员的生日
- * @param baseSource 队员的 100 米自由泳最佳成绩
- */
- public Player(final String name, final Sex sex, final Date birthday, final double baseSource) {
- this.name = name;
- this.sex = sex;
- this.birthday = birthday;
- this.baseSource = baseSource;
- }
- /**
- * 获取队员的名字
- *
- * @return 队员的名字
- */
- public final String getName() {
- return this.name;
- }
- /**
- * 修改队员的名字(省的哪年有人改名什么的。。。)
- *
- * @param name 队员的新名字
- */
- public final void setName(final String name) {
- this.name = name;
- }
- /**
- * 获取队员的性别
- *
- * @return 队员的性别
- */
- public final Sex getSex() {
- return this.sex;
- }
- /**
- * 修改队员的性别(哪年去做个变性手术。。。)
- *
- * @param sex 队员的新性别
- */
- public final void setSex(final Sex sex) {
- this.sex = sex;
- }
- /**
- * 获取队员的生日
- *
- * @return 队员的生日
- */
- public final Date getBirthday() {
- return this.birthday;
- }
- /**
- * 获取队员的 100 米自由泳最佳成绩
- *
- * @return 队员的 100 米自由泳最佳成绩
- */
- public final double getBaseSource() {
- return this.baseSource;
- }
- /**
- * 修改队员的 100 米自由泳最佳成绩
- *
- * @param baseSource 队员的新的 100 米自由泳最佳成绩
- */
- public final void setBaseSource(final double baseSource) {
- this.baseSource = baseSource;
- }
- }
- /**
- * 性别枚举(哪年你想扩展个伪娘啊什么的就方便了。。。)
- *
- * @author cat73
- */
- public enum Sex {
- man, woman
- }
- }
复制代码
|