• UNITY零基础学习 month1 day16


    C#集合 List<数据类型>

    泛型集合,本质是集合

    List<User> list02 = new List<User>();
    list02.Add(u1);
    
    • 1
    • 2

    字典集合

    Dictionary<string, User> dic = new Dictionary<string, User>();
    dic.Add("abc", new User("abc", "123"));
    User searchResult = dic["abc"];
    
    • 1
    • 2
    • 3

    集合与数组的使用区别

    1. 集合用于不定数量的添加与高效寻找时
    2. 数组为定长,寻找需要从头开始遍历

    继承

    //prop +tab +tab
    //会自动生成
    public int MyProperty{get; set;}
    
    • 1
    • 2
    • 3

    继承条件:

    1. 多个类有共有代码
    2. 多个类他们从属一个概念
    class Student : Person
    
    • 1

    这里Student是子类,Person是父类,子类继承自父类。子类的实例对象可以调用父类的成员,但父类的实例对象不能调用子类的成员

    如果父类成员的修饰词为public,则所有人都可以调用
    如果为private,则只有父类可以调用
    如果为protected,则父类和子类都能调用

    protected int a;
    
    • 1

    父类型的引用 指向 子类的对象
    只能使用父类成员

    Person person01 = new Student();
    
    • 1

    如果需要访问该子类成员,需要强制类型转换

    Student stu02 = (Student)person02;
    
    • 1

    Teacher和Student并非是子类父类关系,如果强制类型转换,在写代码时并不会报错,但是在运行时会报错

    Teather teacher02 = person02 as Teacher; 
    
    • 1

    用as来做判断,若无父子类关系则抛出异常

    static

    静态成员变量

    • 使用static关键字修饰的成员变量
    • 静态成员变量属于类,类被加载时初始化,且只有一份
    • 实例成员变量属于对象,在每个对象被创建时初始化,每个对象一份
    • 特点:存在优先于对象,被所有对象所共享,常驻内存

    静态构造函数

    • 初始化类的静态数据成员
    • 仅在类被加载时执行一次
    • 不允许使用访问修饰符
    //实例构造函数作用:提供创建对象的方式,初始化类的实例数据成员
    public Student(){}
    
    //静态构造函数作用:初始化类的静态数据成员
    //执行时机:类加载时调用一次
    static Student(){}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实例构造函数的初始化在实例构造函数内,静态构造函数的初始化在静态构造函数中

    private Random random;
    private int[] arr;
    
    public Student()
    {
    	random = new Random();
    	arr = new int[1];
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    “非静态字段 要求 对象引用” ==》静态代码块,只能访问静态成员

    静态方法

    • 通过引用调用实例方法时,会隐式的传递对象引用,以便在方法内部可以正确访问该对象成员变量
    • 通过类名调用静态方法时,因为没有具体对象,所以在static方法中不能访问实例成员

    静态类

    • 使用static关键字修饰的类
    • 不能实例化,只能包含静态成员
    • 静态类不能被继承,但是静态方法、属性都可以被继承

    适用性

    利:单独空间存储,所有对象共享,可直接被类名调用
    弊:静态方法中只能访问静态成员,共享数据被多个对象访问会出现并发

    适用场合:

    1. 所有对象需要共享的数据
    2. 在没有对象前就要访问成员
    3. 工具类适合做静态类(常用,不需要过多数据)
  • 相关阅读:
    通过手机供网、可修改WIFI_MAC的网络设备
    外包干了2个月,技术退步明显...
    java农家乐旅游管理系统springboot+vue
    SpringBoot登入页面图片验证码
    【LeetCode】136. 只出现一次的数 python
    cme.sh 生成免费证书,维护证书
    性能测试-基础理论知识
    USACO Training 1.4 Mixing Milk
    低代码助力生产管理:车间管理系统
    栅格计算器出图不完整
  • 原文地址:https://blog.csdn.net/mcyuuji/article/details/123037927