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

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


    好久没看书了,上次看书的时候还是一年前了,一个偶然的机会,比较系统的看了一下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 访问修改符。而下面是“访问修饰符”。

  


 

相关文章
|
容器
.NET Core-作用域与对象释放行为详解
.NET Core-作用域与对象释放行为详解
|
开发框架 .NET API
ASP.NET Core Web中使用AutoMapper进行对象映射
ASP.NET Core Web中使用AutoMapper进行对象映射
241 1
.NET开发中合理使用对象映射库,简化和提高工作效率
.NET开发中合理使用对象映射库,简化和提高工作效率
293 0
|
JSON 数据格式
.NET Core - 配置绑定:使用强类型对象承载配置数据
.NET Core - 配置绑定:使用强类型对象承载配置数据
|
容器
.NET Core作用域与对象释放行为详解
上节,我们提到,容器中有3种不同生命周期,分别是Singleton、Scoped和Transient。那么,你知道这3种类型的对象的释放时机和坑吗?
|
SQL 存储 缓存
SQl Server——ADO.NET五大对象
在某些编程中总是会需要用到数据库,那如何让应用程序和数据库之间建立联系呢?ADO.NET就提供了应用程序连接数据库的桥梁
|
缓存 算法 Java
《深入理解Java虚拟机》读书笔记(四)--GC的回收条件及Java对象的引用
《深入理解Java虚拟机》读书笔记(四)--GC的回收条件及Java对象的引用
353 0
|
存储 缓存 算法
《深入理解Java虚拟机》读书笔记(二)--对象的创建与空间分配及定位
《深入理解Java虚拟机》读书笔记(二)--对象的创建与空间分配及定位
225 0
|
机器学习/深度学习 人工智能 计算机视觉
YOLOv7 在 ML.NET 中使用 ONNX 检测对象
本文介绍如何在 ML.NET 中使用 YOLOv7 的 ONNX 模型来检测图像中的对象。
779 0
YOLOv7 在 ML.NET 中使用 ONNX 检测对象
C#编程-64:ADO.NET对象模型复习笔记
C#编程-64:ADO.NET对象模型复习笔记
119 0
C#编程-64:ADO.NET对象模型复习笔记