泛型集合,本质是集合
List<User> list02 = new List<User>();
list02.Add(u1);
字典集合
Dictionary<string, User> dic = new Dictionary<string, User>();
dic.Add("abc", new User("abc", "123"));
User searchResult = dic["abc"];
//prop +tab +tab
//会自动生成
public int MyProperty{get; set;}
继承条件:
class Student : Person
这里Student是子类,Person是父类,子类继承自父类。子类的实例对象可以调用父类的成员,但父类的实例对象不能调用子类的成员
如果父类成员的修饰词为public,则所有人都可以调用
如果为private,则只有父类可以调用
如果为protected,则父类和子类都能调用
protected int a;
父类型的引用 指向 子类的对象
只能使用父类成员
Person person01 = new Student();
如果需要访问该子类成员,需要强制类型转换
Student stu02 = (Student)person02;
Teacher和Student并非是子类父类关系,如果强制类型转换,在写代码时并不会报错,但是在运行时会报错
Teather teacher02 = person02 as Teacher;
用as来做判断,若无父子类关系则抛出异常
//实例构造函数作用:提供创建对象的方式,初始化类的实例数据成员
public Student(){}
//静态构造函数作用:初始化类的静态数据成员
//执行时机:类加载时调用一次
static Student(){}
实例构造函数的初始化在实例构造函数内,静态构造函数的初始化在静态构造函数中
private Random random;
private int[] arr;
public Student()
{
random = new Random();
arr = new int[1];
}
“非静态字段 要求 对象引用” ==》静态代码块,只能访问静态成员
利:单独空间存储,所有对象共享,可直接被类名调用
弊:静态方法中只能访问静态成员,共享数据被多个对象访问会出现并发
适用场合: