zoukankan      html  css  js  c++  java
  • C# new和初始化

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

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

    了解问题和需求

    1.new 的三个步骤

    2.初始化是什么意思。

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

    4.字段不是变量。

    一、new的三个步骤:

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

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

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

    3 进行初始化。

    二、初始化:

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

    引用类型为null。

    值类型int为0,double为0.0。

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

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

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

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

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

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

    3.2变量赋值为null

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

    3.3变量调用new

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

    四、字段不是变量。

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

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

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

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

  • 相关阅读:
    《JAVA设计模式》中的代理模式Proxy
    《JAVA设计模式》中的外观模式Facade
    《JAVA设计模式》中的组合模式Composite
    《JAVA设计模式》中的享元模式Flyweight
    《JAVA设计模式》中的策略模式Strategy
    《JAVA设计模式》中的模板模式Template
    《JAVA设计模式》中的观察者模式Observer
    《JAVA设计模式》中的迭代器模式Iterator
    《JAVA设计模式》中的责任链模式Chain of Responsibility
    面对对象编程
  • 原文地址:https://www.cnblogs.com/rosesmall/p/9254416.html
Copyright © 2011-2022 走看看