A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 武江英 中级黑马   /  2012-11-2 11:16  /  1605 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Location=new point(0,200);
Location=nwe point(Location.X,Location.Y);
一般new后面不就是重新赋值吗?Location.Y  是怎么取到200的?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
看懂你意思了。实际代码应该是这样的。Point Location;Location = new Point(0, 200); Location = new Point(Location.X, Location.Y);
你的意思是,new会把Point内Location.X, Location.Y重新赋值,Location.Y就不会再是200.
老实说,我所知道的new,最常用的作用就是实例化一个类,它会重新赋值?不敢苟同。
就假设它会使后面的重新赋值。那该是怎么个赋值方式呢?把Location.X,和Location.Y都置为0?这显然是不合理的,因为这样的话,Location最后的值就变成x=
0,y=0了,那就跟我传的Point内参数0,200一点关系都没有了,又何必写一句Point(Location.X, Location.Y);呢
new在这里的作用是用于创建对象和调用构造函数。Location = new Point(Location.X, Location.Y);中,x,y是构造函数Point的两个参数,它们传进来的值分别是0,200.在new实例化后,并不会影响参数本身的值。
如果你非要让new后,Location的x,y变为0.那就用Point的无参数构造形式吧(其实默认变为0)。
你可以通过以下代码体会以下,Point带参数和不带参数的区别。Location = new Point(0, 200);
MessageBox.Show(Location.Y.ToString());//弹出对话框200
Location = new Point();
MessageBox.Show(Location.Y.ToString());//弹出对话框0

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这句总结的好:new在这里的作用是用于创建对象和调用构造函数

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马