Основная функция не работает из-за одного метода, имеющего параметры ? Метод Height(int, int ) неприменим для аргументов ()

#java

Вопрос:

 // Patrik Maco
// 18/10/21
// VERSION 1 
// Write a program that allows the user to input the length, width and height of a room (cm) - volme of balloon (m^3) prints the volume of the room in m^3 and the amount of balloons needed to fill the room.

import java.util.Scanner; 

class volume 
{      
    public static void main (String [] a)
    {     
        Run();
        System.exit(0);
    }

    public static int Length()
    {              
        Scanner scanner  = new Scanner(System.in);
        System.out.println("Enter Values as whole numbers- not as decimals. Do not include measurement. Good example : 5,7,9 Bad example: 3.2, 5cm");
        System.out.println("Length of room (in cm) ? ");
        length = scanner.nextInt(); 
        return length;
    } 

    public static int Width()
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter Values as whole numbers- not as decimals. Do not include measurement. Good example : 5,7,9 Bad example: 3.2, 5cm");
        System.out.println("Width of room (in cm) ? ");
        int width = scanner.nextInt();
        return width;
    } 

    public static int Height(length, width)
    { 
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter Values as whole numbers- not as decimals. Do not include measurement. Good example : 5,7,9 Bad example: 3.2, 5cm");
        System.out.println("Height of room (in cm) ? ");
        int height = scanner.nextInt();
        return height;
        System.out.println("Enter the volume of the baloon in M cubed");
        float volume_b;
        volume_b = scanner.nextFloat();
        float RoomVolume;
        RoomVolume = ( height * length * width);
        System.out.println("The volume of the room is : "   RoomVolume);
        float balloon3;
        balloon3 = RoomVolume/1000000;
        float BalloonAmount;
        BalloonAmount = balloon3/volume_b;
        int n;
        n = (int)BalloonAmount;
        System.out.println("The number of balloons needed is : "   n);
    }
  
    public static void Run()
    {
        int length = Length();
        int width =  Width();
        int height = Height();
    }
}
 

Метод Run() возвращает ошибку

Метод Height(int, int ) неприменим для аргументов ().

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

Высота включает в себя два параметра в своем собственном методе, однако, если я введу те же параметры в Run (), моя программа не запустится

Комментарии:

1. Вы передаете параметры length и width Height методу без указания их типов. Сначала вы должны сформулировать метод примерно так public static int Height(int length, int width) , а затем назвать его, например, высотой(8, 6). Или, если вам не нужны параметры, удалите их.

Ответ №1:

С вашим методом существует множество проблем Height .

  1. В Java все параметры должны указывать свои типы, поэтому они должны быть объявлены как
     public static int Height(int length, int width)
 
  1. весь код после оператора безусловного возврата недоступен
        return height;
       // any code after this point is unreachable
 
  1. если метод принимает параметры, их необходимо указать явно:
     public static void Run()
    {
        int length = Length();
        int width =  Width();
        int height = Height(length, width); // you need to pass length and width!
    }
 

Другие замечания:

  • Нет необходимости явно вызывать System.exit(0) в конце main , программа автоматически завершается в этот момент.
  • В Java очень распространено соглашение об именовании, согласно которому поля и классы рассматриваются как существительные, а методы-как глаголы, и они называются соответственно. Кроме того, имена классов обычно начинаются с прописной буквы SomeClassName , в то время как имена методов обычно начинаются со строчной буквы doSomething() по соглашению.