必须知道的.net——学习笔记1
1、对象的生成(出生)
Person aperson=new Person("小张",25)
构造过程:分配存储空间—初始化附加成员—调用构造函数
2.对象的旅程(在一定的约定与规则下,通过方法进行彼此的交互操作从而达到改变本身状态的目的)
对象类型:值类型(线程的堆栈)和引用类型(托管堆)。装箱:值类型—引用类型 拆箱:引用类型—值类型
对象属性:字段、属性。方法操作这些
对象的交互方式:设计模式
对象的生存环境:CLR
3.继承(目的:提高软件复用)
public:开放性最大,都可以访问
protected:纵向关心约定,其对象有访问父类的权限(父类和子类)
internal:同一程序集
protected internal:同一程序集,父类和子类
private:开放性最小,仅限于包含类型
4.多态(接口和抽象类)
(1)接口(以人的不同身份的不同职责为例子)
interface IPerson
{
string Name{get;set;}
int Age{get;set;}
void DoWork();
}
class PersonAtHome:IPerson {//dosomething }
class PersonAtSchool:IPerson { }
class PersonOnBus:IPerson { }
实例:
IPerson aPerson =new PersonAtHome(); aPerson.DoWork();
IPerson bPerson =new PersonOnBus(); aPerson.DoWork();
(2)抽象类
5.消亡(由GC控制)
6.内存分配
CLR管理内存区域
- 线程的堆栈(分配值类型实例):操作系统管理(不受GC),当值类型所在方法结束时,存储单元自动释放,执行效率高,存储有限。
- GC堆(引用类型):分配小对象 ,垃圾回收器会对GC堆进行压缩
- LOH堆(引用类型):分配大对象,不压缩
引用类型的实例分配在托管堆上,托管堆根据存储信息的不同划分为多个区域,其中GC堆和加载堆最重要。
引用类型创建、内存分配和初始化过程
必须知道的.net——学习笔记1的更多相关文章
- 你必须知道的.net读书笔记之第二回深入浅出关键字---对抽象编程:接口和抽象类
请记住,面向对象思想的一个最重要的原则就是:面向接口编程. 借助接口和抽象类,23个设计模式中的很多思想被巧妙的实现了,我认为其精髓简单说来就是:面向抽象编程. 抽象类应主要用于关系密切的对象,而接口 ...
- 你必须知道的.net读书笔记第四回:后来居上:class和struct
基本概念 1.1. 什么是class? class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段.属性.方法.属性.构造函数.索引器.操作符等.因为是基本的概念,所以不必在此 ...
- 《你必须知道的.NET》读书笔记二:小OO有大原则
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- 《你必须知道的.NET》读书笔记一:小OO有大智慧
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象 (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初 ...
- 《你必须知道的.NET》读书笔记三:体验OO之美
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.依赖也是哲学 (1)本质诠释:“不要调用我们,我们会调用你” (2)依赖和耦合: ①无依赖,无耦合 ...
- 从零开始学习jQuery(剧场版) 你必须知道的javascript
原文:从零开始学习jQuery(剧场版) 你必须知道的javascript 一.摘要 本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascri ...
- [你必须知道的.NET]第二十回:学习方法论
说在,开篇之前 本文,源自我回答刚毕业朋友关于.NET学习疑惑的回复邮件. 本文,其实早计划在<你必须知道的.NET>写作之初的后记部分,但是因为个中原因未能如愿,算是补上本书的遗憾之一. ...
- C语言学习书籍推荐《你必须知道的495个C语言问题》
萨米特 (Steve summit) (作者), 孙云 (译者), 朱群英 (译者) 下载地址:点我 <你必须知道的495个C语言问题>以问答的形式组织内容,讨论了学习或使用C语言的过程中 ...
随机推荐
- iptables实现反向代理
拓扑图 实现目标 公网用户通过Firewall服务器(iptables实现)访问内网http服务 配置 #iptables iptables -t nat -A PREROUTING -p tcp - ...
- Scala的sealed关键字
Scala的sealed关键字 缘起 今天在学习Akka的监控策咯过程中看到了下面一段代码: def supervisorStrategy(): SupervisorStrategy = OneFor ...
- Python编码格式的指定方式
参考自: http://python.jobbole.com/85852/, 原文探究的更深,有兴趣的可以去看看. 简介来讲就是使用一种特殊的注释来声明编码格式,如何判断这种格式也用了很简单粗暴有效的 ...
- 云计算之KVM安装(二)
云计算之KVM安装(二) 调整虚拟机 虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V 创建虚拟机步骤 1.准备虚拟机硬盘 2.需要系统iso镜像 3.需要安装一个vnc的客户端 ...
- CF724C: Ray Tracing
传送门 CF的题质量真心不低,这道题的标准解法(应该)是exgcd,打比赛的时候想到了具体的推导公式了,也意识到了需要用exgcd,但是因为寝室要锁门了(其实就是太弱,就放弃了. 首先很显然,这条线所 ...
- WinForm------点击Control弹出MessageBox
private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //弹 ...
- Spring浅探
热度最大的框架,它也称为业务层框架.Spring这个框架的诞生,给程序员揭示了两个主要的思想:Ioc,Aop: 最近的网页架构可以分为这样. 传统结构中,每个层都得new出依赖层的类进行一些本层操作, ...
- phpcms后台获取当前登录账号的数据
$amdinid=$_SESSION['userid'];$infoadmin=$this->admin->get_one(array('userid'=>$amdinid)); v ...
- easyui tree获取直接子节点而不获取孙子节点方法
$(node.target.nextElementSibling).children().each(function(index,ele){ if(checked){ $('#rcDimTreeRow ...
- 9月13日JavaScript语句循环(100以备奇偶数、100以内与7先关的数、100以内整数的和、10以内阶乘、乘法口诀、篮球弹起高度、64格子放东西)
3.循环 循环是操作某一个功能(执行某段代码). ①循环四要素: a 循环初始值 b 循环的条件 c 循环状态 d 循环体 ②for循环 a 穷举:把所有的可能性的都一一列出来. b 迭代:每次循环都 ...