int money;//帐户
Account2(int money){
 this.money=money;
 }
这个构造函数为什么要这么写? 直接声明 int money然后赋值一个整数可否?求高人指点一二

解决方案 »

  1.   

    为了方便创建对象时,方便对象属性的初始化。
    直接声明 int money然后赋值一个整数,是可以的。 
    但是编程多了之后,会发现 在创建对象时,把对象属性
    初始是很方便,和必要的。
      

  2.   

    有this就是和当前的对象绑到一起了。
      

  3.   


    class Account
    {
        int money = 0;//帐户
        public Account(int money){
            this.money=money;
        }
    }我觉得这么写很好。
      

  4.   

    當你用Account2  這個類 實例化的時候    有這個就可以傳參了~~~  彈性么~~ 呵呵~
      

  5.   

    this.money里的这个money就是你在外面申明的那个money,是类的属性变量,而等号右边的money是你参数里的那个money   这样写不会引起误会的   
    如果你直接申明一个money变量  然后直接赋值的话   也可以啊   但是构造方法存在的意义就在于创建一个对象的实例 并初始化该对象的类属性  另外  你要是直接赋值的话  也不符合一条规则 就是最好不要直接给变量赋值  而是通过方法来改变变量的值
      

  6.   

    原因是这样的:
    面向对象的一个特点就是隐藏属性的细节
    int money;//帐户 
    Account2(int money){ 
    this.money=money; 

    money就是属性,一般不建议在程序里直接访问
    而是用公共方法来对它赋值,构造方法就是公共的,所以要这样写有的例子里还会有getXxx()和setXxx(),一个用来读属性的值,一个用来对属性赋值
    也是同样的原因
      

  7.   

    先把构造函数看成方法,那么任何一个类在使用new关键字创建对象的时候都会调用这个方法,默认的方法是不带参数的,
    比如:
    ...
    Account2(){
    }
    ...
    Account2 acc = new Account2();
    那么Account2()这个方法只是单纯的创建了一个对象,方法体中没有任何内容;
    根据这个思路,调用Account2(int money)的话就比较好理解了:在创建对象的同时,构造函数把接收的这个参数做别的用。其实最简单的理解就是:初始化这个类, 类在初始化的时候可以执行一些代码也可以什么都不做。表达能力有限,也不知你能不能看懂。