• C# lesson4


    一、数组

    1、声明一个数组:

    以下为定义一个整数类型的数组:

    //方法一
    int[] a={1,2,4}
    //方法二
    int[] a=new int[3];
    a[0]=1;
    a[1]=2;
    //方法三
    int[] a=new int[3]{1,2,4}
    

     二维数组:

    int[] a={{1,2},{2,4},{3,4}}
    

     2、数组操作

    a、定位数组:

    Console.WriteLine('数组元素为:'+a[i]);

    b、添加删除:

    ArrayList();

    int[] a={1,2,5,22};
    ArrayList list=new ArrayList();      //如int类型泛型: List<int> list=new List<int>();
    foreach(var i in a){
    list.Add(a);           //将a添加到List中   应该传object  传值类型产生装箱(用泛型)
    }

    泛型解决拆装箱问题:
    如果有多重类型数据:
    object[] oNum={12;"fg",1.5}
    List<object> list=new List<object>();

    c、指定位置添加删除

    //List.RemoveAt(0);//删除第一个元素  删除索引所在元素
    //List.Add(0);//在List的末尾添加0
    //List.Insert(1, 5);//在索引值为1处插入5   在索引处插入
    //List.Clear();//清除现有所有元素

    d、哈希表:(按键值对的形式存储)        //

    Hashtable table =new Hashtable();

    table.key1="aaa";

    table.key2="bbb";

    ...

    foreach(var key in table){

    //遍历操作

    }

    哈希表的泛型:

     二、面对对象的三大特征:

    面对对象语言的三大特征:封装、继承、多态;

    1、封装

     a、访问修饰符:

    public  当前命名空间下所有类    夸程序集也可以用(引用命名空间);

    private  只能在当前类里面使用

    protected    只能在当前类里面使用   但是能被继承/使用(能夸程序集)

    internal       同一个命名空间下的所有类都可以用

    protected internal    同一个命名空间下的所有类可用    夸程序集的子类可用 

     注:一个类不声明的话默认是internal    字段和方法默认是private;

      如果类里面不去人为的写构造方法的话,那么实例化对象的时候,会调用默认的那个无参数构造方法;

      如果类里面有人为的构造方法,则实例化对象的时候就会调用那个人为的构造方法;

      如果人为的写一个有参数的构造方法,在实例化的时候调用无参数构造方法就会报错(可以加一个无参数构造方法解决);

     2、继承

    a、当一个类继承与另外一个类的时候,他可以继承到此类里面的所有方法(不能够继承构造方法

      若父类的成员是一个私有对象,子类也是继承了,但无访问权限;

    b、当实例化一个子类对象的时候,首先是调用父类的对象方法,再调用子类的;

        (子类与父类相同的方法时,隐藏用new,覆写用override)

    c、A:B:C ==》   A:C   继承的传递性;

    d、A:B,当A和B里有相同的方法时,调用的是子类的方法,(父类默认隐藏),当父类的方法设置为虚方法的时候,子类里面可以通过override对该方法进行覆写(调用时是调用子类);

    e、Object类型是任何一种数据类型的父类,可以接收任何一种数据类型的值;

    f、父类的变量可以接收子类的对象,反之不行;当父类和子类有相同的方法的时候,当父类的父类的方法被隐藏的时候,调用的是父类的方法;当方法被子类覆写的时候,调用的是子类的方法;

    g、sealed   密封类  不能被继承(如果一个类不想被继承就   设置成密封类)

    h、类是单继承;(一个类只能继承于一个)

    3、多态

        多态的意思是:方法名相同,方法不同;分为覆写和重载;(重载就是方法名相同,但是传的参数不同(个数、类型等),使一个方法有多种实现---重载方式)

      静态方法不能被覆写;

     三、其他:抽象类和接口

    抽象类:加有abstract关键字的类

        抽象类是必须有抽象方法(方法前加abstract)可以有非抽象成员;抽象方法必须在抽象类里面;

        抽象类不能被实例化;

        一旦一个类继承一个抽象类,那么这个类必须要实现这个抽象类里面的所有方法;

        抽象类里面的所有成员可以设置任意一种访问修饰符;

    接口:interface   interface1   定义一个接口;

        接口就是一种更加严格意义上的抽象类;(相当于在类和方法前面加了public abstract)

        接口里面不能够有非抽象成员;

        一个类继承于接口时,必须实现接口里面的所有方法;(与抽象类的继承不同,它不需要写override)

        接口是多继承

        接口里面的所有内容都是public;

     知识点总结:

     

  • 相关阅读:
    [转]Lua中的元表与元方法
    [转]Lua语言基础汇总(7) -- 协同程序
    [转]Lua语言基础汇总(6)-- 迭代器与泛型for
    [转]Lua语言基础汇总(5) -- 闭包
    [转]Lua语言基础汇总(4) -- 函数
    [转]Lua语言基础汇总(3) -- 语句
    [转]Lua语言基础汇总(2) -- 表达式
    [转]Lua语言基础汇总(1) -- 类型与值
    [Cocos2d-x + lua]Label特点总结
    Xenu检测网站死链
  • 原文地址:https://www.cnblogs.com/zhuyucun/p/6282977.html
Copyright © 2020-2023  润新知