码迷,mamicode.com
首页 > 其他好文 > 详细

几个有趣的说法

时间:2015-07-23 19:30:57      阅读:374      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!