当前位置: 技术问答>java相关
请帮我分析一下这道题~~~~~~~~~
来源: 互联网 发布时间:2015-11-20
本文导语: Assume you have an object that is used to contain two values:a and b public int read(int a,int b){Synchronized(a){return a+b;}} public void set(int a,int b){Synchronized(b){return this.a=a;this.b=b;}} 为什么上面的不对? 小弟感激万分! | ...
Assume you have an object that is used to contain two values:a and b
public int read(int a,int b){Synchronized(a){return a+b;}}
public void set(int a,int b){Synchronized(b){return this.a=a;this.b=b;}}
为什么上面的不对?
小弟感激万分!
public int read(int a,int b){Synchronized(a){return a+b;}}
public void set(int a,int b){Synchronized(b){return this.a=a;this.b=b;}}
为什么上面的不对?
小弟感激万分!
|
In method body, local variable a & b override memeber variable a & b, so you can not access them. If you want to do that, use the key word: this please. For example, this.a & this.b.
|
public void set(int a,int b){Synchronized(b){return this.a=a;this.b=b;}}
why is there a retrun statement?(void.)
why is there a retrun statement?(void.)
|
1。a,和b是简单类型,不是对象(不是object的子类)
2。你的代码先return了,故此后面的this.b=b不可能运行,所有提示出错。
2。你的代码先return了,故此后面的this.b=b不可能运行,所有提示出错。
|
sychronized只能用在Object和它的派生类上,不能用在primitive类型上。
|
public void set(int a,int b){Synchronized(b){return this.a=a;this.b=b;}}
那个void就不对啊,不能return啊!
还有就是你的a和b是基本类型,不是object
那个void就不对啊,不能return啊!
还有就是你的a和b是基本类型,不是object
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。