Języki obiektowe

0

cześć, programowałem w c++ i tam także programowałem obiektowo, teraz przesiadam się na C# i nurtuje mnie sprawa pełnej obiektowości. W C++ obiekt był zwykła strukturą danych, która byłą opcjonalne, a C# jest już koniecznością. Jak to działa od strony wewnętrznej. Mając klasę główną, w której znajduję się funkcja Main, program jakoś w tle tworzy sobie obiekt jest klasy i wywołuje z nich metodę Main?
Jeśli znacie jakieś ciekawe artykuły o tym też bym nie pogardził, dzięki.

0

Metody i pola statyczne są przypisane do obiektu klasy i nie potrzebują instancji tej klasy.

Program sam siebie nie bootuje, ale odpala go maszyna wirtualna.

Jak piszesz program typu PE (Portable Executable) to zwykle OS też musi trochę pomielać ten plik zanim odpali jego procedurę startową. Każdy proces ma swoje jakieś tam wewnętrzne struktury niezaleznie w czym był pisany.

0

Jeżeli wydaje Ci się, że klasa to jest tylko struktura danych, to nie programujesz obiektowo. Nawet to, że w danym języku wszystko musi być zawarte w klasie, nie znaczy, że będziesz pisał w paradygmacie OOP. Radzę się zapoznać z takimi materiałami, jak książka "Bandy Czterech" o wzorcach, czy esejami Martina na temat SOLID (i najlepiej też jego późniejszymi książkami). Jak masz już trochę doświadczenia, to wtedy możesz zobaczyć, że wiele z tych koncepcji przydałoby się w twoich wcześniejszych projektach.

0

Można nazwę tej książki?
Trochę źle się wyraziłem z tym 'tylko struktura', chodziło mi bardziej, że w c# jest to już podstawą języka.

1

Design Patterns: Elements of Reusable Object-Oriented Software (GoF book) oraz http://www.objectmentor.com/resources/publishedArticles.html . Obydwa te źródła jako języka używają C++, może coś na tym poziomie znalazłoby się w Javie, ale wątpię, czy w C#. Jeżeli będziesz potrzebował porządnego wprowadzenia do programowania obiektowego w C++ to możesz posłużyć się Thinking in C++ Eckela, która to książka jest dostępna za darmo, a zahacza nawet trochę o wzorce projektowe.

Edit: nie mówię, żebyś skupiał się tylko na C++, możesz się tych rzeczy (OOP i C#) uczyć równolegle. Po prostu zrozumienie paradygmatu programowania pozwoli Ci także zrozumieć strukturę takiego C# i dlaczego jest on lepszy od C++.

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