Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 关联、聚合和组合示例_Oop - Fatal编程技术网

Oop 关联、聚合和组合示例

Oop 关联、聚合和组合示例,oop,Oop,关联、聚合和组合 我想用简单的类来说明以上三种方法。我从网上读了很多书。结论如下:- 人们总说- “类A包含另一个类(例如B)的集合,如果A被销毁,则不会影响其子级,因为该集合不会被销毁。” 如果一个物体被摧毁了,但它的财产仍然存在,或者它们的意思是什么,这怎么可能呢 A类 { 列表lst; } B类 { } 考虑以下类别 class Student { public string Id { get; set; } public string Name { get; set; }

关联、聚合和组合

我想用简单的类来说明以上三种方法。我从网上读了很多书。结论如下:-

人们总说-

“类A包含另一个类(例如B)的集合,如果A被销毁,则不会影响其子级,因为该集合不会被销毁。” 如果一个物体被摧毁了,但它的财产仍然存在,或者它们的意思是什么,这怎么可能呢

A类
{
列表lst;
}
B类
{
}

考虑以下类别

class Student
{
    public string Id { get; set; }
    public string Name { get; set; }
}

class Department
{
    public IList<Student> Students { get; set; }

    public void AddStudent(Student student)
    {
        //...
    }

    public void RemoveStudent(Student student)
    {
        //...
    }
}
班级学生
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
}
班级部
{
公共IList学生{get;set;}
公立学校学生(学生)
{
//...
}
公共无效撤销学生(学生)
{
//...
}
}
如果要将学生添加到系中,请调用
AddStudent()
,并传递
student
类实例的引用(请注意,传递了引用)。因此,当部门实例被销毁时(例如设置为
null
),则该
department
实例的
Student
属性不再可用,但用于填充此列表的
Student
实例不会被销毁。因此,在本例中,
Student
实例仍然可以存在

更多信息


关于这一点,so中有很多问题。你试过了吗?是的,检查过了…但无法获取…所以希望在上下文中获得一些信息。可能重复的可能重复的可能重复的感谢Devendra!!你提供的链接很好…看起来我需要从网络上探索更多…顺便说一句…很好的解释。
class Student
{
    public string Id { get; set; }
    public string Name { get; set; }
}

class Department
{
    public IList<Student> Students { get; set; }

    public void AddStudent(Student student)
    {
        //...
    }

    public void RemoveStudent(Student student)
    {
        //...
    }
}