美文网首页
12.14学习内容

12.14学习内容

作者: a04a42f99657 | 来源:发表于2016-12-14 23:25 被阅读14次

    1.析构函数

    • 作用:来帮助我们进行废弃内存的回收机制

    • 变量的声明,方法的声明都会占用程序的内存,而内存太大的话会导致程序运行不顺畅,甚至崩溃,所以就会有了释放内存的行为,也是为了让程序运行起来更加顺畅,C#的析构函数作用就是如此。

    • 语法:

      public class Eat
      {
              ~Eat
             {
      
              }
      }
      

    感觉这个并没有什么卵用,只是有一点要注意,就是它的释放顺序。
    例如:
    classA为父类,classB继承classA,而classC又继承的classB,那么它的释放顺序为先C再B再A。

    • 一个类最先执行的函数为构造函数,在创建类的对象的时候就调用了它的构造函数,最后执行的是析构函数,当这个函数结束的时候,系统会自动判断这个函数是否结束,然后调用它的析构函数来释放内存。

    2密封类和密封方法

    • 2.1关键字: sealed

    • 表示什么意思呢,就是这个关键字加在类和方法的前面,顾名思义,密封了,加在类的前面呢,就表示这个类不能被继承了。

    • 但是加在方法前就有所不同了,sealed这个关键字只能加在重写的方法里,重写的方法也是有关键字的,父类的方法要加关键字virtual,子类的方法中要加override,这时候把sealed这个关键字加在override前面,就表示这个方法被密封了,表示这个方法不能被重写了。

    3抽象类

    • 关键字abstract
    • 个人理解
    • 老师在上课举了个例子,在游戏中会有一个怪物类,这个怪物类中有作为怪物的基本属性和攻击方法,但是游戏中会有BOSS和小怪,他们的攻击方法不一样,这时候就会用到抽象类。
    • 抽象类中写一个攻击方法,但是不去实现它,让它的子类,小怪和BOSS去继承这个抽象类,那么子类就必须去实现父类中的攻击方法,抽象类中并不是所有的成员都是抽象的,但是这个类中只要有一个抽象方法,那么这个类就必须定义成抽象类。
    • 抽象类只可以进行声明,不能进行实例化,什么意思呢?
      就和 Person P1=new student();
      这时候的Person类只是进行了声明,没有实例化。
      Person P1=new Person();
      等号后面就是进行了实例化。

    4list集合

    • 暂且理解为比数组更高级别的东西,他们叫它集合,它和数组的区别在于,数组存储的时候需要大小,就是这个数组要存储多少个元素,而list不用考虑,它还可以存储任何类型的变量,包括我们自己创建的类。
    • 写法
      public list<friends> a=new list<friends>();
      friends是一种数据类型,a是这个集合的名字。

    5产生随机数的方法

    • 写法
      Randon qq=new Ramdon();
      产生一个随机数得有一个变量来接收它,数据长就用lang,短就用int来,是情况而定。
    • 比如要产生一个10位的QQ号码。
      public string creatQq
      {
    • Random qq=new Random();//随机产生一个QQ
      int qqlist=0;//声明一个变量来接收产生的QQ
      for(int i=0;i<10;i++)//用for循环来将这个变量来累加,最终得到一个十位数的数字,作为QQ号。
      {
      qqlist+=qq.next(0,10)*math.pow(10,i)//next是系统的一个方法,产生0到9之间的一个随机数,乘以10的i次方。依次产生每一位数。
      }
      reture qqlist;
      }

    相关文章

      网友评论

          本文标题:12.14学习内容

          本文链接:https://www.haomeiwen.com/subject/jerwmttx.html