关于构造函数的问题 int money;//帐户 Account2(int money){ this.money=money; }这个构造函数为什么要这么写? 直接声明 int money然后赋值一个整数可否?求高人指点一二 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为了方便创建对象时,方便对象属性的初始化。直接声明 int money然后赋值一个整数,是可以的。 但是编程多了之后,会发现 在创建对象时,把对象属性初始是很方便,和必要的。 有this就是和当前的对象绑到一起了。 class Account{ int money = 0;//帐户 public Account(int money){ this.money=money; }}我觉得这么写很好。 當你用Account2 這個類 實例化的時候 有這個就可以傳參了~~~ 彈性么~~ 呵呵~ this.money里的这个money就是你在外面申明的那个money,是类的属性变量,而等号右边的money是你参数里的那个money 这样写不会引起误会的 如果你直接申明一个money变量 然后直接赋值的话 也可以啊 但是构造方法存在的意义就在于创建一个对象的实例 并初始化该对象的类属性 另外 你要是直接赋值的话 也不符合一条规则 就是最好不要直接给变量赋值 而是通过方法来改变变量的值 原因是这样的:面向对象的一个特点就是隐藏属性的细节int money;//帐户 Account2(int money){ this.money=money; } money就是属性,一般不建议在程序里直接访问而是用公共方法来对它赋值,构造方法就是公共的,所以要这样写有的例子里还会有getXxx()和setXxx(),一个用来读属性的值,一个用来对属性赋值也是同样的原因 先把构造函数看成方法,那么任何一个类在使用new关键字创建对象的时候都会调用这个方法,默认的方法是不带参数的,比如:...Account2(){}...Account2 acc = new Account2();那么Account2()这个方法只是单纯的创建了一个对象,方法体中没有任何内容;根据这个思路,调用Account2(int money)的话就比较好理解了:在创建对象的同时,构造函数把接收的这个参数做别的用。其实最简单的理解就是:初始化这个类, 类在初始化的时候可以执行一些代码也可以什么都不做。表达能力有限,也不知你能不能看懂。 如下JAVA代码为什么画不了圆? swing中弹出菜单项执行的问题 对象数组问题 难题...JAVA接收键盘事件... 请问如何在ireport设置横向版面啊? 关于文本变换颜色的问题 日期转换 如何以数据库中的数据为X轴和Y轴的坐标值,在一个二维平面上作图,图形能根据数据库中的数据动态重绘? Properties怎么保存重复键的数据? 如何判断字符串是否是数字? JXL 页眉页脚设置问题 jTextField 默认输入法是英文,有什么方法可以设定他的输入法是日语马?
直接声明 int money然后赋值一个整数,是可以的。
但是编程多了之后,会发现 在创建对象时,把对象属性
初始是很方便,和必要的。
class Account
{
int money = 0;//帐户
public Account(int money){
this.money=money;
}
}我觉得这么写很好。
如果你直接申明一个money变量 然后直接赋值的话 也可以啊 但是构造方法存在的意义就在于创建一个对象的实例 并初始化该对象的类属性 另外 你要是直接赋值的话 也不符合一条规则 就是最好不要直接给变量赋值 而是通过方法来改变变量的值
面向对象的一个特点就是隐藏属性的细节
int money;//帐户
Account2(int money){
this.money=money;
}
money就是属性,一般不建议在程序里直接访问
而是用公共方法来对它赋值,构造方法就是公共的,所以要这样写有的例子里还会有getXxx()和setXxx(),一个用来读属性的值,一个用来对属性赋值
也是同样的原因
比如:
...
Account2(){
}
...
Account2 acc = new Account2();
那么Account2()这个方法只是单纯的创建了一个对象,方法体中没有任何内容;
根据这个思路,调用Account2(int money)的话就比较好理解了:在创建对象的同时,构造函数把接收的这个参数做别的用。其实最简单的理解就是:初始化这个类, 类在初始化的时候可以执行一些代码也可以什么都不做。表达能力有限,也不知你能不能看懂。