一、简介
类是对象的集合,展示了对象的结构以及与系统的交互行为。类主要有属性(Attribute)和方法(Method)构成,属性代表对象的状态,如果属性被保存到数据库,此称之为“持久化”;方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。
二、 对象之间的关系
1.(树形)继承–>实现(父类–子类) 接口–>实现
2. (平行)由强到弱的关系:依赖–>关联–>聚合–>组合
三、实例说明
1.依赖关系(可以使用你,偶然的)
/// <summary>
/// 类之间的关系(1):依赖关系(Dependence)
/// 1. 关系特点:一个类中,“使用” 到了另一个类。这种 “使用” 是临时的、较弱的关系。
/// 2. 典型应用:一个类作为另一个类中方法的参数,或者这个方法的局部变量。
/// </summary>
public class ClassA
{
public void Method1(ClassB cb)
{
cb.Test();
}
public void Method2()
{
ClassB cb = new ClassB();
cb.Test();
}
}
public class ClassB
{
public void Test() { }
}
2.关联关系(需要使用你,长期的)
/// <summary>
/// 类之间的关系(2):关联关系(Association)
/// 举例:比如客户和订单之间就是一种关联关系。一个对象和另一个对象是有关联的。但是这种关系是客观的关系,而非组成关系。
///
/// 1. 关系特点:一个类A中,“使用” 到了另一个类B。这种 “使用” 是长期的、较强的关系。
/// 2. 典型应用:一个类作为另一个类中“成员”。可以是一对一,一对多,(集合对象)
/// 3. 组合形式:单向,双向,自关联
/// </summary>
public class ClassA
{
private ClassB classB;
}
public class ClassB
{
private List<ClassA> caList;
public void Test() { }
}
/// <summary>
/// 自关联
/// </summary>
public class ClassC
{
private ClassC classc;
}
3.聚合关系(团队的成员,大家关系比较紧密。但是并不是非你不可!)
/// <summary>
/// 类之间的关系(3):聚合关系(Aggregation) 是关联关系的一种特例。
///
/// 举例:汽车和发动机?轮胎?/ 电脑和键盘?鼠标...
///
/// 1. 关系特点:也表示一个对象和另一个对象有关联。但是对象之间是整体与部分的关系!整体和部分可以分开!
///
/// 2. 典型应用:一个对象作为另一个类的《成员》。
///
/// 3. 组合形式:通过构造方法或者普通方法为成员赋值。对象是从外面创建的,然后传递进来。
/// </summary>
/// 整体
public class Computer
{
private Keyboard keyboard;
public Computer() { }
public Computer(Keyboard keyboard)
{
this.keyboard = keyboard;
}
public void SetKeyboard(Keyboard keyboard)
{
this.keyboard = keyboard;
}
}
/// <summary>
/// 部分
/// </summary>
public class Keyboard
{
public void Click() { }
}
public class TestClass
{
private Computer myComputer = new Computer();
private Computer yourComputer = new Computer(new Keyboard());
public void Test()
{
myComputer.SetKeyboard(new Keyboard());
}
}
4、组合关系(密不可分的,关系非常紧密。谁也不能缺少。)
/// <summary>
/// 类之间的关系(4):组合关系(Compostion)
///
/// 举例:人和手、脚
///
/// 1. 关系特点:也表示一个对象和另一个对象有关联。但是对象之间是整体与部分的关系!“只不过” 整体和部分“不”可以分开!并且整体和部分共生死!
///
/// 2. 典型应用:一个对象作为另一个类的《成员》。
///
/// 3. 组合形式:通过构造方法“内”或者普通方法“内”直接创建。对象是从内部创建的,不用传递。这点是区别与聚合。
/// </summary>
public class Person
{
private Hand hand;
public Person()
{
this.hand = new Hand(); //代表,人出生就有手
}
}
/// <summary>
/// 部分
/// </summary>
public class Hand
{
public void Coding() { }
}
四、结尾
每天进步一点,早日成为大佬~
下期讲设计模式