Cześć, tworzę drugi wątek, bo tamten mogłem opisać trochę niezrozumiale.
Tworzę wypożyczalnie samochodów.
Stworzyłem dwie klasy - DataGetter (która ma w sobie metody pobierające wymagane dane do metod z DataBase np. dla klienta są potrzebne dane: imie, nazwisko... a dla samochodu: marka, rok produkcji) oraz RentalCarEngine. Mam problem z operowaniem na tym samym obiekcie, w wyniku czego w klasie Main tworzę jeden obiekt Klienta i przesyłam go do dwóch metod z dwóch różnych klas. Nie wiem czy to jest dobry sposób, jeżeli nie to w jaki sposób tego uniknąć. Wygląda to tak:
public class Main {
public static void main(String[] args) throws SQLException {
Client client = new Client();
Car car = new Car();
CarRentalEngine carRentalEngine = new CarRentalEngine();
DataGetter dataGetter = new DataGetter();
dataGetter.getDataClient(client);
carRentalEngine.createNewCustomer(client);
}
}
Klasa DataGetter
public class DataGetter {
Scanner input = new Scanner(System.in);
void getDataClient(Client client) {
System.out.print("name: ");
client.setName(input.next());
System.out.print("surname: ");
client.setSurname(input.next());
System.out.print("city: ");
client.setCity(input.next());
System.out.print("house number: ");
client.setHouseNumber(input.nextInt());
System.out.print("street: ");
client.setStreet(input.next());
System.out.print("pesel number: ");
client.setPeselNumber(input.nextLong());
System.out.print("rent date: ");
client.setRentDate(input.next());
}
Klasa RentalCar
public class CarRentalEngine {
private DataBase dataBase = new DataBase();
public CarRentalEngine() throws SQLException {
}
void createNewCustomer(Client client) throws SQLException {
dataBase.insertNewCustomer(client.getName(), client.getSurname(), client.getStreet(), client.getHouseNumber(), client.getCity(), client.getPeselNumber(), client.getRentDate());
}
Myślałem o tym, by metoda `getDataClient` tworzyła nowy obiekt klienta od razu i jakoś go przesłać do tych pozostałych klas, ale nie mam pojęcia jak. Bo metoda `dataBase.insertNewCustomer` potrzebuje konkretnych danych, a nie całego obiektu.