这几天感觉学得挺踏实的,除了看视频教程,就是看非你莫属,还有就是偶尔打篮球。
C#,我的计算机语言,坚持追随着。这几天,看了几个大点:值类型和引用类型、继承、访问修饰符、里氏转换......
值类型的学习,开始学的时候,感觉挺简单的,但是一到和引用类型结合起来学习的时候,就觉得好混,尤其是和调用方法传参结合在一起时,但是值类型也是最简单的,一个小例子就OK了。int inew=1;int iold=inew;inew=2;此时iold还是1。这就是值类型的本质,只是将表面的东西,一个数值Copy了一份给你,所以inew和iold就分道扬镳了,之后一点关系都没有了。
但是引用类型就有点复杂了,将你原先要传递的地址复制一份给目标。这样就会导致地址对应的东西改变了,就会使原来的也发生改变。就如你把你家的地址给了别人,别人根据你给的地址,对你家装修,注意是这个装修是你给的地址对应的家,就会使你家发生变化。
但是值类型和引用类型当作参数时传递时都是一样的,仅仅是传值,值传参的概念。如需传地址就需要加关键字out或ref了,也就是引用传参了。
继承的学习跟之前了解的Java有点小小的区别,语法变得更加简单,类的继承用一个:,构造方法的继承用一个:base,当然有个构造方法继承本类的构造方法用:this,构造方法最重要的就是防止修改了默认的构造方法会使零参的构造方法消失,所以强烈建议在大的程序中写好需要继承或被继承的构造方法,立马写一个零参的构造方法,否则会崩溃的。搞懂父类和子类间的构造方法的调用顺序也是比较头痛的一件事,还需慢慢斟酌啊。
访问修饰符,也就是那几个public优先级高于private,还有internal和protected。以前还不知道有个proteced internal,代表在单项目中被本类和子类所访问。internal和protected优先级无法比较的。
C#,我的计算机语言,坚持追随着。这几天,看了几个大点:值类型和引用类型、继承、访问修饰符、里氏转换......
值类型的学习,开始学的时候,感觉挺简单的,但是一到和引用类型结合起来学习的时候,就觉得好混,尤其是和调用方法传参结合在一起时,但是值类型也是最简单的,一个小例子就OK了。int inew=1;int iold=inew;inew=2;此时iold还是1。这就是值类型的本质,只是将表面的东西,一个数值Copy了一份给你,所以inew和iold就分道扬镳了,之后一点关系都没有了。
但是引用类型就有点复杂了,将你原先要传递的地址复制一份给目标。这样就会导致地址对应的东西改变了,就会使原来的也发生改变。就如你把你家的地址给了别人,别人根据你给的地址,对你家装修,注意是这个装修是你给的地址对应的家,就会使你家发生变化。
但是值类型和引用类型当作参数时传递时都是一样的,仅仅是传值,值传参的概念。如需传地址就需要加关键字out或ref了,也就是引用传参了。
继承的学习跟之前了解的Java有点小小的区别,语法变得更加简单,类的继承用一个:,构造方法的继承用一个:base,当然有个构造方法继承本类的构造方法用:this,构造方法最重要的就是防止修改了默认的构造方法会使零参的构造方法消失,所以强烈建议在大的程序中写好需要继承或被继承的构造方法,立马写一个零参的构造方法,否则会崩溃的。搞懂父类和子类间的构造方法的调用顺序也是比较头痛的一件事,还需慢慢斟酌啊。
访问修饰符,也就是那几个public优先级高于private,还有internal和protected。以前还不知道有个proteced internal,代表在单项目中被本类和子类所访问。internal和protected优先级无法比较的。
里氏转换怎么跟Java的上转型对象相似,这边C#听得更加明白。不知道里氏转换有什么用?其实就是为了后面的多态做铺垫。只是多态现在还在学习呢?
备注:写于2013年1月14日