Question: Java. if i want to change List.java prublic String listName; prublic ArrayList dList; to private and non - static and all the methods to non
Java. if i want to change List.java
prublic String listName;
prublic ArrayList dList;
to private and non - static and all the methods to non - static too, how to modifi in ListApp.java to keep same fuction?
import java.util.ArrayList; import java.text.DecimalFormat; import java.util.Scanner; import java.io.FileNotFoundException; import java.io.File;
public class DodecahedronList {
public static String listName; public static ArrayList dList; /** * @param listNameIn - list name. * @param dListIn the dodecahedron list. */ public DodecahedronList(String listNameIn, ArrayList dListIn) { listName = listNameIn; dList = dListIn; }
/** @return - list .*/ public static ArrayList getList() { return dList; }
/** @return - list name.*/ public static String getName() { return listName; } /**@return - size of the list.*/ public static int numberOfDodecahedrons() { return dList.size(); } /**@return - total surface area.*/ public static double totalSurfaceArea() { double totalS = 0; int index = 0; while (index < dList.size()) { totalS += dList.get(index).surfaceArea(); index++; } return totalS; } /**@return - total volume.*/ public static double totalVolume() { double totalV = 0; int index = 0; while (index < dList.size()) { totalV += dList.get(index).volume(); index++; } return totalV; } /**@return - average area.*/ public static double averageSurfaceArea() { double avgA = 0; if (dList.size() > 0) { avgA = totalSurfaceArea() / dList.size(); } return avgA; } /**@return - average volume.*/ public static double averageVolume() { double avgV = 0; if (dList.size() > 0) { avgV = totalVolume() / dList.size(); } return avgV; } /** @return - total surface area/volume ratio.*/ public static double totalRatio() { double totalR = 0; int index = 0; while (index < dList.size()) { totalR += dList.get(index).surfaceToVolumeRatio(); index++; } return totalR; } /**@return - average surface area/volume ratio.*/ public static double averageSurfaceToVolumeRatio() { double avgR = 0; if (dList.size() > 0) { avgR = totalRatio() / dList.size(); } return avgR; } /**@return - result as string.*/ public String toString() { String result = listName + " "; int index = 0; while (index < dList.size()) { result += " " + dList.get(index) + " "; index++; } return result; } /**@return - summary info.*/ public static String summaryInfo() { DecimalFormat fmt = new DecimalFormat("#,##0.0##"); String result = ""; result += "----- Summary for " + getName() + " -----"; result += " Number of Dodecahedrons: " + numberOfDodecahedrons(); result += " Total Surface Area: " + fmt.format(totalSurfaceArea()); result += " Total Volume: " + fmt.format(totalVolume()); result += " Average Surface Area: " + fmt.format(averageSurfaceArea()); result += " Average Volume: " + fmt.format(averageVolume()); result += " Average Suface/Volume Ratio: " + fmt.format(averageSurfaceToVolumeRatio()); return result; }
// read file function public static void readFile(String fileName) { String line; ArrayList myList = new ArrayList(); listName = "Dodecahedron Test List"; String label = ""; String color = ""; double edge = 0; try { Scanner scanFile = new Scanner(new File(fileName)); line = scanFile.nextLine(); while (scanFile.hasNext()) { label = scanFile.nextLine(); color = scanFile.nextLine(); edge = Double.parseDouble(scanFile.nextLine()); Dodecahedron d = new Dodecahedron(label, color, edge); myList.add(d); } DodecahedronList dlist = new DodecahedronList(listName, myList); System.out.println("\tFile read in and DodecahedronList created "); } catch (FileNotFoundException ex) { System.out.println("FIle not found"); } }
// add new dodecahedron object public static void addDodecahedron(String label, String color, double edge) { Dodecahedron d = new Dodecahedron(label, color, edge); dList.add(d); System.out.println("***Dodecahedron added *** "); }
// find dodecahedron object public static void findDodecahedron(String label) { int flag = 0; for (int i = 0; i < dList.size(); i++) { if (dList.get(i).getLabel().equalsIgnoreCase(label)) { System.out.println(dList.get(i)); flag = 1; } } if (flag == 0) { System.out.println("\t" + label + " not found "); } }
// delete dodecahedron object public static void deleteDodecahedron(String label) { int flag = 0; for (int i = 0; i < dList.size(); i++) { if (dList.get(i).getLabel().equalsIgnoreCase(label)) { dList.remove(i); flag = 1; System.out.println("\t" + label + " deleted"); } } if (flag == 0) { System.out.println("\t" + label + " not found "); } }
// edit dodecahedron object public static boolean editDodecahedron(String label, String color, double edge) { int flag = 0; for (int i = 0; i < dList.size(); i++) { if ((dList.get(i).getLabel().equalsIgnoreCase(label))) { dList.get(i).setColor(color); dList.get(i).setEdge(edge); System.out.println("\t" + label + " successfully edited "); flag = 1; return true; } } if (flag == 0) { System.out.println("\t" + label + " not found "); return false; } else { return true; } } }
===================================
===================================
//DodecahedronListMenuApp.java import java.util.Scanner; import java.io.IOException;
public class DodecahedronListMenuApp { // main method public static void main(String[] args) throws IOException { Scanner scan = new Scanner(System.in); char code; do { // input choice from user System.out.print(" DodecahedronList System Menu R -Read File and Create DodecahedronList P -Print DodecahedronList S -Print Summary A -Add Dodecahedron D -Delete Dodecahedron F -Find Dodecahedron E -Edit Dodecahedron Q -Quit Enter Code [R, P, S, A, D, F, E, or Q]:"); code = scan.next().charAt(0); // switch case to determine which method to call switch(code) { case 'R': case 'r': System.out.print("\tFile name: "); String fileName = scan.next(); DodecahedronList.readFile(fileName); break; case 'P': case 'p': System.out.println(DodecahedronList.getName() + " " + DodecahedronList.getList()); break; case 'S': case 's': System.out.println(DodecahedronList.summaryInfo()); break; case 'A': case 'a': scan.nextLine(); System.out.print("\tLabel: "); String label = scan.nextLine(); System.out.print("\tColor: "); String color = scan.nextLine(); System.out.print("\tEdge: "); double edge = scan.nextDouble(); DodecahedronList.addDodecahedron(label, color, edge); break; case 'D': case 'd': scan.nextLine(); System.out.print("\tLabel: "); label = scan.nextLine(); DodecahedronList.deleteDodecahedron(label); break; case 'F': case 'f': scan.nextLine(); System.out.print("\tLabel: "); label = scan.nextLine(); DodecahedronList.findDodecahedron(label); break; case 'E': case 'e': scan.nextLine(); System.out.print("\tLabel: "); label = scan.nextLine(); System.out.print("\tColor: "); color = scan.nextLine(); System.out.print("\tEdge: "); edge = scan.nextDouble(); DodecahedronList.editDodecahedron(label, color, edge); break; case 'Q': case 'q': break; default: System.out.println("*** invalid code *** "); break; } } while(code != 'q' && code != 'Q'); } }
=======================
=======================
import java.text.DecimalFormat;
public class Dodecahedron { /** * Dodecahedron. * @param args Commandline arguments - not used. */ private String label = ""; private String color = ""; private double edge = 0; /** * @param labelIn - input label. * @param colorIn - input color. * @param edgeIn - input edge. */ public Dodecahedron(String labelIn, String colorIn, double edgeIn) { label = labelIn; color = colorIn; edge = edgeIn; } /** * @param labelIn - label. * @return true if applied, otherwise false. */ public boolean setLabel(String labelIn) { if (labelIn != null) { label = labelIn.trim(); return true; } else { return false; } } /** * @param colorIn - color. * @return true if applied, otherwise false. */ public boolean setColor(String colorIn) { if (colorIn != null) { color = colorIn.trim(); return true; } else { return false; } } /** * @param edgeIn the edge. * @return true if appled, otherwise false. */ public boolean setEdge(double edgeIn) { if (edgeIn > 0) { edge = edgeIn; return true; } else { return false; } } /**@return label.*/ public String getLabel() { return label; } /**@return color.*/ public String getColor() { return color; } /**@return edge.*/ public double getEdge() { return edge; } /**@return the value of the surface area.*/ public double surfaceArea() { double surfaceArea = 3 * Math.sqrt(10 * Math.sqrt(5) + 25) * edge * edge; return surfaceArea; } /**@return the value of the volume.*/ public double volume() { double volume = Math.pow(edge, 3) * (15 + 7 * Math.sqrt(5)) / 4; return volume; } /**@return the surface to volume ratio.*/ public double surfaceToVolumeRatio() { double surfaceToVolumeRatio = surfaceArea() / volume(); return surfaceToVolumeRatio; } /**@return the string.*/ public String toString() { DecimalFormat fmt = new DecimalFormat("#,##0.0##"); String output = " Dodecahedron " + "\"" + label.trim() + "\" is \"" + color.trim() + "\" with 30 edges of length " + edge + " units."; output += " \tsurface area = " + fmt.format(surfaceArea()) + " square units"; output += " \tvolume = " + fmt.format(volume()) + " cubic units"; output += " \tsurface/volume ratio = "; output += fmt.format(surfaceToVolumeRatio()); return output; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
