引用和对象的小问题

来源:互联网 发布:json encode 编辑:程序博客网 时间:2024/05/16 14:30

阅读下列代码,并回答问题请说明此段代码中,共声明了几个引用,共构造了几个对象应该是三个引用和四个对象

麻烦解释一下哪几个是引用,哪几个是对象!谢谢各位了

数组是一个对象,本身有一个引用
数组中存了三个引用,分别指向三个Student对象
temp也是指向Student对象的一个引用,它和数组的第一个元素指向的对象是一样的所以,四个对象,五个引用

我也认同四楼的看法,可是答案却是3个引用,2个对象……很是苦闷
循环就new了三次,怎么可能才2个对象,谁给的答案?nst
这里要搞清楚的是所谓的引用也是对象的引用。而不是变量
但是这里要搞清楚的是一个数组,三个对象。加起来就是四个对象,每个对象都有自己的一个引用(C中叫做句柄),temp = students[0],也就是将students[0](这个其实还是引用)赋给temp,所以temp还是持有的是student[0]所代表对象的引用。所以temp没有创建新的引用,仅仅是多创建了一个变量而已。如果该变量没有赋值(引用型变量只能赋引用,不能是基本类型),那么temp就为null,也就是没有引用。
再说一下。java是不能直接操纵对象的,只能通过持有该对象引用的变量才操纵。new Object()其实就是新创建对象的一个引用。
现在不管答案是什么了,我同意大家的四个对象,可是引用呢,10楼说的貌似也对…唉,自学也挺麻烦的,这些概念老混
个人认为:对象是对象,引用是引用,只不过是引用是一个指针 指向一个对象,改变了引用是改变了它指的对象。
不可能是两个对象,对象绝对是4个的
答案是五个引用,四个对象!谢谢大家,不过10楼提出的问题我还是不太明白,temp算变量?还是引用?
个人去旅游,一人买了一个一模一样的古董,由于回来上飞机时被弄碎了,他们要求航空公司索赔,经理答应他们赔偿,但不知道古董的价格,如果问他们俩,担心他们会狮子大开口,于是想了一个办法,把2人叫开,分别问古董价格(2-100),如果2人回答一致,就按这价格赔偿,如果不一致,则按照低的那方为标准赔偿,并给报价低的2元奖励,报价高的减2元,比如A报48元,B报100,则以48为标准,同时A奖励2元,得50,B减2元,得46~请问如果你是其中一人,你怎样报价感觉合?适?并说明理由、
因为2个人谁都不了解谁,而且都想得到最大的利益,也就是说都希望得到2元奖励,所以只能保本
本来,推理上,回答标准价-1是能赚的(因为会得到2元的奖励,另一个人如果贪心就会报比标准价高,如果老实就会报标准价),但是如果两个都很聪明,两人都能猜到对方可能会回答标准价-1,如果大家都这么回答,那么就没有2元奖励,所以2个人都会赔本,所以最大的保本就是如实回答
如果实价是100,两人都报99(因为你想到别人也能想到),那么两人都赔,所以我上面的分析是,应该会报实价。
当然,如果从获得最大利益的风险的角度来考虑,都回答99是最理想的(前提是实价在99以下)
首先两个人必须说相同的数字,否则有一个人绝对会陪,我们现在假如他们自己都不知道真实的价格,只知道2-100之间
我上面的b循环故意让b=a的,因为在b=2开始的情况下,a大于b的情况下a始终都会比比少拿4块,或者赔的更多
假如这两个人相互很了解,而且都属于那种好占便宜的人,肯定都报:100
问题就在这里,你是在两人都说同一个价的前提下做的推论
而实际情况不一定两个人同时说一个价,除非他们事先商量好,而这样的话就有可能造成某人取巧,比如你报100,别人报99,那么他就获得2元奖励,也就是101,比100的利益大
所以这个题目是在两人都知道对方都有可能取巧的前提下才有意义,就跟以前那些什么海盗分宝石的问题一样,大家都很聪明,大家都想保住自己的最大利益想知道这题的本质是考我们什么知识的?声明下,本人是大一的。。。。好多知识还没学。。。
只要有一个人报的原价,那么没有报原价的人就会陪两元,都有同样的担心,所以报原价绝对不会赔
来源:足球直播


原创粉丝点击