Problem ten jest spowodowany tym
String marka = null;
String model = null;
String nrVin = null;
Car samochod = new Car(marka, model, nrVin);
że tworzysz sobie obiekt samochód i poszczególnym polom przypisujesz wartość null i później owszem pobierasz wartości, ale nie zmieniasz wartości pól w obiekcie tylko zmieniasz wartości tych zmiennych
System.out.println("Podaj marke");
marka = sc.next();
System.out.println("Podaj model");
model = sc.next();
System.out.println("Podaj nr vin");
nrVin = sc.next();
rozwiązaniem problemu jest, albo tworzenie obiektu samochód po pobraniu wartości do zmiennych czyli
Car samochod = new Car(marka, model, nrVin);
robisz po pobraniu, albo zamiast pobierać wartości do zmiennych to od razu nadawać je obiektowi czyli
System.out.println("Podaj marke");
samochod.setMarka(sc.next());
System.out.println("Podaj model");
samochod.setModel(sc.next());
System.out.println("Podaj nr vin");
samochod.setNrVin(sc.next());
wtedy nie potrzebujesz nawet tych zmiennych marka/model/nrVim