摘要: 封装、继承、多态,面向对象的三大特性,前两项理解相对容易,但要理解多态,特别是深入的了解,对于初学者而言可能就会有一定困难了。我一直认为学习OO的最好方法就是结合实践,封装、继承在实际工作中的应用随处可见,但多态呢?也许未必,可能不经意间用到也不会把它跟“多态”这个词对应起来。在此抛砖引玉,大家讨论,个人能力有限,不足之处还请指正。 之前看到过类似的问题:如果面试时主考官要求你用一句话来描述多态,尽可能的精炼,你会怎么回答?当然答案有很多,每个人的理解和表达不尽相同,但我比较趋向这样描述:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态。例1:代码publicclassAni 阅读全文
posted @ 2013-07-21 23:35 liaojinpiao 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一:类的static变量1,每个由该类实例化的对象都共同拥有它;2,不能在方法体内使用静态变量;3,静态变量可以通过类名加变量名使用;(不能直接 对象名.静态变量)二:类的static方法1,不能访问类的私有成员,只能访问类的静态成员,不能在实例化中使用,只能通过类名加方法名调用;实际上,它就是增加了类的访问权限的全局函数:void A::func(int);静态成员函数可以继承和覆盖,但无法是虚函数;2,在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可以使用,而静态方法在使用前不用创 阅读全文
posted @ 2013-07-21 23:20 liaojinpiao 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 一:隐式转换(bool 和string 类型没有隐式转换)理解:不需要编写代码来实现转换的转换:如 int i=100; long j=i;数值类型的隐式转换条件:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。二:显示转换1,数值类型的显示转换:long i=100;int j=(int )i; 但要注意如果i的值超出int的取值范围就会得到一个与预想不同的值;2,数值类型与字符串类型,数值类型与字符类型,字符串与字符数组,字符串与字节数组的转换靠调用方法(如 int i=123;string str=i.tostring());三:类与类之间的转换之重载转. 阅读全文
posted @ 2013-07-21 22:48 liaojinpiao 阅读(172) 评论(0) 推荐(0) 编辑
摘要: C#的名称空间就相当于java中的包名,用来避免两套代码集中命名的冲突;名称空间使用namespace关键字定义,通常采用PascalCase命名方式命名;从其他工程或库中引入名称空间用using关键字; 阅读全文
posted @ 2013-07-21 17:42 liaojinpiao 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一:什么是C#C#是微软公司专门为使用.NET平台而创建的一种语言.二:C#与java:1, 类的定义方式很相同;2, Java的关键字import在C#被替换成using,它起到了同样的作用;3, 都是只可以单继承,但是可以实现多个接口;4, C#比java多了struct类型的数据;5, .NET框架进行自动内存垃圾回收.,java也有垃圾收集器;三:用C#可以开放什么类型的程序 :1, windows应用程序;2, web应用程序;3, web服务4, 控制台应用窗口;四:用C#创建.NET应用程序的过程:1, 编写好C#代码2, 把代码编译成CIL(中间... 阅读全文
posted @ 2013-07-21 17:21 liaojinpiao 阅读(378) 评论(0) 推荐(0) 编辑