猿问

变量、对象和引用之间有什么区别?

变量、对象和引用之间有什么区别?

到底有什么区别变量对象,和参考文献?

例如:它们都指向某种类型,而且它们都必须持有值(当然,除非您有临时的空类型),但是它们的功能和实现究竟有何不同呢?

例子:

Dog myDog = new Dog(); //variable myDog that holds a reference to object Dogint x = 12; //variable x that hold a value of 12

他们有相同的概念,但他们有什么不同?


小唯快跑啊
浏览 1345回答 3
3回答

子衿沉夜

在解释这些概念时,我经常使用以下类推。想象一个物体是一个气球。变量是人。每个人要么在价值类型团队或在参考类型团队。他们都按照以下规则玩游戏:规则价值类型:你把一个装满空气的气球抱在怀里。(值类型变量存储对象。)你一定总是拿着一个气球。(值类型不可空。)当其他人想要你的气球时,他们可以引爆自己相同的气球,并把它抱在怀里。(在值类型中,对象被复制。)两个人不能拿同一个气球。(值类型不共享。)如果你想拿一个不同的气球,你必须弹出你已经拿着的气球,然后再拿另一个气球。(替换时销毁值类型对象。)规则参考类型:你可以拿着一根绳子,这条绳子通向一个充满氦气的气球。(引用类型变量存储对象的引用。)允许您持有一条字符串,或者根本不持有一条绳子。(引用类型变量为空。)当其他人想要你的气球时,他们可以得到他们自己的一根绳子,并把它绑在和你一样的气球上。(在引用类型中,引用被复制。)多个人可以拿着一根绳子,这些绳子都通向同一个气球。(可以共享引用类型对象。)只要至少有一个人仍然持有一个特定的气球的绳子,气球是安全的。(只要可以访问引用类型对象,它就是活动的。)对于任何一个特定的气球,如果每个人最终都放开它,那么气球就会飞走,没有人能再够到它了。(引用类型对象可能在某个时候变得不可访问。)在比赛结束之前的某个时间点,由于大气压力,丢失的气球可能会自行爆炸。(不可访问的对象符合垃圾收集的条件,这是不确定的。)

慕少森

你可以把它想象成回答问题。物体是什么.。它就像世界上任何物质事物一样,是一种“事物”,它本身是可识别的,具有与其他“事物”不同的重要属性。就像你知道狗是一只狗,因为它叫,移动它的尾巴,追求一个球,如果你扔它。变量是一个.就像你看着自己的手。每一只手本身就是一只手。它们的皮肤里有手指、指甲和骨头,但你知道其中一个是你的左手,另一个是右手。也就是说,你可以拥有两件相同类型/种类的“东西”,但每个事物都可能因其自身的不同而不同,也可能有不同的价值。推荐信是指.。如果你看一条街上的两栋房子,虽然它们有自己的立面,但你可以通过它们独特的地址到达每一栋房子,也就是说,如果你离这里有三个街区远,或者在另一个国家,你可以知道房子的地址,因为它们仍然在你离开它们的地方,即使你不能直接指向它们。现在为了编程起见,用C+方式的例子class Person{...}Person Ana = new Person(); //An object is an instance of a class(normally)也就是说,安娜是一个人,但她有独特的属性,使她有别于另一个人。&Ana //This is a reference to Ana, that is to say, a "where" does the variable       //"Ana" is stored, wether or not you know it's value(s)Ana本身就是用来存储名为“ana”的人的属性的变量。
随时随地看视频慕课网APP
我要回答