补充
类是抽象的概念,仅仅是模板
对象是一个你能够看得到、摸得到的具体实体
类产生对象,可以叫做类的实例化
定义类的语法,
访问修饰符 class类名
{成员;}
类的实例化:
语法:
类名 实例名=new 类名();
访问类的属性:
实例名.属性名
访问类的方法:
实例名.方法名();
只要是没有加static的方法或属性,都必须先实例化,再通过实例名.方法名或实例名.属性来访问;
加static的方法或属性,可以直接通过 类名.方法名或类名.属性名来访问;
Public:可以在任何地方被访问
Intermal:只能在本项目中被访问 就是当前程序集中访问,
Private:只能在本类中被访问 被认为是私有的修饰符
Protected:只能在本类和子类中被访问;
Intermal和protected没有可比性;
Protected internal访问修饰符,相当于同时具有两者的功能;
在类这个级别,不带访问修饰符默认为intermal;
在一个类中定义变量或方法时,没有写访问修饰符,那么默认的访问修饰符为private;
定义一个变量,在这个变量中含有get/set两个方法,我们就叫做属性; 属性名大写开头,在访问时是一个小手拿着一个本子的形状
Value中就是存储着用户赋的那个值,
属性, 就是为了保护私有变量;
允许外部访问的变量,一定要声明属性;
读写属性:
具有get/set方法的属性
只读属性:
只有get方法的属性,只能读取,不能写入;
只写属性:
只有set方法的属性,只能写入,不能读取;
当我们实例化一个类时,系统会自动对这个类的属性进行初始化:
数字类型初始化成0/0.0
String类型初始化成:null
Char类型初始化成:\0
使用构造方法的好处:
1.对多个属性进行赋值时,不需要重复的写实例名;
2.可以保证用户在new一个对象的时候必须对某一个属性进行赋值;
3.在创建对象时,对只读属性进行初始化;
当我们定义好一个类之后,如果我们没有写构造方法,那么系统会自动给我们加上一个默认的没有参数的构造方法,在这个构造方法中什么也不做,我们也看不到;
我们可以定义一个构造方法:
构造方法是一个特殊的方法,它的名字和类的名字相同,并且没有返回值,连void都可以省略不写,我们一旦手写一个构造方法后,系统默认给我们添加的那个无参数的构造方法就不会再为我们添加了;
构造函数可以重载,与普通的方法相同;
析构函数用来清理垃圾资源,现在C#中用不到,例如:~student;
Throw new exception 报错提醒,
任何类型都可以转换成object类型,因为,object类型是所有类型的父类,
可变参数必须是最后一个数组,
params就是可变参数,
|
蓝色的部分是传递给可变参数params的,
命名空间用来解决类重名问题的,可以看做”类的文件夹”
命名空间不允许以数字开头,
不在同一个命名空间下的类,不能被直接访问要想访问别的命名空间下的类有俩种方式:
1.通过using引用对方的类
2.写全称 类名.方法名
命名空间可以包含其他命名空间,
System 是.net下的根命名空间
String可以看做是一个char的只读数组,
只能用这个方法改变字符串;