对象的旅行

Person person = new Person("小王",27)

  在内存中分配一定的存储空间,初始化其附加成员,调用构造函数初始化。

  对象像人一样,也是有类型的,常见的有值类型和引用类型。值类型位于线程的堆栈,而引用类型位于托管堆。例如农名工可以进城打工,工人可以回乡,在面向对象中称为装箱与拆箱。

person.ChangeName("Bob")

  作为人我们都是有属性的,例如名字、年龄、籍贯。对象的字段、属性就是我们的标签,而方法就是操作标签的行为。所以对象的诞生与消亡,在某种程度上就是外界通过方法与对象交互,从而改变对象状态信息的过程。同时,人一出生,就必须通过语言交流,形成种种的关系,不同的对象发生着不同的交互,对象的交互方式被记录在“设计模式中."

  对象的生存环境是CLR,而人的生存环境是社会。CLR提供了对象赖以生存的托管环境,制定一系列的规则,称为语法,类如类型、继承、多态、垃圾回收。而社会同样制定法律,规范,道德,帮助我们制约个体,维护社会。

  人类社会就是系统架构,也是分层的。上层建筑代表政治和思想,通过社会契约和法律规范为经济基础服务。在对象世界中,这被称为接口。面向接口的编程就是以接口方式来抽象变化,从而形成体系。

  由此课件,对象的旅行就是在一定的规则与约束下,通过方法进行彼此的交互操作,从而达到改变本身状态的目的。

  插曲:

    继承:继承的目的就是为了提高软件的复用,例如儿子继承父亲的遗产,但并不是继承所有,例如父亲的隐私的那一部分。

 1 interface IPerson
 2 {
 3     string Name {get;set;}
 4     Int Age {get;set;}
 5      void DoWork(){
 6 
 7     }   
 8 }   
 9 
10 class PersonAtHome:IPersom
11 {
12 
13 }
14 class PersonAtSchool:IPersom
15 {
16 
17 }
18 class PersonAtBus:IPersom
19 {
20 
21 }

  多态:例如在学校是学生,在家里是儿子,在车上是乘客。

IPerson aperson =  new PersonAtHome();
aperson.DoWork();

IPerson bperson = new PersonOnBus();
bPerson.DoWork();

  Iperson代表了不同角色的人,在不同的情况下实现不同的操作,把决定权交给系统自行处理。

 

posted @ 2021-11-28 17:18  马雪峰1  阅读(24)  评论(0编辑  收藏  举报