我是java和编程新手,今天我遇到了这3个关系的问题。不幸的是,从我的材料中我无法理解如何实现它们。我希望有人能为我说清楚。
1)协会 例如,我有2个班级。学生和学校,这是多重性1:1的关联,我理解在每个班级中,我都有一个指向另一个班级的属性。但我的问题是,如果在构造函数中我是否声明这些引用变量?我是否也为它们创建了set和get方法?如果该关联具有多重性1:N怎么办?我有引用变量,引用列表,我是否在构造函数中以某种方式声明?我是否为该数组列表创建了set和get方法?
2)聚合 据我所知,在Java聚合中的实现方面只不过是单向关联。所以引用变量只在一个类中。我的假设是真的吗?
3)组成 我知道组合是特殊类型的聚合。所以我认为,就Java的实现而言,它也是单向关联,因此实现将是相同的,唯一不同的是我们如何在编程之外识别这种关系。
如果有人能帮助我,我会非常感激
很抱歉,我没有展示任何例子,这是真的,它可以帮助我描述我的想法。
让我们说我们上课,学生
public class Student {
private String name;
private School school;
}
public Student(String namei, School school) {
this.name = name;
this.school = school;
}
如果是小学,会有一个私人学生,那就是一个协会。但如果没有,并且唯一的参考属性将在类Student中,我是否正确,如果我会说这些类之间的关系是聚合?
如果我们稍微改变一下,我们说,那所学校需要有学生。所以我们改变的唯一方法就是背景,我们如何思考这个主题而不是别的什么,如果我们愿意这样做,如果我说这种关系是作曲,我会是对的吗?
答案 0 :(得分:0)
学校肯定需要一个学生,但它不能是作文,因为在作文中容器(在这种情况下是学校)和内容(在这种情况下是学生)是这样的,一个人的破坏意味着对另一个人的破坏,即使你离开你的高等学习学校(内容已经消失),内容应该仍然存在,
我会将学校和学生之间的关系视为聚合
聚合:这里两个对象之间存在一种关系,即使用其他对象,所包含的对象(student)在main函数中初始化
这里学校是容器,学生是内容,它是聚合的,因为当学生出生时,他没有报名参加学校(如果您使用作文会是如此),所以我们需要初始化学生main函数并将其作为参数传递给构造函数
中的学校聚合:
class Student
{
String Name;
int grade;
Student() {}
Student(String Name,int grade)
{
this.Name=Name;
this.grade=grade;
}
public String toString()
{
return(this.Name + " : "+this.grade);
}
}
class School
{
Student student;
String SchoolName;
School(Student student,String SchoolName)
{
this.student=student;
this.SchoolName=SchoolName;
}
public String toString()
{
return(this.student + " : "+this.SchoolName);
}
}
class Aggregation
{
public static void main(String[] args)
{
Student student = new Student("Sourabh",4);
School school = new School(student,"SBI");
System.out.println(school);
}
}
如果你想实现它作为组合关系初始化学校构造函数中的对象学生