代码改变世界

《你必须知道的.net》读书笔记 001——1.1 对象的旅行

2008-07-14 20:41  金色海洋(jyk)  阅读(1814)  评论(8编辑  收藏  举报


    好久没看书了,上次看书的时候还是一年前了,一个偶然的机会,比较系统的看了一下OO的基础,封装、继承、多态等,当时真的是很不会,看了也是一知半解,迷迷糊糊的。在实际中的项目里也没敢一下子应用OO,还是用自己比较拿手的面向过程来应对项目,然后一点一点使用OO的技巧来代替一部分的代码(或者叫做功能)。

    应为是使用C#来编写程序,所以多了解一下OO的特点和技巧,对写程序是有很大的帮助的。anytao写的这本书,感觉可以解决一些我心里的一些迷惑的地方吧。

    读了不能白读,写点读后感吧,一是记录一下书里面的知识点,好像上课的时候的笔记,另一个就是写点自己的感想,怪不得上了年纪的人就喜欢唠叨。

    重头开始。

    第一部分 渊源 .NET与面向对象 

     “在.net世界里,一切都是对象。面向对象思想的掌握是深入理解.net技术的必修课,.net Framework的高楼大厦中,是什么支撑着各个复杂度的系统相互有效地协作,请面向对象这问设计师告诉大家。”好了,不多写了,有抄书的嫌疑。

    以前看一些文章,什么鸭子了,电饭锅了,都看不懂,看代码里面都是抽象类了,接口了,就是一头雾水。程序里哪里来的鸭子呀,电饭锅呀,鸭子.speak()。鸭子就叫了,那么是怎么叫得呢?
function speak()
{
    write("鸭子叫");
}

    这样鸭子就叫了,晕呀。这个,我写这个,程序就运行起来了?数据就跑到数据库里面了吗?其实这些文章都是在讲如何设计(思想),而不是在讲如何具体的编码。看了多了,才能有一点点的理解。

    再说代码,下了一个demo,打开之后,看到一个函数,右键,查看定义。转到了接口的定义,那么实现在哪里呢?找不到。也就没有兴趣再往下看了。

    学了OO,又尝试着自己写了几段代码之后才慢慢理解了一点。

    
    1.1对象的旅行
    
    对象的类型,按照对象运行时在内存中的位置分为两类:值类型和引用类型。

    值类型位于线程的堆栈引用类型位于托管堆

    大学的时候就没有弄清楚栈和堆的区分,现在也只是有个大概的印象,好像栈有一个先进先出、先进后出的,而堆就没有这些了。总之还是比较迷糊的。

    书上说,值类型和引用类型的角色会发生转变,产生了装想和拆箱。我觉得应该是

    值类型 —— 装箱 ——变成了引用类型 —— 拆箱 —— 变回了值类型。(当然具体都做了些什么还是不太清楚)

    而这样的是不存在的吧 ,引用类型 —— 拆箱 —— 变成了值类型 —— 装箱 —— 变回了引用类型。好像按照书上的例子会产生奇异。(也许是我的想法太怪了吧)

    其他的就不说了,访问修饰符嘛,我只用三个,private、protected、public,其他的基本不用。具体的解释和我的想法是相反的,可能是观看的角度不一样吧。

    我的看法:
    public ,共有的,谁都可以访问、调用,就好像员工,来一个领导就可以“调用”一下,给分点活干。
    private ,私有的,类外面是不能调用的,谁敢管领导呀。
    
    属于开玩笑了。另外发现了一个小错误,第五页,表 1-1 访问修改符。而下面是“访问修饰符”。

  


 

2