提问人:Matias04_ 提问时间:10/31/2023 更新时间:10/31/2023 访问量:50
从其他类导入 id(Attribute)
Import id(Attribute) from other class
问:
所以我有一个名为 Major 的类,它包含相应的 majorId,我有 Student 类,它参加某个 Major,我想知道是否有可能在为学生声明变量时以某种方式导入 majorId,而无需使用 Setter 或 Getter 函数,也许是一种更快更简单的方法?
import java.util.ArrayList;
public class Student extends Person {
private static String cod;
public String Major.majorId; //?????????? This is what I was trying to do
private ArrayList<Subject> subjectList;
}
public class Major {
private String majorId;
private ArrayList<Student> studentList;
}
答:
0赞
S.D
10/31/2023
#1
调用方式是在静态上下文中。为了做到这一点,你必须在类中声明变量为 .Major.majorId
majorId
Major
static
但请记住,静态变量是类的一部分,这意味着该类的所有实例将共享相同的变量。
0赞
paydro
10/31/2023
#2
你要做的事情不是直接可能的,但它也不是最好的模式。如果您的意图是只允许访问字符串,则有几个干净的选项:majorId
- 构造函数中的解构
通过在构造函数中传递 Major 对象,可以获取其 id 以供本地使用:
public class Student {
public final String majorId;
public Student(Major m) {
this.majorId = m.majorId;
}
}
或者,单独传递 ID:
...
public Student(String majorId) {
this.majorId = majorId
}
- 访问级别定义
从理论上讲,避免在类中保留对象引用没有多大好处。您可以将 major 设为私有,并且只允许访问 majorId 值。真的,这是一个吸气剂,但它是很好的模式。Major
Student
public class Student {
private final Major major;
public Student(Major m) {
this.major = m;
}
public String majorId() {
return major.majorId;
}
}
上一个:如何获取承诺的价值?
评论
Major
majorId