C#基础之十四 结构和类

前言

      到现在已经接近C#视频的尾声了,大概四分之三的视频快要结束了,之后要进行的就是设计模式了,里面还是有很多的例子等着我去做,现在打好基础,为了以后的厚积薄发吧,和大家分享一下我最近的学习成果!

成果展示

  • 先上图吧:
    这里写图片描述

  • 结构:给p1赋一个值,就是栈里边的内容,当p2=p1的时候,将p1的值赋给了p2,这时候p2的值就和p1一样了,就是栈里的内容了,相当于赋值

  • 类:有栈和堆,开始p1有一个地址,是栈里的内容,(和p2的地址是不同的),当p2=p1时,就是将p1的地址给了p2,访问的都是同一个堆,就是“p1.Age=20;p1.Gender=’男’;”,后来给p2赋值了,那么这时候p1和p2的值是一样的,地址都一样,所以最后结果是100,女;100,女
  • 类:
    • 值类型的值存在栈上,引用类型 栈上存的是地址,值 在堆上
    • 类当中默认的有一个无参数的构造函数
    • 当在类中写一个有参的构造函数,默认无参数的构造函数被干掉了
    • 类中写构造函数参数列表中参数个数可以不确定
  • 类和成员修饰符:
    • 类:
      • public/internal/abstract/sealed/static
    • 成员:
      • ①public/private/protected/internal
      • ②protected internal
      • ③abstract/virtual/new/override
      • ④static
  • 结构:
    • 在结构中默认的也有一个无参数的构造函数
    • 当在结构中写一个有参数的构造函数,默认的无参数的构造函数还有,不会消失
    • 在结构中写构造函数,要把所有的字段都完全赋值
    • 类、数组是引用类型,结构是值类型
  • 结构和类的区别:
    • 相同点:默认都有一个无参数构造函数
  • 不同点:

    • 类:在类中写一个有参数的构造函数,默认无参数的构造函数消失
    • 类中写构造函数,参数列表中,参数个数可以不确定
    • 结构:在结构中写一个有参数的构造函数,默认的无参数的构造函数还有,不会消失
    • 在结构中写构造函数,要把所有的字段都完全赋值
      这里写图片描述
  • 继承:如“人”类,“老师”类, “学生”类,老师,学生都是“人”的子类,在Student,Teacher类的后面写上:Person,即为继承,继承了Person类

    • 继承中,子类继承父类的属性、方法,同时还保留着自己的属性和方法
    • 在C#中,所有的类都直接或间接的继承了Object类(当我们定义一个类的时候,如果没有写继承了哪个类,那么就继承了Object类)
  • Protected访问修饰符(有保护作用:父亲的东西只能给儿子用,别人不行)不允许其他非子类访问
    • 单根性:可以有多个子类,但是不能有多个父类
    • 传递性:父类的属性、方法可以传递给子类

总结

      这一部分主要讲解的是结构和类,还有零零星星的关于继承的知识,我的印象中,第一次接触继承关系的时候是在看UML视频的时候,以及后来画图的时候,当时只是有了一点的了解,后来经过画了机房的UML图之后,自己对它的理解所有深入,现在C#视频又有了一些关联,知识真的是互相关联的,米老师说的n+1真的是那么回事,只要有了之前的1,以及后面的n,那么在学新东西的话,就真的是如虎添翼了,学起来会相当的容易,自己真的是深有感触,话不多说了,欢迎大家多多提出宝贵的建议与意见,谢谢!!!

猜你喜欢

转载自blog.csdn.net/tigaobansongjiahuan8/article/details/81062612