2017-01-02 3 views
-4

для начала, это мой первый вопрос здесь.Как я могу использовать метод внутри поля?

Я хочу использовать двойной mebleg внутри передачи метода, и я уже составил mebleg на баланс в конструкторе, но, к сожалению, количество параметров баланса не идет с mebleg в передачи способ. Как я могу решить эту проблему?

Я новичок в программировании. поэтому, если на мой вопрос был дан ответ, не могли бы вы предложить ссылки на ответы?

class Acount { 

    static double mebleg; 

    public static void main(String[] args) { 
     Acount a = new Acount(100); 
     Acount b = new Acount(0.0); 
     Acount c = new Acount(0.0); 
     Acount.transfer(a, b, 50); 
     Acount.transfer(b, c, 25); 

    } 

    public Acount(double balance) { 
     mebleg = balance; 
    } 

    public static void transfer(Acount from, Acount to, double howMuch) { 
     System.out.println(Acount.mebleg - howMuch); 

    } 

} 
+0

Возможно, вы не хотите использовать статическую переменную ('mebleg') для баланса. Это было бы одинаково для всех учетных записей. –

+1

Так в чем же проблема? Вы получаете сообщение об ошибке? Неправильный вывод? – Mureinik

+0

@ModusTollens, пожалуйста, внимательно изучите мои коды, у меня есть ключевое слово «статический». и ** mebleg ** должен быть статичным для всех учетных записей из-за суммы денег (я имею в виду 100,0, 0,0) – nihat

ответ

3

Нельзя создавать статическое поле, если вы хотите использовать его для экземпляров. Если вы измените это, ваш метод transfer() должен использовать from.mebleg (или связанный с ним приемник).

double mebleg; 

public Account(double initialBalance) { mebleg = initialBalance; } 

public static void transfer(Acount from, Acount to, double howMuch) 
{ 
    from.mebleg -= howMuch; 
    to.mebleg += howMuch; 
} 

(Не обсуждать различные существующие проблемы, как сделки, параллелизм, обработка ошибок и использование двойной для денежных единиц здесь).

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