"Undefined for type" 和 "cannot make static reference"?
"Undefined for type" and "cannot make static reference"?
我正在编写一个程序,但我无法调用我编写的一些方法。错误如下:
- CommissionReportSystem 类型中的方法 reportMenu(String) 不适用于参数 ()
- 无法从 CommissionReportSystem
类型对非静态方法 getSalesData() 进行静态引用
-方法 computeTotalSales() 未定义类型 CommissionReportSystem
-CommissionReportSystem 类型中的方法 computeSalesCommission(double) 不适用于参数 ()
-CommissionReportSystem 类型中的方法 showAgentCommission(double) 不适用于参数 ()
我已经尝试了很多修复,但似乎没有任何问题,我不确定如何继续。我在下面包含了代码的相关部分。我将不胜感激有关如何解决这些问题的任何提示。谢谢!
import java.io.*;
import java.text.*;
import java.util.*;
public class CommissionReportSystem {
private static final String String = null;
public static void main(String[] args) {
getSalesData ();
computeTotalSales ();
computeSalesCommission ();
showAgentCommission ();
shutdown ();
}
String [] getSalesData (){
String [] data = new String [2];
String ticketsSold = "";
String ticketPrice = "";
String buffer = new String ();
data[0] = buffer;
data[1] = buffer;
BufferedReader br = null;
try {
br = new BufferedReader (new InputStreamReader(System.in));
System.out.print ("Enter tickets sold:");
buffer = br.readLine ();
ticketsSold = buffer;
System.out.print ("Enter ticket price:");
buffer = br.readLine ();
ticketPrice = buffer;
} catch (Exception e) {
System.out.println ("Invalid entry");
}
data [0] = ticketsSold;
data [1] = ticketPrice;
return data;
}
public static double totalSales (String ticketsSold, String ticketPrice){
int ticketsSoldNum = Integer.parseInt(ticketsSold);
double ticketPriceNum = Double.parseDouble(ticketPrice);
double totalSalesNum = ticketsSoldNum * ticketPriceNum;
return totalSalesNum;}
public static final double computeSalesCommission (double totalSalesNum){
final double rate1 = 0.025;
final double rate2 = 0.0375;
final double rate3 = 0.0425;
final double salesLimit1 = 2000;
final double salesLimit2 = 4000;
final double agentCommission= 0;
if (totalSalesNum <= 2000) {
agentCommission = rate1 * totalSalesNum;
}
else if (totalSalesNum <= 4000){
agentCommission = rate2 * totalSalesNum;
}
else (totalSalesNum > 4000){
agentCommission = rate3 * totalSalesNum;
}
return agentCommission;
}
public static void showAgentCommission (double agentCommission){
System.out.format ("Congratulation agent Cindy Smith, your current daily commission:" + agentCommission);
}
public static void shutdown (){
System.out.format ("Thank you for your time! Have a great day!");
}
public static void handleInvalidData (){
}
}
1) getSalesData() 是一个实例方法。如果要调用实例方法,请创建 class 的对象并使用该对象调用方法。否则你必须使方法静态。记住一件事,你不能访问静态方法中的实例变量。
2) 您的 class.
中没有方法 computeTotalSales()
3) computeSalesCommission() 需要双精度类型的参数。您已经毫无争议地调用了它。
4) 最后一条评论对 showAgentCommission() 也有效。
我正在编写一个程序,但我无法调用我编写的一些方法。错误如下:
- CommissionReportSystem 类型中的方法 reportMenu(String) 不适用于参数 ()
- 无法从 CommissionReportSystem
类型对非静态方法 getSalesData() 进行静态引用-方法 computeTotalSales() 未定义类型 CommissionReportSystem
-CommissionReportSystem 类型中的方法 computeSalesCommission(double) 不适用于参数 ()
-CommissionReportSystem 类型中的方法 showAgentCommission(double) 不适用于参数 ()
我已经尝试了很多修复,但似乎没有任何问题,我不确定如何继续。我在下面包含了代码的相关部分。我将不胜感激有关如何解决这些问题的任何提示。谢谢!
import java.io.*;
import java.text.*;
import java.util.*;
public class CommissionReportSystem {
private static final String String = null;
public static void main(String[] args) {
getSalesData ();
computeTotalSales ();
computeSalesCommission ();
showAgentCommission ();
shutdown ();
}
String [] getSalesData (){
String [] data = new String [2];
String ticketsSold = "";
String ticketPrice = "";
String buffer = new String ();
data[0] = buffer;
data[1] = buffer;
BufferedReader br = null;
try {
br = new BufferedReader (new InputStreamReader(System.in));
System.out.print ("Enter tickets sold:");
buffer = br.readLine ();
ticketsSold = buffer;
System.out.print ("Enter ticket price:");
buffer = br.readLine ();
ticketPrice = buffer;
} catch (Exception e) {
System.out.println ("Invalid entry");
}
data [0] = ticketsSold;
data [1] = ticketPrice;
return data;
}
public static double totalSales (String ticketsSold, String ticketPrice){
int ticketsSoldNum = Integer.parseInt(ticketsSold);
double ticketPriceNum = Double.parseDouble(ticketPrice);
double totalSalesNum = ticketsSoldNum * ticketPriceNum;
return totalSalesNum;}
public static final double computeSalesCommission (double totalSalesNum){
final double rate1 = 0.025;
final double rate2 = 0.0375;
final double rate3 = 0.0425;
final double salesLimit1 = 2000;
final double salesLimit2 = 4000;
final double agentCommission= 0;
if (totalSalesNum <= 2000) {
agentCommission = rate1 * totalSalesNum;
}
else if (totalSalesNum <= 4000){
agentCommission = rate2 * totalSalesNum;
}
else (totalSalesNum > 4000){
agentCommission = rate3 * totalSalesNum;
}
return agentCommission;
}
public static void showAgentCommission (double agentCommission){
System.out.format ("Congratulation agent Cindy Smith, your current daily commission:" + agentCommission);
}
public static void shutdown (){
System.out.format ("Thank you for your time! Have a great day!");
}
public static void handleInvalidData (){
}
}
1) getSalesData() 是一个实例方法。如果要调用实例方法,请创建 class 的对象并使用该对象调用方法。否则你必须使方法静态。记住一件事,你不能访问静态方法中的实例变量。
2) 您的 class.
中没有方法 computeTotalSales()3) computeSalesCommission() 需要双精度类型的参数。您已经毫无争议地调用了它。
4) 最后一条评论对 showAgentCommission() 也有效。