标签:
1、方法。
c# 类的成员变量有很多。字段、属性、方法、枚举、委托、事件等等。就是可以写在类里面的东西。
看了Mr.Okey的视频,里面说只有方法是干实事的,方法可以理解为数据的加工厂。这个说法我很认同。
加工厂,就是把原材料进行一系列的加工处理,输出成品。
而方法如果作为数据的加工厂,顾名思义,他加工的对象就是数据了。所以方法会有参数括号,可以接收传递过来的数据参数,即“原材料”;会有返回值,可以把数据进行逻辑处理之后返回结果,即“成品”。
方法有构造方法和成员方法。
成员方法可以理解为是为大家来处理数据的。而构造方法就是为类本身来工作的。所以不需要有返回值。构造方法为类本身设置一些状态。
2、修饰符。
我理解的修饰符是表达 被修饰者 的“范围”。
字段需要修饰符来修饰,方法、属性、大到类,都需要修饰符的修饰。
字段、属性、方法一旦存在,就不可避免的被调用。为其赋值、读取它的值,使用它的方法,都得先调用。
而这个调用一旦超出它本身所被修饰的范围,调用就会失败。
例如: 用private修饰的,表达的范围就是自己,调用者一旦超出“自己”这个范围去调用private修饰的内容,调用失败。
用public修饰的,表达的范围就是大家
这里有意思的一个说法是,protected
因为面向对象的一个特点是继承。子类可以继承父类
c#从入门到精通第五版 里面解释protected是这样解释的。
父类里面如果定义为public的,那么子类和非子类都可以访问。
父类里面如果定义为private,那么子类和非子类都不能访问。有没有一种修饰,能够让子类区别于非子类呢?
所以就有了protected,一旦在父类里面用了这个修饰,那么这个内容只有子类可以访问,而非子类不能访问。它是受保护的。
protected这个概念我在本科的时候,理解的并不到位,看了第五版之后,立马有一种醍醐灌顶的感觉。
internal 这个修饰符,类似于private 都是换汤不换药的。表示“自己”访问。不过这个自己的范围不同而已
sealed 用来表达一个类不能被继承。Java里面用final来表示类不能被继承。
virtual 表示方法可以被重写,写在父类中
override 表示重写了一个方法,写在子类中
extern 作为形容词有外面的意思,就是告诉你,在这里出现了extern,你可以去外面找它的实现 PS:abstract
3、new
new是一个操作符。
作为操作符,它的功能是创建类型的实例,调用类型的构造函数。并且可以得到新建实例的内存地址,并把地址赋值给引用它的变量。
如果只写new XX();而没有把地址赋值给引用变量的话,一定时间,垃圾收集器会删除这个创建。
new 还可以调用实例的初始化器。
new还是关键字。作为修饰符,可以实现子类对父类方法的隐藏,这种用法不常见。
标签:
原文地址:http://www.cnblogs.com/llq1214/p/4671020.html