牛骨文教育服务平台(让学习变的简单)
博文笔记

C# new和初始化

创建时间:2017-08-06 投稿人: 浏览次数:779

本文章仅为个人学习,如有错误,请指正。

虽然知道使用new可以创建对象,但一直不是很理解初始化和new等知识的具体。

通过8个问题和需求,了解相关知识。

了解问题和需求

1.new 的三个步骤

2.初始化是什么意思。

3.变量声明后和变量赋值为null或变量调用了new的区别。

4.字段不是变量。

1.new的三个步骤:

1.1在栈或者堆中开辟空间,空间的大小由类决定,进行内存空间指向。

1.2在开辟的控件中进行创建对象

个人理解创建对象就是,在内存空间中存放字段,但是字段依然没有进行数据存放的内存空间指向,虽然这个对象在内存中占了空间,但是没有进行具体分配。

1.3进行初始化。

2.初始化:

初始化就是调用构造函数,对所有的字段进行赋值,赋值为默认值。

引用类型为null。

值类型int为0,double为0.0。

个人理解:让字段具有默认值后,进行了空间的分配,内存中存储的就是对应的实际值,null表示我没有进行具体的使用,但是我有存储数据的空间。

3.变量声明后和变量赋值为null或变量调用了new的区别。

主要区分函数中的变量和对象中的字段的区别。

3.1变量声明后,没有进行赋值的含义:

声明未赋值,会无法生成,提示‘使用了未赋值的变量’。

通过Reflecter可以看到,声明变量未赋值,实际是不存在的,那么就是说没有进行分配内存。

3.2变量赋值为null

表明变量具有内存空间,但是内存中什么也不存在。

3.3变量调用new

变量中存在了对象也就是存在了字段,只是字段进行了赋值,赋值为默认值。

4.字段不是变量。

通过3和4感受一下变量和字段的区别。

变量存在函数中,字段是类的成员。

类中函数调用字段或者对应的属性,只会出现为null的情况。

类中函数声明变量,会出现无法编译的情况。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。