如果我不声明private Type type;
并尝试使用getter和setter,我总是会遇到某种错误,当然,我不太明白。对我来说只是一条红线。我只是想弄清楚为什么我必须声明一个我认为我不需要的独立变量。
请问我是否遗漏了任何信息。这是我的第一个问题!
下面是我要做的练习的一部分:
包含额外私有数据成员的Postgraduate.java:
在文件Postgraduate.java中实现Java方法,其中包括:
getType()
;setType(Type newType)
;toString()
。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;
}
}
发布于 2022-08-07 06:45:54
枚举是一种类型,与类或接口相同。因此,这一行代码声明的是类型,而不是变量:
private enum Type{Reserch,Coursework;}
这一行代码声明了一个成员变量,而不是一个全局变量(正如您在评论中对您的问题所说的那样):
private Type type;
此外,正如@ArunGowda在他的评论中所写的,在Postgraduate
类构造函数的代码中有一个错误。守则应是:
public Postgraduate(Type newtype) {
type = newtype;
}
通过约定,枚举值都是大写的.你也把Research拼写错了。考虑以下代码:
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);
}
}
https://stackoverflow.com/questions/73265208
复制相似问题