Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Witam serdecznie, potrzebuje nie bardzo mam pomysł jak "ugryźć" to zadanie. Generalnie muszę zaimplementować wszystkie metody w klasie MyClass. Ktoś mogłby mi podpowiedzieć jak to powinno wyglądać ?
Kopiuj
interfaceIMyClass{// zwraca studenta o podanym name lub nullIStudentfindByName(String name);// zwraca studenta o podanym surname lub nullIStudentfindBySurname(String surname);//zwraca liczbę studentówintcount();}publicclassMyClassimplementsIMyClass{privateList<IStudent> students;}interfaceIStudent{StringgetName();StringgetSurname();}interfaceICreateStudentextendsIStudent{List<IStudent>getStudents();}
Mógłbyś mi powiedzieć co to znaczy pseudokod i jak się odnosi do zadania ?
Mogę, cytat z wiki:
"Pseudokodem nazywany jest taki sposób zapisu algorytmu, który zachowując strukturę charakterystyczną dla kodu zapisanego w języku programowania, rezygnuje ze ścisłych reguł składniowych na rzecz prostoty i czytelności".
Na podstawie tego pseudokodu możesz sobie napisać kod w Javie.
hmmmm nie pamiętam zebym miał tam w poleceniu żeby zastosować pseudo kod, ale skoro było to zadanie na kartce to może rzeczywiście chodziło tylko o tok myslenia
Fajne jest to, że po nieudanej rekrutacji na praktyki próbujesz się tego "nauczyć" ALE po pytaniach, które zadajesz widać, że jesteś jeszcze mocno w tyle.
Przerób sobie temat interfejsów i klas abstrakcyjnych od nowa a dopiero wtedy podejmuj się zadań tego typu.
no oki, pewnie tak zrobię ale czy możecie mi wytłumaczyć jaką role w tym programie pełni ICreateStudents i lista getStudents ? i czy metoda count powinna zwracac po prostunodes.size() ?
no oki, pewnie tak zrobię ale czy możecie mi wytłumaczyć jaką role w tym programie pełni ICreateStudents i lista getStudents ? i czy metoda count powinna zwracac po prostunodes.size() ?
Metoda widziana publicznie powinna zwracać coś, co z punktu widzenia "z zewnątrz" ma sens. Liczba studentów może mieć sens. Jakieś coś co jest rozmiarem "nodes" nie bardzo.
Ty implementujesz tylko MyClass
Kopiuj
package net.forprogrammers;
import java.util.List;
import java.util.function.Predicate;
public class MyClass implements IMyClass {
private List<IStudent> students;
public MyClass(ICreateStudent iCreateStudent) {
this.students = iCreateStudent.getStudents();
}
@Override
public IStudent findByName(String name) {
Predicate<IStudent> byName = s -> s.getName().equals(name);
return getStudent(byName);
}
@Override
public IStudent findBySurname(String surname) {
Predicate<IStudent> bySurname = s -> s.getSurname().equals(surname);
return getStudent(bySurname);
}
@Override
public int count() {
return students.size();
}
private IStudent getStudent(Predicate<IStudent> criterion) {
return this.students
.stream()
.filter(criterion)
.findAny()
.orElse(null);
}
}
Masz tylko interfejsy, bez implementacji (sytuacja kiedy kto inny pracuje nad częścią systemu). Nie implementujesz ich, bo to albo zrobił ktoś inny, albo zrobi. Jeden fragment ekipa zrobi wcześniej, inny inna ekipa później. Trzeba to spiąć, jakoś wstępnie potestować.
PerlMonk