2013-06-23 2 views
0

자바에서 클래스와 상속을 설명하는 간단한 프로그램을 작성합니다. 이 프로그램은 Operation이 Account를 확장하는 2 가지 클래스 Account와 Operation을 가진 Bank입니다. 이제 main에서 Account의 값을 선언하고 Operation 클래스에서 작업을 호출하기 시작했습니다. 이제는 Operation에서 Account의 값을 호출 할 때마다 int에 0을 반환하고 string에 null을 반환하지만 값을 더했습니다. 여기 값을 읽을 수 없습니다. java의 상속

public class Account { 

private String Name; 
private int ID; 
private double Money; 

Account() 
{ 

} 
Account (String n, int i, double m) 
{ 
    Name = n; 
    ID = i; 
    Money = m; 
} 

public void setMoney(double m) 
{ 
    Money = m; 
} 

public double getMoney() 
{  
    return Money; 
} 

public int getID() 
{ 
    return ID; 
} 

public String getName() 
{ 
    return Name; 
} 

public void Check() 
{ 
    System.out.println("Your Name is: " + Name + " Your ID is: " + String.valueOf(ID) + " Your Balance is: " + String.valueOf(Money)); 
} 

} 

가 작동 클래스입니다 : 여기

가 계정입니다 여기

import java.util.Date; 


public class Operation extends Account{ 

private Date TransactionDate; 


public void Withdraw(double amount) 
{ 
    double Money = getMoney(); 
    if (amount > Money) 
     System.out.println("The amount is insufficient"); 
    else 
    { 
     Money = Money - amount; 
     TransactionDate = new Date(); 
     setMoney(Money); 
     System.out.println("The available money is " + String.valueOf(Money) + " at " + String.valueOf(TransactionDate)); 

    } 
} 

public void Deposit(double amount) 
{ 
    double Money = getMoney(); 
    if (amount < 0) 
     System.out.println("You cant add minus"); 
    else 
    { 
     Money = Money + amount; 
     TransactionDate = new Date(); 
     setMoney(Money); 
     System.out.println("Your credits are: " + String.valueOf(Money) + " at " + String.valueOf(TransactionDate)); 
    } 
} 

public void Check() 
{ 
    String Name = getName(); 
    int ID = getID(); 
    double Money = getMoney(); 

    System.out.println("Your Name is: " + Name + " Your ID is: " + String.valueOf(ID) + " Your Balance is: " + String.valueOf(Money)); 
} 
} 

주입니다 :

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class Main { 

/** 
* @param args 
* @throws IOException 
* @throws NumberFormatException 
*/ 
public static void main(String[] args) throws NumberFormatException, 
     IOException { 
    // TODO Auto-generated method stub 

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

    System.out.println("Enter your ID"); 
    int ID = Integer.parseInt(br.readLine()); 
    System.out.println("Enter your Name"); 
    String Name = br.readLine(); 
    System.out.println("Enter your Money"); 
    double Money = Double.parseDouble(br.readLine()); 


    Account a = new Account(Name, ID, Money); 
    a.Check(); 

    Operation o = new Operation(); 


    while (true) { 
     System.out.println("\n-----------------------------------"); 
     System.out 
       .println("Enter 1 to withdraw, 2 to Deposit, 3 to Check, 4 to exit "); 
     int operation = Integer.parseInt(br.readLine()); 
     switch (operation) { 
     case 1: 
      System.out.println("enter the amount"); 
      double withdrawMoney = Double.parseDouble(br.readLine()); 
      o.Withdraw(withdrawMoney); 
      break; 
     case 2: 
      System.out.println("enter the amount"); 
      double Depositmoney = Double.parseDouble(br.readLine()); 
      o.Deposit(Depositmoney); 
      break; 
     case 3: 
      o.Check(); 
      break; 
     case 4: 
      break; 
     default: 
      System.out.println("enter between 1 and 4 only"); 
     } 

     if (operation == 4) 
      break; 
    } 

} 

} 

난 정말 왜 작동하지 못할 몰라 계정에 추가 한 값을 읽으십시오. 계정을 확장하면 작업을 수행 할 수있는 이유와 해결 방법을 설명해주십시오. 미리 감사드립니다.

+1

당신은 두 개의 서로 다른 개체 당신은 계정 개체 및 초기화하는 서로 관련이없는 생성자 및 운영과 계정 생성 한 : 그것은 작동에 생성자를 추가하는 것입니다 해결하기 위해

한 가지 방법 작업 대상에 대한 작업을 시도합니다. – Swapnil

답변

3

AccountOperation의 두 개의 개별 개체가 있습니다.

Operation 클래스의 인스턴스에는 이름, ID 및 금액이 있지만 Account, Operation의 다른 인스턴스와 이름, ID 및 돈이 다릅니다.

class Operation { 
    Operation(String n, int i, double m) { 
     super(n, i, m); 
    } 
    ... 
} 
+1

이 후 계정 = 새 계정 (이름, 아이디, 머니); a.Check(); 작업 o = 새 작업(); 사용 작업 o = 새 작업 (이름, ID, 돈); – Swapnil

관련 문제