Poznałem myślę że wszystkie główne zagadnienia związane z programowaniem obiektowym ale dalej nie potrafię tak programować. Problem pojawił się dopiero jak miałem napisać program w WinForms na zaliczenie przedmiotu.
Napisać napisałem, działał jak chciałem ale kod był straszny. W kółko pisanie tego samego, problem z przekazywaniem danych pomiędzy klasami. Tragedia. Rozumiem samą idee programowania obiektowego i jego elementów no ale, no właśnie ale.
I tu mam pytanie odnośnie przekazywania danych pomiędzy klasami. Nadal nie rozumiem jak to robić ?
Powiedzmy mam klasę A w której mam jakieś właściwości, które już mają jakieś wartości.
mam klasę B w której chcę wyświetlić wartości właściwości z klasy A
mam klasę C w której też chcę wyświetlić wartości właściwości z klasy A.
Jak to zrobić?
W klasie B tworzę obiekt klasy A i poprzez niego dostaje się do właściwości tej klasy. Z klasy B do klasy C wysyłam te dane przez konstruktor. Ok to ma sens.
Tylko co teraz jak będę miał klasę E, F albo Z i w tej klasie będę potrzebował się dostać do właściwości albo jakiejś metody z klasy A?
Wiem, że jakimś rozwiązaniem są klasy statyczne, no ale chyba tak się nie robi wszystkiego.. i nie wszystko się da.
Zresztą na jakim wykładzie z programowania nie byłem to ciągle mówią kod rozbijać na mniejsze klasy bo za długie nieczytelne, tylko potem trzeba jakoś te dane z tych klas wyciągać, albo się do nich dostawać i tu ciągle te nowe obiekty trzeba tworzyć czy robi się to jakoś inaczej ?
I mam jeszcze jedno pytanie bo zauważyłem że piszecie var klasa1 = new Klasa1();
Po co używacie tego var
jeżeli można napisać Klasa1 klasa1 = new Klasa1();
Generalnie proszę o jakieś wskazówki, jak zrozumieć programowanie obiektowe(nauczyć się tak programować) ucze się MVC i tam poznaje coraz to nowe rzeczy, bardzo fajne ciekawe ale jednak już takiego programowania tu nie ma jak w aplikacji konsolowej czy właśnie w WindowsForms. Chyba że odnoszę błędne wrażenie na podstawie moich materiałów z których obecnie korzystam do nauki. Z góry dzięki za odpowiedź :)