首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在enum类java中使用getter和setter

在enum类java中使用getter和setter
EN

Stack Overflow用户
提问于 2022-08-07 05:55:12
回答 1查看 176关注 0票数 0

如果我不声明private Type type;并尝试使用getter和setter,我总是会遇到某种错误,当然,我不太明白。对我来说只是一条红线。我只是想弄清楚为什么我必须声明一个我认为我不需要的独立变量。

请问我是否遗漏了任何信息。这是我的第一个问题!

下面是我要做的练习的一部分:

包含额外私有数据成员的Postgraduate.java

  • 类型:是一个名为类型的Enum,包括研究和课程;

在文件Postgraduate.java中实现Java方法,其中包括:

  • 为所有数据成员分配值的初始化构造函数;
  • 返回私有数据成员值的公共访问方法getType()
  • 更新私有数据成员值的公共更新方法setType(Type newType)
  • 返回研究生信息的公共重写方法toString()
代码语言:javascript
运行
复制
public class Postgraduate {
    private enum Type{Reserch,Coursework;}
    private Type type;

    public Postgraduate(Type newtype) {
        Type type=newtype;
    }

    public Type getType() {
        return type;
    }

    public void setType(Type newType){
        type = newType;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-07 06:45:54

枚举是一种类型,与类或接口相同。因此,这一行代码声明的是类型,而不是变量:

代码语言:javascript
运行
复制
private enum Type{Reserch,Coursework;}

这一行代码声明了一个成员变量,而不是一个全局变量(正如您在评论中对您的问题所说的那样):

代码语言:javascript
运行
复制
private Type type;

此外,正如@ArunGowda在他的评论中所写的,在Postgraduate类构造函数的代码中有一个错误。守则应是:

代码语言:javascript
运行
复制
public Postgraduate(Type newtype) {
    type = newtype;
}

通过约定,枚举值都是大写的.你也把Research拼写错了。考虑以下代码:

代码语言:javascript
运行
复制
public class Postgraduate {
    private enum Type {RESEARCH, COURSEWORK}

    private Type  type;

    public Postgraduate(Type type) {
        this.type = type;
    }

    @Override // java.lang.Object
    public String toString() {
        return type.toString();
    }

    public static void main(String[] args) {
        Postgraduate phD = new Postgraduate(Type.RESEARCH);
        System.out.println(phD);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73265208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档