收录日期:2020/11/26 23:20:06 时间:2016/07/06 09:03:11 标签:Java SE
 int money;//帐户
Account2(int money){
 this.money=money;
 }
这个构造函数为什么要这么写? 直接声明 int money然后赋值一个整数可否?求高人指点一二
this.money=money; 

左边this.money是这个类的成员变量

右边money是Account2的参数

如果直接声明 int money然后赋值一个整数

那么成员变量就没他作用了~~~~~~~

OK
不可以,因为这里的 money是类里的一个field,如果你在方法里直接 int money那就不是类的属性了.
当然可以了
不过用构造函数易于扩展和实用
int money;//帐户 
Account2(int money)  //这里的money是形参,用别的名也可以,如MM

this.money=money;   //这意思是将形参money的值赋于这个类里的变量money(this.money)

int money;//这里的money是类的一个数据成员
Account2(int money){ 此处为带参构造方法,money 为构造函数的形参,也可以用别的名字
this.money=money; 这里this.money是类的数据成员money,用this是表明自引用,而等号后面的money是传入参数的值!

学习
[Quote=引用 1 楼 lihan6415151528 的回复:]
this.money=money; 

左边this.money是这个类的成员变量 

右边money是Account2的参数 

如果直接声明 int money然后赋值一个整数 

那么成员变量就没他作用了~~~~~~~ 

就是这个道理。
Account2 aa=new Account2(100);
Account2 bb=new Account2(100000);

money就可以有不同值了。
引用楼主 freecat08 的帖子:
int money;//帐户 
Account2(int money){ 
this.money=money; 

这个构造函数为什么要这么写? 直接声明 int money然后赋值一个整数可否?求高人指点一二


一般 属性都是声明为 private 防止被 直接修改, 
所以 在 别的类调用 的时候 就需要用到get  set 方法 来获取属性的值。
这种写法,主要是方便在别处调用的时候,直接赋值
这样主要是方便直接赋值
感觉带参数的构造方法就是为了传递参数,进而方便赋值
直接声明 int money然后赋值一个整数可否?

可以。
在实例化该类的对象时,money域将会被默认为你赋的这个值,而不再是0。

over
引用 14 楼 singedcat 的回复:
直接声明 int money然后赋值一个整数可否? 

可以。 
在实例化该类的对象时,money域将会被默认为你赋的这个值,而不再是0。 

over


为避免歧义,修改一下:

在实例化该类的对象时,money域的默认值将会为你赋的这个值,而不再是0。 

郁闷 因此散分。要快 最大K乘积 Crystal Reports的6.0版本,不支持win2000吗? 怎么让TTreeView失去焦点? 哪位有做过动态创建表格的,填完一行数据,再生成一行!!! Perl语言CGI程序中文乱码问题 线程的初学者,非常急,已贴好多次了,应该算写的很清楚的!! 请高手指点写vb控件的步骤,用于网页 在用三层结构时,用Tsocketconnection 连接到服务器端,用TClientDataSet提取表的数据时,在打开的时候提示\"加载类型库/DLL时出错\",是什\0 ββββγγγγ DELPHI+MYSQL的奇怪问题不知谁能解迷,100分相送,UP者至少一分 γγγγββββ 急需《深入浅出MFC》!!!!! 我知道很多人会要笑我,还是要问一下,马上给分 ■■请问各位大侠哪里有desgin pattern java 的中文版? IE 打开一个网叶时, 显示完成, 可内容是空的, 象www.csdn.net几乎总这样,问高人这是否是IE设置的问题 求关于QQ原理方面的资料或网络寻呼机原理方面的资料! 杭州混不下去了!想去上海!~~~ 下载:先说先得分 安装.NET后,outlook出现异常 我的小喇叭怎么不见了? 一个很菜的问题 最大K乘积问题 response.write输出问题 如何给const VARIANT型赋值?(在线等待) 在先等待Tsession问题 请问哪里能够下载到Turbo c++4.5或Microsoft C/C++ 7.0的。在线等候!急呀! 用delphi5.0写的程序在delphi6.0中一定能运行吗? 在做MouseHook的dll中的问题! 如何用bcb的ftp控件上传一批文件? 请问java+tomcat+mysql+jsp+servlet 在win2000怎么设置呀! 如何得到这个值: select COUNT(*) from abc