这是我当前的代码在SalesManager客户端应用程序中,我想提示用户输入文件名。然后nstantiate SalesAnalyzer对象并调用上面的所有方法,输出每个方法的结果。
如何调用SalesAnaylzer及其所有方法?
销售经理:
import java.io.File;
import java.text.DecimalFormat;
import java.util.Scanner;
import java.io.IOException;;
public class SalesManager
{
public static void main( String []args) throws IOException
{
System.out.println(" What is the name of the file");
Scanner scan= new Scanner(System.in);
String fileName= scan.next();
}
}
这是类文件:
import java.io.File;
import java.text.DecimalFormat;
import java.util.Scanner;
import java.io.IOException;
import java.util.*;
import javax.swing.*;
import java.awt.*;
public class SalesAnaylzer {
DecimalFormat pricePattern = new DecimalFormat("$#0.00");
int[][] sales = new int[3][4];
public SalesAnaylzer(String fileName) throws IOException {
File inputFile = new File(fileName);
Scanner scan = new Scanner(inputFile);
for (int row = 0; row < 4; row++) {
for (int col = 0; col < 6; col++) {
sales[row][col] = scan.nextInt();
}
}
}
public String toString() {
String data = "";
for (int row = 0; row < 4; row++) {
data = data + "\nStore " + (row + 1) + ": ";
for (int col = 0; col < 6; col++) {
data = data + "QTR " + (col + 1) + ": " + pricePattern.format(sales[row][col]) + " ";
}
}
return data;
}
public double totalSales() {
double total = 0.0;
for (int row = 0; row < 4; row++) {
for (int col = 0; col < 6; col++) {
total = total + sales[row][col];
}
}
return total;
}
public double highStoreSales(int store) {
double highest = 0.0;
for (int row = 0; row < 4; row++) {
if (sales[row][store] > highest)
highest = sales[row][store];
}
return highest;
}
public double averageStoreSales(int quarter) {
double total = 0.0;
double avg = 0.0;
for (int col = 0; col < 6; col++) {
total = total + sales[quarter][col];
}
avg = (total / 4);
return avg;
}
}
答案 0 :(得分:2)
确保它们位于同一个包中,以便您可以直接调用SalesAnaylzer
类的构造函数和方法。然后像创建其他任何对象一样创建一个SalesAnalyzer对象:
SalesAnaylzer sA = new SalesAnaylzer(filename);
System.out.println(sA);
etc...
答案 1 :(得分:1)
首先,让我们假设您在名为“myPackage”的包(文件夹)中保存了这两个类。你应该在每个类中添加的第一件事就是这行代码:
package myPackage;
完成此操作后,您必须在SalesAnalyzer
课程中创建SalesManager
的新实例,方法与创建新Scanner
的方式相同。
Scanner scan = new Scanner(System.in); //Here you created a new Scanner
创建新的SalesAnalyzer
:
SalesAnalyzer newSA = new SalesAnalyzer();
现在,如果你想访问任何方法,你必须写下你的SalesAnalyzer
对象的名称,之后点,然后你想要调用的方法的名称。
/*
* Here you created a new String named fileName and added it value that
* yours "next" method returned. "next" is a method inside Scanner object
* and you called for it by writing "scan.next()".
*/
String fileName = scan.next();
这是Scanner对象中的下一个方法:
public String next() {
ensureOpen();
clearCaches();
while (true) {
String token = getCompleteTokenInBuffer(null);
if (token != null) {
matchValid = true;
skipped = false;
return token;
}
if (needInput)
readInput();
else
throwFor();
}
}
现在,假设您要在totalSales
内调用SalesAnalyzer
方法。这是一个返回double类型值的方法。如果要将该值保存到SalesManager
类中的某个变量,则必须创建double类型的变量,然后调用totalSales
方法。它应该是这样的:
double totalS = newSA.totalSales();
通过这种方式,您可以从totalSales
类访问SalesAnalyzer
内的方法SalesManager
,并将其返回的值保存到名为totalS
的双变量中。希望我向你澄清任何事情并帮助你甚至一点点。如果您有任何进一步的问题,请随时提出。