1. 构造器是类型的成员之一,其他成员比如,成员字段,成员函数。狭义上,构造器指的是实例构造器(instance constructor)
class Student
{
public int ID;
public string Name;
public Student()//不带参的构造器,制造出来就又默认值了
{
this.ID = ;
this.Name = "No name";
}
public Student(int initId,string initName)//带参构造器,需要在创建实例的时候手动写入 {
this.ID = initId;
this.Name = initName;
}
}
 static void Main(string[] args)
{
Student stu = new Student(2,"Mr okay");
Student stu2 = new Student();
}

  


 

*加构造器的快捷件 ctor+两次tab

2.构造器在内存里是怎样操作的

在stack中是从内存地址由高到低分配的,所以叫栈溢出(stackoverflow)

1,对于不带参的构造函数

先在stack中开辟一个空间用来存放引用变量,然后去heap里面根据成员变量类型,依次开辟空间,数据存为0,然后将其地址复制放在刚刚stack的位置

2.对于带参的构造函数

先在stack中开辟一个空间用来存放引用变量,然后去heap里面根据成员变量类型,依次开辟空间,存放初始化的数据,如果是值类型,就放数据,如果是引用类型,再去另一块heap中开辟地址,把真正的数据放在新开辟的位置,把位数据的地址放在第一次开辟heap的里面,stack里面存放数据开始时候的地址,有点堆中堆的感觉;

最新文章

  1. 前端工具HBuilder安装Sass插件
  2. MD5编码的内存泄露
  3. Html一天入门
  4. WebStorm设置手机测试服务器-局域网内其他设备访问
  5. iOS开发笔记8:Remote Notification远程消息推送处理
  6. android ANR
  7. Leetcode 242 Valid Anagram pytyhon
  8. javascript第一课javascript:void(0);
  9. android 项目更改包名的方法
  10. 源码实现 --> strcpy
  11. (NO.00004)iOS实现打砖块游戏(十四):3球道具的实现
  12. Python安装和配置
  13. centos7安装遇到的坑
  14. 【持续集成】GIT+jenkins+sonar——GIT
  15. D. Who killed Cock Robin 湖北省大学程序设计竞赛
  16. WPF编程学习——窗口
  17. cocos代码研究(20)Widget子类LoadingBar学习笔记
  18. 《Spark MLlib 机器学习实战》1——读后总结
  19. 初试mininet(可选PyCharm)
  20. Jquery弹窗

热门文章

  1. Linux shell - `dirname $0` 定位到运行脚本的相对位置
  2. 使用 VS2015 编译并调试 ffmpeg
  3. 发送http请求和https请求的工具类
  4. 二、WebSphere Application Server上部署war包并访问
  5. 查询出与jack互为好友的人名字
  6. Linux基础(二)之命令
  7. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型
  8. java源码-Semaphore源码分析
  9. form modelform formset modelformset的各种用法
  10. Python之文件操作工具