вызов метода изнутри для оператора в Java - PullRequest
0 голосов
/ 24 ноября 2018

Я все еще довольно начинающий программист, так что прошу прощения за мой код.Когда я пытаюсь скомпилировать следующий код, я получаю сообщение об ошибке:

The method Customer(java.lang.String, java.lang.Double) is undefined for the type Customer

Я ранее пытался объявить объект "s" в операторе for, затем он создает новую ошибку в конце программыгде я снова ссылаюсь на объект "s".Мне было интересно, как я мог обойти эту проблему?Ниже я включил мою текущую программу вместе с желаемым выводом и Customer.class API.

API

желаемый вывод

import java.util.Scanner;

public class A4
{
    public static void main( String[] args )
    {
        //delcaring variables
        Scanner input = new Scanner( System.in );
        String[] name = new String[5];
        Double[] amount = new Double[5];
        Customer s = new Customer( "", 0 );
        //begining of program
        for ( int i = 0; i <= 5; i++ )
        {
            System.out.println( "please enter the name of the customer" );
            name[i] = input.next();
            System.out.println( "please enter the amount in that account" );
            amount[i] = input.nextDouble();

            s.Customer( name[i], amount[i] );
            //Customer s = new Customer(name [i],amount[i]);
        }
        System.out.println( "Search for all customers who have more than $100" );
        for ( int t = 0; t <= 5; t++ )
        {
            if ( amount[t] >= 100 )
            {
                System.out.println( name[t] );
            }
        }

        Double avgBalance = 0.0;
        for ( int r = 1; r <= 5; r++ )
        {
            avgBalance += r;
        }
        avgBalance = avgBalance / 5;

        System.out.println( "The average balance is: " + avgBalance );

        Double max = amount[1];
        for ( int j = 0; j <= 5; j++ )
        {
            if ( amount[j] > max )
            {
                max = amount[j];
            }
        }
        System.out.println( "The customer with the highest balance is: " + max );

        System.out.println( "Show all accounts after a 5% balance increase" );

        //Customer c = new Customer(name [i],amount[i]);
        for ( int e = 0; e <= 5; e++ )
        {
            //Customer c = new Customer amount[e].applyPercentageIncrease(5);
            //amount [e]=
            //applyPercentageIncrease q = new 
            s.applyPercentageIncrease( 5 );
            System.out.println( s.getName() + " has " + s.getBalance() );
        }
    }
}

ОБНОВЛЕНИЕ: я реализовал то, что предложил Гтомика, и теперь программа работает,однако в первом операторе for программа запрашивает у пользователя 6 имен, затем устанавливает ошибку out of bounds, я понимаю ошибку out of bounds, однако условия оператора for утверждают, что она должна запрашивать только 5 имен и 5 балансов, верно?я что-то здесь упускаю?

ОБНОВЛЕНИЕ2: я исправил вышеуказанную проблему и улучшил свою программу, теперь мне нужна помощь в использовании метода applyPercentageIncrease из Customer.class API.Я знаю, что код, который я написал ниже, не работает, но я был бы признателен за помощь в применении увеличения на 5% для всех остатков на счетах, используя метод, описанный выше.спасибо

    for (int e=0;e<5;e++)
{
  //Customer c = new Customer amount[e].applyPercentageIncrease(5);
  //amount [e]=
  //applyPercentageIncrease q = new 
  customers[o]=e.applyPercentageIncrease(5);
  System.out.println (o.getName()+" has "+o.getBalance());

}

1 Ответ

0 голосов
/ 24 ноября 2018

Вы должны также объявить и массив (или, возможно, ArrayList или LinkedList) объектов Customer:

Customer[] customers = new Customer[5];

Таким образом, в цикле for вы можете сказать:

for (int i=1;i<=5;i++)
{
  System.out.println("please enter the name of the customer");
  name[i] = input.next();
  System.out.println("please enter the amount in that account");
  amount[i] = input.nextDouble();

  customers[i] = new Customer(name[i],amount[i]); //set the i. element of the Customer array
}

СейчасВы можете ссылаться на созданные объекты Customer после этого цикла!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...