Наше задание состояло в том, чтобы взять код, который нам дал наш инструктор, и написать методы, которые этот код вызывает в отдельном java-файле. После этого мы должны поместить его в ту же папку. Вот код, он дал нам:Компилятор Java не найдет методы из другого файла Java в той же папке?
import java.util.Scanner;
public class CSCD210Lab9
{
public static void main(String [] args)
{
Scanner kb = new Scanner(System.in);
String name = null;
double height, weight;
do
{
name = Lab9Methods.readName(kb);
height = Lab9Methods.readInfo(kb, "height");
weight = Lab9Methods.readInfo("weight", kb);
Lab9Methods.displayResults(name, height, weight, Lab9Methods.calcBMI(height, weight));
}while(Lab9Methods.goAgain(kb));
}// end main
}// end class
Я скомпилировал файл, который я написал методы, и это нормально компилируется, ошибок нет вообще. Однако, когда я собираюсь скомпилировать этот код сразу после, компилятор указывает на каждый экземпляр, где написаны Lab9Methods, и он дает ошибку «ошибка: не может найти символ».
Я не понимаю, почему он не будет читать методы из другого файла, даже если оба файла находятся в одной папке. Я делаю что-то неправильно?
EDIT
Вот код для моего класса Lab9Methods.
import java.util.Scanner;
public class Lab9Methods
{
public static String readName(final Scanner kb)throws Exception
{
if(kb == null)
throw new RuntimeException("Precondition not met");
String name;
System.out.println("Please enter the person's name: ");
name = kb.nextLine();
return name;
}
public static double readInfo(final Scanner kb, final String str)
{
System.out.println("Please enter your" + str + ";");
double height = kb.nextDouble();
return height;
}
public static double readInfo(final String str ,final Scanner kb)
{
System.out.println("Please enter your" + str + ";");
double weight = readInfo(kb,str);
return weight;
}
public static int calcBMI(double height, double weight)
{
int calcBMI = (int)(weight/((height * height) * 703));
return calcBMI ;
}
public static void displayResults(final String name, final double height, final double weight, final double bmi)
{
System.out.println(name + "with a weight of" + weight + "and a height of" + height + " " + bmi);
if(bmi < 18.5)
{
System.out.println("You are underweight");
}
else if(bmi > 18.6 && bmi < 24.9)
{
System.out.println("You are normal");
}
else if(bmi > 25.1 && bmi < 29.9)
{
System.out.println("You are overweight");
}
else if(bmi > 29.9)
{
System.out.println("You are obese");
}
}
public static boolean goAgain(final Scanner kb)
{
boolean goAgain = false;
String answer;
System.out.println("Do you want to go again (Yes/No) :");
answer = kb.nextLine();
while(!answer.equals("yes") && !answer.equals("no"))
{
System.out.print("Error re-try, Do you want to go again (Yes/No) :");
answer = kb.nextLine();
}
if(answer.equals("yes"))
{
goAgain = true;
}
else if(answer.equals("no"))
{
goAgain = false;
}
return goAgain;
}
}
если возможно, можете ли вы опубликовать структуру классов Lab9Methods. – Jimmy
Да, я поправился. – kjdhefiu
Теперь вы можете добавить команду, которую вы использовали для компиляции и запуска. и ваш рабочий каталог, откуда вы выполнили команду и каталог, в котором были созданы ваши файлы классов/источник. – Jimmy