C#的几个学习要点

初学C#,对很多概念都弄不清楚,特地写此总结:

面向对象:

  • 找个对象帮你做事;
  • 把出现在每个过程中事物,对象一般是被动的那个;
  • 屏蔽所有人的差异,写出通用的代码;

对象:一定是经过实例化之后的具体事物,看得见,摸得着。

 

面向对象的基础为抽象类,类的基本组成有:字段、属性、方法。

字段(Field):用于保存类中的数据,字段命名应该以下划线开头;

属性(Properties):保护、限定字段,对字段的赋值和取值进行限定;

方法(Method):类的作用、方法,执行的操作;

属性的本质就是两个方法:对象具有的各种特征,只是一个中间变量,本身并不保存任何数据,在对外输出时,应该使用属性;

  • set():用于控制赋值
  • get():用于控制取值

类:把多个对象共同具有的属性和方法抽象出来,进行封装,类就是模子,确定了对象应该具有的属性和方法。

 

静态类与非静态类

  1. 在非静态类中,既可以有静态方法/字段/属性,也可以有非静态方法/字段/属性; 
  2. 非静态方法,需要先实例化类;
  3. 静态方法,都需要类名.方法名进行调用,而不能采用其他修饰字符;
  4. 静态类/方法/函数中,只允许出现静态字段/属性等,而不允许出现实例字段/属性等;

使用

  1. 如果你想要你的类当做一个工具类,这个时候可以考虑写成静态类;
  2. 静态类在整个资源项目中资源共享(堆,栈,静态存储区域),只有在程序结束之后,静态类才会释放资源,会非常消耗资源,尽量少用;

方法中才有小括号,创建完对象,先执行构造函数;

类的初始化:创建类,并对类的各个属性进行赋值的过程;

类中的构造函数,用来创建对象,并且可以在构造函数中对对象进行初始化(给对象的每个属性依次进行赋值)

  • 构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用
  • 构造函数可以有参数,new对象的时候传递参数即可;
  • 如果不指定构造函数,则类中有一个默认的无参构造函数;
  • 如果制定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写;
  • 构造函数可以重载,也就是多个参数不同的构造函数(一样的函数名字,但是参数的个数不一样);
  • 认识类图

 

关键字:new

  • 在内存中开辟一块空间;
  • 在开辟的空间中创建对象;
  • 调用对象的构造函数进行初始化对象(要求构造函数的修饰符必须为public);

关键字:this

  • 代表当前的类
  • 在类当中显示的调用本类的构造函数 :this

关键字:base

  • 父类的构造函数要优先于子类的构造函数;
  • 调用基类上已经被其他方法重写的方法;
  • 指定创建派生类实例时应调用的基类构造函数;
  • 基类访问只能在构造函数、实例方法或实例属性访问器中进行;
  • 静态方法中使用base关键字是错误的

 

 

析构函数

  • 析构函数(destructor)与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后”的工作(例如在建立对象时用new开辟了一片空间,应该退出前在析构函数中用delete释放)。
  • 析构函数名也应该与类名相同,只是在函数名前面加一个波浪符~,例如~stu(),以区别构造函数。它不能带任何参数,也没有返回值(包括void类型)。一个类只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。所以许多简单的类中没有用显示的析构函数。
  • 在C#中使用解构器需要记住如下几点:
  1. 一个类只能有一个解构器;
  2. 解构器不能被继承或重载;
  3. 解构器不能被调用,他们是自动被(编译器)调用的;
  4. 解构器不能带修饰或参数

 

对一个类的字段进行限制可以从set/get/构造函数进行;

 

在类的方法中输出属性时,应该加上this,因为可能会受到局部变量的影响;

 

快速引用命名空间:ALT+SHIFT+F10

 

疑问:

  1. 如果存在构造函数,在Main函数中,我仍然采用属性进行赋值,会怎么样呢?
  • 重新赋值的一个过程吧?
  1. 属性设置为只读,是否还可以使用构造函数进行赋值?

转载于:https://www.cnblogs.com/shuichangdong/p/8215748.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值