基本上,只要 continue 变量等于“Y”,我就会尝试创建一个新类。我遇到的问题是
DigitalMain.java:18: not a statement
DigitalPhoto[] class = new DigitalPhoto[9];
编译时。我看过 ArrayLists 但我不太确定它们是否会以与我试图实现的相同的方式实例化类。在理想情况下,我将拥有名称为“class”+i 的对象,并通过其内置的 set 方法为每个对象提供不同的值。
// Import classes for class
import java.util.Arrays;
import java.util.List;
import javax.swing.*;
import java.awt.event.*;
import java.text.DecimalFormat;
public class DigitalMain
{
public static void main(String args[])
{
String cont = "Y";
String heightString,widthString,width,bitpsString;
double bitps,x,y,totesPrice,totesSize,totesSpeed;
DecimalFormat wholeDigits = new DecimalFormat("0");
DecimalFormat dec = new DecimalFormat("0.00");
DigitalPhoto[] picc = new DigitalPhoto[20];
for(int i=0; cont.equals("Y") ; i++)
{
picc[i] = new DigitalPhoto();
heightString = JOptionPane.showInputDialog("Please enter height");
picc[i].setHeight = Double.parseDouble(heightString);
heightString = JOptionPane.showInputDialog("Please enter width");
picc[i].setWidth = Double.parseDouble(widthString);
continueQuestion = JOptionPane.showInputDialog("Height: " + picc[i].getHeight + "\n Width: " + picc[i].getWidth + "\n Resolution: " + picc[i].getResolution + "\n Compression Ratio: " + picc[i].getCompression + "\n Required Storage: " + picc[i].calcStorage() + "\n Price of Scanned Photo: " + picc[i].getCost() + "Please enter 'Y' to try again or anything but 'Y' to accept values.");
};
do
{
bitpsString = JOptionPane.showInputDialog("Please enter your internet connection speed. Must be an integer between 1 and 99999999");
bitps = Double.parseDouble(bitpsString);
} while (bitps > 0 && bitps < 99999999);
picc0.setSpeed(bitps);
for(y = 0; y<picc.length; y++) {
totesPrice += picc+y.getCost();
totesSize += picc+y.calcStorage();
totesSpeed = picc0.getSpeed();
}
double seconds = transferTime(totesSize, totesSpeed);
double minutes = seconds / 60;
double realsec = seconds % 60;
JOptionPane.showMessageDialog(null, "You will be paying: " + totesPrice + "\nRequired Storage is: " + totesSize + "Required time for transfer is: " + wholeDigits.format(minutes) + " minutes, and " + wholeDigits.format(realsec) + " seconds.");
}
public static double transferTime(double totalStorage, double netSpeed) {
double bits, seconds;
bits = (totalStorage * 8);
seconds = (bits / netSpeed);
return seconds;
};
}