简述对象引用和对象的区别

在做机房的时候,遇到最多的问题就是“未将对象引用添加到对象实例”。每次遇到这样的问题,我一直在想:我在类中明明实例化类了,为什么还会出现这样的问题?还有“对象引用”什么意思?带着这些问题从网上查了一些关于对象引用和对象的知识,现做一下总结:

现在有一个类ClassA,对它进行实例化的过程如下:

'方法一
Dim a = New ClassaA()
'方法二
Dim a as ClassA
a= New ClassA()

有一段时间,我认为这是实例化类的方法之一,其实不然。这只是对实例化对象的引用,而不是对类的实例化。单看这行代码“Dim a = New ClassA()”其中包含4条信息:

1)右边的“New ClassA”,是以ClassA类为模板,在堆空间里创建一个ClassA类对象(也简称为ClassA对象)。

2)末尾的()意味着,在对象创建后,立即调用ClassA类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,.Net会给你补上一个默认的构造函数。

3)左边的“ClassA a”创建了一个ClassA类引用变量。所谓ClassA类引用,就是以后可以用来指向ClassA对象的对象引用。

4)“=”操作符使对象引用指向刚创建的那个ClassA对象。

实例化类ClassA的正确表达式

Dim a as New ClassA()

对象引用和对象实例的区别:

Dim a As ClassA,定义一个可以引用ClassA类型对象的变量a。这个a变量存在于栈上。

a=New ClassA()。New ClassA()创建ClassA实例对象,这个对象存在于托管堆上。然后(同时)让a引用(指向)这个对象。

a变量在栈上,而对象在托管堆上。

a储存的是对象的地址,而不是对象本身。

总结

不将就是发现问题的原动力,通过这个小问题,也找到了很多关于.Net内部运行机制的一些知识。下篇文章会将这些知识做一个总结....

时间: 2024-12-29 01:39:13

简述对象引用和对象的区别的相关文章

Java --对象引用与对象的区别

最近做项目时,遇到了一个错误: public class UserJobFilteredServiceImpl implements UserJobFilteredService {          //方法1,业务方法,实现service层的方法     public void getAttention(int userId) {         //这个方法里面需要调用方法2,我采用如下方式调用,运行时报错         UserJobFilteredServiceImpl  userJ

JQuery之JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案

JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案 JQuery的版本 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery的版本</title> <

jQuery - 01. jQuery特点、如何使用jQuery、jQuery入口函数、jQuery和DOM对象的区别、jQuery选择器、

this指的是原生js的DOM对象 .css(""):只写一个值是取值,写俩值是赋值 window.onload   ===   $(document).ready(); $(""):获取元素   标签名..类名.#id jQuery特点 链式编程 jq.shou(3000).html(内容) 相当于 jq.shou(3000) jq.gtml(内容) 隐式迭代 隐式实用for循环.迭代 如何使用jQuery 引包 一定要在使用之前 <script src =

JQuery对象与DOM对象的区别与转换

1.jQuery对象和DOM对象的区别 DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象; eg: var domObj = document.getElementById("id"); //DOM对象var $obj = $("#id"); //jQuery对象; jQuery对象就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的.如果一个对象是jQuery对象,那么就

JS 的实例和对象的区别

对于传统的OOP思想,JS的语法确实比较难搞,其中之一就是实例和对象的区别. 什么是实例? 实例是类的具体化产品. JS语法没有类这个概念(当然ES6引用了类这个概念).只能通过构造函数来创建类,例如: var person = new Object(); //person就是实例 什么是对象? JS是面向对象的语言,一切都是对象,那么函数也是对象.实例也是对象.对象字面量也是对象 即:对象是一个具有多种属性的内容结构! 所以:实例都是对象,而对象不全是实例!

原生对象、内置对象、宿主对象的区别

1.内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集:而后者包括了一些在运行过程中动态创建的对象. 2.引擎扩展对象是一个并不太大的集合,一般来说比较确定,它们也属于引擎的原生对象(但不属于ECMA规范的原生对象). 3.宿主对象不是引擎的原生对象,而是由宿主框架通过某种机制注册到JavaScript引擎中的对象. 4.一些宿主会把自己提供的对象/构造器也称为“原生对象”,例如Internet Explorer 7就把它

C++中栈和堆上建立对象的区别

在C++中类的对象建立分为两种,一种是静态建立,如A a:另一种是动态建立,如A* p=new A(),A*p=(A*)malloc():静态建立一个类对象,是由编译器为对象在栈空间中分配内存,通过直接移动栈顶指针挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象.动态建立类对象,是使用new运算符将对象建立在堆空间中,在栈中只保留了指向该对象的指针.栈是由编译器自动分配释放 ,存放函数的参数值,局部变量的值,对象的引用地址等.其操作方式类似于数据结构中的栈,通常都是被调用时处于存储

dom对象和jQuery对象的区别

1.jQuery对象和DOM对象 在第一次学习Jquery的时候也许大家都不是很清楚Jquery对象和DOM对象两者之间的关系,下面就解释两点,便于对Jquery和Dom加深理解DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象;复制代码 代码如下: var domObj = document.getElementById("id"); //DOM对象var $obj = $("#id"); 

Json对象、 Json纯文本 和js对象的区别:

Json纯文本 和js对象的区别: Json对象:var JSONObject= { "name":"John Johnson", "street":"Oslo West 555", "age":33, "phone":"555 1234567"}; typeof(JSONObject)结果是:"object" Json纯文本: 是具有JSON数据