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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王渠 中级黑马   /  2012-5-4 12:48  /  2465 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王渠 于 2012-5-4 12:54 编辑
  1. public class Account {
  2.         private int id;
  3.         private String name;
  4.         private int balance;
  5.         public void Account(){}
  6.         public void Account (String name,int id,int balance)
  7.         {
  8.                 this.id =  id;
  9.                 this.name = name;
  10.                 this.balance = balance;
  11.         }
  12.          void withdraw(int money)
  13.         {
  14.                 balance += money;
  15.         }
  16.          void deppsit(int money)
  17.         {
  18.                 balance -=money;
  19.         }
  20.         public void Balance()
  21.         {
  22.                 System.out.println("当前余额为"+balance);
  23.         }
  24. }
复制代码
  1. public class Test {
  2.         
  3.         public static void main (String args[]) {
  4.                 //Account p = new Account ();
  5.                 Account p = new Account ("刘玉",1105,20000);
  6.                 p.deppsit(2500);
  7.                 p.withdraw(30000);
  8.                 p.Balance();
  9.         }
  10. }
复制代码
有空的构造函数,但是就是会提示好不到符号,构造函数,Account

5 个回复

正序浏览
楼主对构造的特点不是很清楚:
构造函数的特点:1,构造函数和类同名,没有返回值
                2,随着对象的创建而存储在堆内存中
                3,一个类中可以有多个接收不同参数的构造函数,以重载的形式存在,对象在一创建就会掉用与之对应的构造函数进行初始化。



楼主将一下这两个函数中的void去掉就可以了  
public void Account(){}
public void Account (String name,int id,int balance)



回复 使用道具 举报
1   构造方法(Constructor ):构造方法用于完成对象属性的初始化工作,构造方法的特点:
    a  构造方法的名字必须与类名完全一致(包含大小写)
    b  构造方法没有返回值,连void 也不能出现。
    c  如果在定义一个类的时候,没有为类声明构造方法,那么 Java  编译器会自动为类添加一个没有参数且方法体为空的构造方法(默认的构造方法)
    d  如果在定义一个类的时候,为类声明了构造方法,那么 Java 编译器就不会再为类添加构造方法了。
    e  不能显式调用类的构造方法,构造方法通常是通过new 关键字隐式调用。
修改代码如下:

public class Account {

       private int id;

       private String name;

       private int balance;

      public  Account(){};

       public  Account (String name,int id,int balance)
         {

              this.id =  id;

              this.name = name;

              this.balance = balance;

       }
          void withdraw(int money)
         {
                balance += money;
        }
         void deppsit(int money)
       {
                balance -=money;
        }

       public void Balance()
         {
                System.out.println("当前余额为"+balance);
         }
}
public class Test {
           public static void main (String args[]) {
                Account p = new Account ();
               Account p = new Account ("刘玉",1105,20000);
                p.deppsit(2500);
               p.withdraw(30000);
               p.Balance();
         }
}

回复 使用道具 举报
lz在定义构造方法的时候加了返回类型,这样相当于定义了与类同名的成员方法,而不是定义的构造方法,构造方法的定义是不能加返回值类型的。去掉构造方法中的void就可以了。
回复 使用道具 举报
符云爵 发表于 2012-5-4 12:56
构造函数也需要返回值?
public void Account(){}
public void Account (String name,int id,int balance)

恩,的确是不需要呢{:3_54:}果断是习惯看见函数就看是否有返回值了,没有就void....

评分

参与人数 1技术分 +1 收起 理由
冯佳老师 + 1

查看全部评分

回复 使用道具 举报
构造函数也需要返回值?
public void Account(){}
public void Account (String name,int id,int balance)
{
                this.id =  id;
                this.name = name;
                this.balance = balance;
}

两函数都去掉void

评分

参与人数 1技术分 +1 收起 理由
冯佳老师 + 1

查看全部评分

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