老师,Test括号里面已经是int x, int y了,那前面的int x, y是不是多此一举啊?

老师,Test括号里面已经是int x, int y了,那前面的int x, y是不是多此一举啊?

http://img1.sycdn.imooc.com//climg/5e7e2ea309849c5002200121.jpg

老师,Test括号里面已经是int x, int y了,那前面的int x, y是不是多此一举啊?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

不多不多,那是两回事,外面代表的是this.x和this.y。 括号里的是x和y。

请采纳!

  • Zedan 提问者 #1
    谢谢您的回复! 我是指前面 public class Tes{ int x,y; 这边是不是多余了。 因为Test(int x, int y)这边已经把属性说明了? 我对这个比较疑惑
    2020-03-28 01:53:48
  • 苍星乱舞 回复 提问者 Zedan #2
    这两个说的不是同一个变量。 public class Test{ int x; int y; } 以上定义了一个类。 Test t = new Test();//创建一个Test对象并赋值给t. 这时 t.x 和t.y里都是默认值0. 为了在创建对象时给里面的属性设定初始值,定义类时需要手写添加构造方法,不然会调用一个默认的无参构造方法。 public class Test{ public Test(int a,int b,Sting c){//特别定义了一个多余的c变量,并且变量名和 //属性名不一样 this.x = b; this.y = a; } } 上边类的定义中里面有一个带3个参数的构造方法,如果你要创建对象必须使用以下格式 : Test t2 = new Test(10, 90, "多余的参数"); 那么 t2.x的值是90,t2.y的值是10, 而传过去的"多余的参数"被c变量接受没做任何事情。 同学你对于方法中参数的传递理解还存在问题
    2020-03-28 02:21:11
  • 苍星乱舞 回复 提问者 Zedan #3
    补充一下,拿你这个人做例子,你在类中定义的变量是属于对象的,就像名字是你的属性。然后你看到一个不错的字符串"TheShy"你想记住它也是用名字这个概念去对应它,但并不表示你的名字就变成了"TheShy",只有你去做改名字的操作,我的.名字=名字;这样你就叫"TheShy"了。而如果你看到"TheShy"这个字符串用昵称来对应它那你改名字的时候就可以 名字 = 昵称;因为现在不会两者之间有冲突。希望这么说你能理解。
    2020-03-28 02:41:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师