2013-03-06 78 views
1
package bankAccount; 

public class CurrentAccount { 

     int account[]; 
     int lastMove; 
     int startingBalance = 1000; 

     CurrentAccount() { 
      lastMove = 0; 
      account = new int[10]; 
     } 

     public void deposit(int value) { 
      account[lastMove] = value; 
      lastMove++; 
     } 

     public void draw(int value) { 
      account[lastMove] = value; 
      lastMove++; 
     } 

    public int settlement() { 
      int result = 0; 
      for (int i=0; i<account.length; i++) { 
        result = result + account[i] + startingBalance; 

        System.out.println("Result = " + result); 

      } 

      return result; 

    } 

    public static void main(String args[]) { 
       CurrentAccount c = new CurrentAccount(); 
        c.deposit(10); 



     } 
    } 

此刻,当我运行的类,预期的System.out.println不会出现,如果我只需要移动公共静态无效的主要(字串[] args)到顶部,这会产生多个红点。对我来说,重构我的代码的最佳方式是什么,以便以预期的方式工作?获取值,显示为Java CurrentAccount类

+0

你期望你的程序打印什么?因为在实际版本中不打印任何东西。 – niculare 2013-03-06 11:20:50

+1

当你说“System.out.println没有出现”。您是否在“结算()”方法中讨论System.out – Jayamohan 2013-03-06 11:22:39

回答

1

你可以有文件Main.java在名为Main另一个类中,你可以写你的

public static void main(String args[]) 

,并呼吁

c.settlement(); 

在你的main()进行打印。

还多了一个建议, 在构造函数你有

account = new int[10]; 

可容纳只有10 int秒。

在您的存款()和绘制()您不检查account大小。当lastMove的值大于10时,整个代码就会被炸毁。

因此,我建议你使用ArrayList

1

你从没叫过解决方法......

public static void main(String args[]) { 
    CurrentAccount c = new CurrentAccount(); 
    c.deposit(10); 
    c.settlement(); 
} 

我有你来自一些非OOP语言,如C或PHP的感觉。因此,一些解释:

  • main方法是静态的:这意味着它“存在”,即使没有创建对象实例,它可以被看作是如果它属于类的实例。
    • 相反,对于其他方法来“工作”,一个实例是必需的。
  • 这种方式,main方法可以是(并且实际上)用作
  • 它被执行,并且该应用程序的入口点的时候它存在,(如果没有其他线程仍在运行)应用程序终止。
  • 所以没有别的运行是这种方法只是通过自身的外...
    • ,所以如果你不叫c.settlement(); - 它不会发生...

其他说明:

  • 运行main不创建外围类的一个实例
  • new CurrentAccount(),你创建了一个对象实例,它有它的状态存储,并且可以被操纵
  • 要小心数组,它们必须被照顾,这往往是不方便的...
0

为什么你期望打印输出出现?您实际上没有调用结算方法,因此该命令未被执行。

0

你没有打电话给结算..所以没有出现

如果添加c.settlement ......这是很好..

0

您还没有,直到你调用的主要方法称为deposit()settlement() ,你无法获得预期的输出。