Jest za dużo informacji o obiektach. Najważniejsze jest opanowanie podstaw i łatwiej wszystko układa się na swoim miejscu.
Oto sposób myślenia o obiektach. Pomyśl o strukturach danych w językach proceduralnych. Są grupą pól bez zachowania. Pomyśl o funkcjach, które otrzymują wskaźniki do tych struktur danych i manipulują nimi. Teraz, zamiast rozdzielać je, zdefiniuj funkcje wewnątrz definicji struktur i załóż, że funkcje zwykle otrzymują wskaźnik do struktury danych, którą można manipulować. Ten wskaźnik nazywa się tym. Podsumowując, pomyśl o obiektach jako o połączeniu statusu (danych) i zachowania (metody - fantazyjna nazwa funkcji w OOP).
To jest absolutna podstawa. Są jeszcze trzy koncepcje, które musisz bezwzględnie opanować:
Dziedziczenie - chodzi o ponowne wykorzystanie kodu.
Hermetyzacja - chodzi o ukrycie implementacji przed interfejsem. Mówiąc najprościej, wszystko powinno pozostać prywatne, dopóki nie zostanie udowodnione, że jest inaczej.
Polimorfizm - nie ma znaczenia typ zmiennej referencyjnej, ale typ rzeczywistej instancji, aby wiedzieć, które zachowanie (metoda) jest wywoływane. Java nie sprawia, że ta koncepcja jest bardzo widoczna, ponieważ z definicji wszystko jest polimorficzne. .Net ułatwia zrozumienie, gdy decydujesz, co jest polimorficzne, a co nie, stąd zauważasz różnicę w zachowaniu. Osiąga się to poprzez połączenie wirtualizacji i nadpisywania.
Jeśli te pojęcia są dobrze zrozumiane, wszystko będzie dobrze.
Ostatnia wskazówka: wspominasz o najlepszych książkach. Czy czytałeś „ Thinking in Java ” Bruce'a Eckela? Polecam tę książkę nawet osobom rozpoczynającym przygodę z .Net, ponieważ koncepcje OOP są jasno określone.