【发布时间】:2016-03-05 20:23:46
【问题描述】:
我正在使用 netbeans 并不断收到以下错误:
类接口或枚举预期的java
类RainFall是公共的,应该在一个名为RainFall.java的文件中声明
这是代码:
package rainfalldemo;
/**
*
* @author
*/
import java.util.Scanner;
import java.text.DecimalFormat;
public class RainFallDemo {
/**
* begin main method
* @param args the command line arguments
*/
public static void main(String[] args) {
// declare variables
final int MAX_MONTHS = 12;
double totalRainfall;
double averageRainfall;
int monthOfMostRain;
int monthOfLeastRain;
//create an array of rainfall
double[] rainfallInYear = new double[MAX_MONTHS];
//create array of months in a yeat
String months[] = {"January", "February", "March", "April", "May",
"June", "July", "August", "September", "October", "November",
"December"};
//call getRainfallValues method
getRainfallValues(rainfallInYear, months);
// creaet rainfall class object
RainFall rainInYear = new RainFall(rainfallInYear);
// create an object for DecimalFormat class
DecimalFormat decimals = new DecimalFormat("0.00");
//display total rainfall in the year
totalRainfall = rainInYear.getTotalRainfall();
System.out.println("The total rainfall in the year is: " +
totalRainfall);
//display average monthly rainfall
averageRainfall = rainInYear.getAverageRainfall();
System.out.println("The average monthly rainfall is: " +
decimals.format(averageRainfall));
//display the month with most rain
monthOfMostRain = rainInYear.getMonthOfMostRainfall();
System.out.println("The month with the most rain: " +
rainfallInYear[monthOfMostRain] + " in " + months[monthOfMostRain]);
//display month with least rain
monthOfLeastRain = rainInYear.getMonthOfLeastRainfall();
System.out.println("The month with the least rain: " +
rainfallInYear[monthOfLeastRain] + " in " + months[monthOfLeastRain]);
}//end of main method
//getRainfallValues method implementation
public static void getRainfallValues(double[]rainfallInEachMonth,
String[] monthNames)
{
//create an object for Scanner class
Scanner input = new Scanner(System.in);
// get rain for every month
for(int i = 0; i < rainfallInEachMonth.length; i++)
{
//prompt user for rainfall in a month
System.out.print("enter the total rainfall for the month " +
monthNames[i] + ": ");
rainfallInEachMonth[i] = input.nextDouble();
/* verify whether the rain in the month is negative */
while(rainfallInEachMonth[i] < 0)
{
System.out.print("Enter positive value for rainfall: ");
rainfallInEachMonth[i] = input.nextDouble();
} //end while
} //end for
System.out.println();
} //end of getRainfallValues method
}//end of RainfallDemo class
RainFall.java
//RainFall class
public class RainFall
{
// variable declaration
private double[] rainInYear;
public RainFall(double[] rainfallInEachMonth)
{
rainInYear = new double[rainfallInEachMonth.length];
//store rainfall
for(int i = 0; i < rainfallInEachMonth.length; i++)
rainInYear[i] = rainfallInEachMonth[i];
} // end of parameterized constructor
//get TotalRainfall method implementation
public double getTotalRainfall()
{
//local variable
double totalRainfall = 0.0;
//calculate the total rainfall in the year
for(int i= 0; i < rainInYear.length; i++)
totalRainfall += rainInYear[i];
return totalRainfall;
} // end getTotalRainfall method
//getAverageRainFall method implementation
public double getAverageRainfall()
{
//local variable
double averageRainfall = 0.0;
//calculate the average rainfall in a year
averageRainfall = getTotalRainfall() / rainInYear.length;
//return averageRainfall
return averageRainfall;
} // end of getTotalRainfall method
//getMonthOfMostRainfall method implementation
public int getMonthOfMostRainfall()
{
// local variable
double most;
int monthNumber;
//initialize variables
most = rainInYear[0];
monthNumber = 0;
//loop repeats to find the month of most rainfall
for(int i = 1; i < rainInYear.length; i++)
{
// find the most rainfall
if(rainInYear[i] > most)
{
most = rainInYear[i];
monthNumber = i;
}//end if
} //end for loop
//return month of most rainfall
return monthNumber;
} //end of getMonthOfMostRainfall method
//getMonthOfLeastRainfall method implementation
public int getMonthOfLeastRainfall()
{
//local variable
double least;
int monthNumber;
//initialize the variables
least = rainInYear[0];
monthNumber = 0;
//loop repeats to find the month of least rainfall
for(int i = 1; i < rainInYear.length; i++)
{
//find least rainfall month
if(rainInYear[i] < least)
{
least = rainInYear[i];
monthNumber = i;
}// end if
} // end for loop
// return the month of least rainfall
return monthNumber;
}// end of getMonthOfLeastRainfall method
} // end of RainFall class
【问题讨论】:
-
用
class RainFall删除public访问修饰符 -
目前尚不清楚此代码示例是否全部包含在一个文件中... OP 在中间有
RainFall.java,这意味着他引用了一个单独的文件。 OP 在他引用的错误消息中也有一个奇怪的大小写问题 (RainFAll is public...),但这可能是由于引用他的帖子时用户错误。 -
现在
RainFall似乎在它自己的文件中。但这会使错误消息变得毫无意义。 @Wil,你能澄清一下吗?RainFall在它自己的文件 RainFall.java 中吗?还是在与RainFallDemo相同的文件中? -
应该在同一个文件中。
-
马杜山,你真是个天才。非常感谢您。感谢大家的帮助,我非常感谢您的回复。我期待着在未来帮助别人,就像你帮助我一样。使用 RainFall 类删除公共修饰符有效。谢谢。
标签: java