2011-05-31 56 views
0

我正在学习一个项目。这是一个银行模拟,仅用于练习面向对象的方法。 这是我的代码,你可以帮我介绍一下OOD。我如何在这个项目上使用继承和接口?使用Java进行简单的面向对象设计示例

public class Main { 

    public static void main(String[] args) { 

     User[] User = new User[10]; 
     for(int i = 0; i < 10; i++) 
      User[i] = new User(i); 

     System.out.print("User Number:"); 
     Scanner s = new Scanner(System.in); 
     int UserNo = 0; 
     if(s.hasNextInt()) 
      UserNo = Integer.parseInt(s.next()); 

    public void withdraw() 

    public void payIn(){ 

    public void MoneyOrder(){ 


} 
+0

一个小的通知:在你的User类中你有一些问题。变量'moneyInAccount'和'UserNo'不是字段,而是局部变量。您应该有: 'class User {int moneyInAccount; int UserNo; public User(int i){0} {0} moneyInAccount =(int)(Math.random()* 1000); UserNo = i; } }' – 2011-05-31 12:13:56

+0

感谢您的帮助。 – CapedAvenger 2011-05-31 12:25:15

回答

0

你可以把你所有的退出()等其他方法在接口,并创建一个具体实现这些方法..

而且继承你的分类的用户为特权用户或一般用户。你可以做进一步根据账户类型电流或储蓄账户等分类

interface Bank 
{ 
    public void withdraw(); 
    public void deposit(); 
    //Other methods  

} 
class ABC_Bank implements Bank 
{ 
//Implementation of methods defined by Bank Interface , 
    User Username;     //can also include its Own methods 
} 

class User 
{ 
String name; 
//Other fields and getter setter methods 

} 
class PrivilegedUSer extends User 
{ 
    //Methods specific to privileged User. 
} 

银行模拟是一个大P项目和你必须遵循所有的OOSE概念,比如绘制用例图,类图以帮助你识别类之间的关系。 例如用户有帐户。因此两个类别之间存在关联关系。根据您的应用程序,您可以选择多重性(用户可以有多个帐户)。 这意味着每个这些类将包含对方的对象引用。

+0

但是为了创建一个接口,我需要类。我需要为我的所有方法创建类还是什么? – CapedAvenger 2011-05-31 12:15:36

+0

@CapedAvenger看到我编辑的答案。 – Algorithmist 2011-05-31 12:22:49

+0

如何将我的代码与您的设计加入?我的“Main”类会实现“Bank”接口还是需要创建新的类如“ABC_Bank”? – CapedAvenger 2011-05-31 12:30:33

0

我认为你需要开始思考对象。因此,决定你的对象是什么你有用户,但帐户呢。也许你可以看看一个帐户界面,该界面定义了一个帐户的常用类型(付款,退出),然后可以通过具体的帐户类型来实现,例如,储蓄,当前。

0

看来你有一半的OOP的想法。在这种情况下,你可能需要创建一个类,这个类是一个账户(或者一个接口和一个实现它的类)some info here。想法是将类作为对象出现在世界中(例如:一个账号是对于继承,我不知道你的家庭作业的要求,但也许还有一些其他的类继承你的账户类(info here),也许是当前和节约,如在这里的另一个答案中概述。