x,y,z - pólki , opona, metoda.

0

Witam,
Mamy pola: opona, x, y, z (gdzie x ,y ,z są współrzędnymi półek na magazynie).
Stwórz metodę zabezpieczającą położenie dwóch opon na jednej półce. 1 opona 1 półka.
Jakieś pomysły ?

6

Mam pomysl, zebys napisal ten kod ;)

2

No najprościej po prostu sprawdzasz, czy z, y, z które przychodzą, są już zapisane xd (w pamięci lub bazie)

2

Przebieg byłby zapewne taki:

  1. Pojawia się opona A.
  2. Pojawiają się współrzędne półki, na której chcemy odłożyć oponę.
  3. Sprawdzamy czy wskazane współrzędne są wolne.
  4. Jeśli są wolne odkładamy oponę.
  5. Jeśli nie są wolne prosimy o inne współrzędne / mówimy, że nie ma miejsca.
0
if (opona.x = 1 and opona.y=3 and opona.z=5) then print('miejsce zajete wypad!')
2

Tworzysz klasę Shelf, która zawiera te wspolrzedne. Wsadź to do mapy i podczas próby dodawania opony na półkę walidujesz czy map.containsKey(). Jeśli true to rzucasz jakimś InvalidArgumentException, zwracasz Failure czy jak tam chcesz to ograć.

0
public interface CustomMap <Para>
    {
        public boolean ifCustomMapEmpty();
        //check if Map contains item
        public boolean ifMapContainsItem(Para para);
        //get
        public Opona getCustomMapItem(Para para);
        //put
        public void putItemCustomMap(Para para);
        // Pozostale metody ...
    }

    public static class Opona <K,V>
    {
        private K polka;
        private V marka;
        public Opona(K polka, V marka) {
            this.polka = polka;
            this.marka = marka;
        }

        public K polka() {
            return polka;
        }

        public V marka() {
            return marka;
        }

        public void polka(K polka) {
            this.polka = polka;
        }

        public void drugi(V marka) {
            this.marka = marka;
        }
// metoda porownuje wartość atrybutu polka z inna opona
        public boolean taSamaPolka(Opona o){
            return (this.polka() == o.polka());
        }
    }
    static class Szafka implements CustomMap<Opona>
    {
        ArrayList<Opona<String,String>> items;

        public Szafka(){
            items=new ArrayList<Opona<String,String>>();
        }

        @Override
        public boolean ifCustomMapEmpty() {
            return items.isEmpty();
        }

        @Override
        public boolean ifMapContainsItem(Opona kvOpona) {
            Iterator<Opona<String, String>> customMapIter = items.iterator();
            while (customMapIter.hasNext()){
                if (customMapIter.next().taSamaPolka(kvOpona))
                    return true;
            }
            return false;

        }

        @Override
        public Opona<String, String> getCustomMapItem(Opona kvOpona) {
            return items.get(items.indexOf(kvOpona));
        }

        @Override
        public void putItemCustomMap(Opona kvOpona) {
            if (!ifMapContainsItem(kvOpona)){
                items.add(kvOpona);
            }else {
                System.out.println("Opona jest juz na polce");
            }
        }
    }

Kluczowe metody to:

  • public boolean taSamaPolka(Opona o)
  • public boolean ifMapContainsItem(Opona kvOpona)
  • public void putItemCustomMap(Opona kvOpona)
    W ten sposób zabezpieczasz się przed nieporządanym przepełnieniem jednej półki
6

Kolejny wątek, że OP odpadł ... gotowca nie dostał, wątek mu zbędny

0

W sumie to widziałbym to nawet tak:
Stworzenie klasy Magazyn z listą mieszczącą wszystkie obiekty klasy Półka. Klasa półka mieściłaby nie więcej niż jeden obiekt klasy Opona. Jest to rozwiązanie dokładniejsze i według mniej bardziej zgodne z ideą OOP, ale też bardziej czasochłonne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1