I want to take the logic out of Main into a separate class, but it does not work.
Created the folder "logic" and I want the logic to be there, and Main to only execute.

 public class Main { public static void main(String[] args) throws IOException { TaxiStation station = new TaxiStation("D:\\Cars.csv"); List<Car> carPool = station.getCarPool(); //ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠ°Ρ€ΠΊΠ°. double poolPrice = 0.0; for (Car car : carPool) { poolPrice += car.getPrice(); } System.out.println("Cost of taxistation's cars: " + poolPrice ); //ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ сортировку Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΏΠ°Ρ€ΠΊΠ° ΠΏΠΎ расходу Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°. Collections.sort(carPool, new Comparator<Car>() { @Override public int compare(Car car1, Car car2) { return ((int) Math.round(100.0 * (car1.getFuelConsumption() - car2.getFuelConsumption()))); } }); for (Car car: carPool) { System.out.printf("FuelConsumption of %s: %s", car, car.getFuelConsumption()); System.out.println(); } 

How to write all this in logic class, leave only main ?

  • Well, just as you carried out the TaxiStation class, you also TaxiStation out logic logic somewhere, and in main do new logic .... roughly speaking ...... or is there a class with static methods, if it is not tied to a copy - Alexey Shimansky

1 answer 1

First we create logic, in the logic class I created two methods, static and normal, in fact one is enough, so choose the one you need:

 public class Logic { //статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ (Ссли Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ СкзСмпляр класса) public static void logicStatic() throws IOException { TaxiStation station = new TaxiStation("D:\\Cars.csv"); List<Car> carPool = station.getCarPool(); //ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠ°Ρ€ΠΊΠ°. double poolPrice = 0.0; for (Car car : carPool) { poolPrice += car.getPrice(); } System.out.println("Cost of taxistation's cars: " + poolPrice ); //ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ сортировку Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΏΠ°Ρ€ΠΊΠ° ΠΏΠΎ расходу Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°. Collections.sort(carPool, new Comparator<Car>() { @Override public int compare(Car car1, Car car2) { return ((int) Math.round(100.0 * (car1.getFuelConsumption() - car2.getFuelConsumption()))); } }); for (Car car: carPool) { System.out.printf("FuelConsumption of %s: %s", car, car.getFuelConsumption()); System.out.println(); } } //ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ (Ссли создаСтся экзСмпляр класса Π»ΠΎΠ³ΠΈΠΊΠΈ) public void logic() throws IOException { TaxiStation station = new TaxiStation("D:\\Cars.csv"); List<Car> carPool = station.getCarPool(); //ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΏΠ°Ρ€ΠΊΠ°. double poolPrice = 0.0; for (Car car : carPool) { poolPrice += car.getPrice(); } System.out.println("Cost of taxistation's cars: " + poolPrice ); //ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ сортировку Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΏΠ°Ρ€ΠΊΠ° ΠΏΠΎ расходу Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°. Collections.sort(carPool, new Comparator<Car>() { @Override public int compare(Car car1, Car car2) { return ((int) Math.round(100.0 * (car1.getFuelConsumption() - car2.getFuelConsumption()))); } }); for (Car car: carPool) { System.out.printf("FuelConsumption of %s: %s", car, car.getFuelConsumption()); System.out.println(); } } } 

Then, in the main class, call the required logic method (static or normal):

 public class Main { public static void main(String[] args) throws IOException{ //Если Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр класса Ρ‚ΠΎΠ³Π΄Π°: Logic.logicStatic(); //Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ СкзСмпляр класса Ρ‚ΠΎΠ³Π΄Π°: Logic lgk = new Logic(); lgk.logic(); //Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ‚ΠΎΠ³ΠΎ //Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ //Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: //Logic.logicStatic("Some Car"); } }