2013-12-14 4 views
1

Я использую eclipse, чтобы посмотреть на мой код, и самая распространенная ошибка, которая возникает, - это «Синтаксическая ошибка на токенах, неудачных конструкциях». «Я не уверен, что делаю неправильно, но я довольно новичок в Java.Java-код банковского счета

Мой код должен отозвать указанную (введенную пользователем) сумму с банковского счета, я начал с $ 10 000 и настроил программу так, чтобы, если сумма вывода меньше 0 или больше, чем 10 000 долларов США, она будет запускаться ошибка утверждения.

class ThreadsUnitProject2 { 
public static void main(Sting args []) 
// Field member 
private int balance; 

public void BankAccount() 
{ 
balance = 10000; 
} 

public int withdraw(int amount) 
{ 
// Subtract requested amount from balance 
balance-=amount; 

// Return requested amount 
return amount; 
} 


public int getBalance() 
{ 
return balance; 
} 


import java.util.Scanner; 

class BankAccountTester extends BankAccount 
{ 
public static void main(String[] args) 
{ 
    Scanner scan = new Scanner(System.in); 

    BankAccount myAccount = new BankAccount(); 

    System.out.println("Balance = " + myAccount.getBalance()); 

    System.out.print("Enter amount to be withdrawn: "); 
int amount = scan.nextInt(); 

    assert (amount >= 0 && amount <= myAccount.getBalance()):"You can't withdraw that amount!"; 

    myAccount.withdraw(amount); 

    System.out.println("Balance = " + myAccount.getBalance()); 
} 

Благодарим за оказанную помощь!

+1

переместите свой 'import java.util.Scanner;' в начало файла. –

+0

'public static void main (Sting args [])' Для этого нужны скобки. Среди других вещей. –

+0

Вы должны исправить свой отступ, когда вы отправляете, чтобы людям было легче читать. Кроме того, у вас, кажется, есть два 'основных' метода? – AVP

ответ

0

переименовать класс «ThreadsUnitProject2» в BankAccount и удалить метод Main() от этого и сделать класс BankAccountTester общественности и, наконец, удалить пустоты из BankAccount конструктора

0

После просмотра так много проблем в вашем коде, я решил, что я должен просто исправить это и позволит вам научиться из решения, представленного ниже.

Это должен быть первый файл класса.

public class BankAccount { 

    private int balance; 

    public BankAccount() {  //constructor 
     balance = 10000; 
    } 

    public int withdraw(int amount) { 
     balance -= amount; 
     return amount; 
    } 

    public int getBalance() { 
     return balance; 
    } 
} 

Это должен быть ваш файл второго класса. Этот будет содержать ваш метод main, который проверит ваш класс BankAccount.

import java.util.Scanner; 

public class BankAccountTester { 
    public static void main(String[] args) { 
     Scanner  scan  = new Scanner(System.in); 
     BankAccount myAccount = new BankAccount(); 

     System.out.println("Balance = " + myAccount.getBalance()); 
     System.out.print ("Enter amount to be withdrawn: "); 
     int amount = scan.nextInt(); 

     assert (amount >= 0 && amount <= myAccount.getBalance()) : "You can't withdraw that amount!"; 
     myAccount.withdraw(amount); 

     System.out.println("NewBalance = " + myAccount.getBalance()); 
    } 
} 

Просьба ознакомиться и оценить this link to proper coding conventions.

+0

Кроме того, assert не должен использоваться для логики программы, так как при развертывании они отключены по умолчанию и должны быть включены с аргументом -ea. Хорошее объяснение здесь: http://stackoverflow.com/questions/2758224/assertion-in-java – LINEMAN78

Смежные вопросы