如果一个嵌套类需要在单个方法之外仍然是可见,或者它太长,不适合放在方法内部,就应该使用成员类。

2023-12-14 23:30:37

当一个嵌套类需要在单个方法之外仍然是可见,或者它太长不适合放在方法内部时,可以考虑使用成员类(成员内部类)。成员类是声明在类的内部但不是在方法内部的类,可以访问外部类的实例成员。

以下是一个示例,演示了成员类的用法。考虑一个 Team 类,其中包含一个成员类 Player,表示球队的球员。在这个例子中,Player 类是 Team 类的成员类,因为它需要访问 Team 的实例变量,而且可能在单个方法之外被其他方法调用。

public class Team {
    private String teamName;
    private int foundedYear;

    // 构造函数
    public Team(String teamName, int foundedYear) {
        this.teamName = teamName;
        this.foundedYear = foundedYear;
    }

    // Getter 方法

    public String getTeamName() {
        return teamName;
    }

    public int getFoundedYear() {
        return foundedYear;
    }

    // 成员类 Player
    public class Player {
        private String playerName;
        private int playerNumber;

        // 构造函数
        public Player(String playerName, int playerNumber) {
            this.playerName = playerName;
            this.playerNumber = playerNumber;
        }

        // Getter 方法
        public String getPlayerName() {
            return playerName;
        }

        public int getPlayerNumber() {
            return playerNumber;
        }

        // 访问外部类的方法
        public void displayPlayerInfo() {
            System.out.println("Team: " + getTeamName());
            System.out.println("Founded Year: " + getFoundedYear());
            System.out.println("Player: " + getPlayerName());
            System.out.println("Player Number: " + getPlayerNumber());
        }
    }

    // 其他 Team 类的方法...
}

在这个例子中,Player 类是 Team 类的成员类,因为它直接访问了 Team 的实例变量(teamNamefoundedYear)。displayPlayerInfo 方法演示了如何在成员类中访问外部类的实例方法和变量。

使用成员类的好处之一是,它能够更自然地表示两者之间的关系,并且在一些情况下,可以减少代码的重复性。在这个例子中,球队的球员天然地与球队相关联,因此将球员表示为球队的成员类是合适的。

文章来源:https://blog.csdn.net/wcg_jishuo/article/details/135005598
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。