Spis treści[Ukryć][Pokazać]
- 1. Czym dokładnie jest programowanie obiektowe?
- 2. Dlaczego OOP są konieczne?
- 3. Jakie korzyści oferują zasady OOPS?
- 4. Jakie są filary koncepcji OOP?
- 5. Czym dokładnie jest klasa?
- 6. Czym dokładnie jest przedmiot?
- 7. Jakie są ograniczenia OOP?
- 8. Co to jest dziedziczenie?
- 9. Czym dokładnie jest hermetyzacja?
- 10. Co to jest polimorfizm?
- 11. Czym dokładnie jest abstrakcja?
- 12. Czym dokładnie jest przeciążanie metod?
- 13. Czym dokładnie jest nadpisywanie metody?
- 14. Czym dokładnie jest superklasa?
- 15. Czym dokładnie jest podklasa?
- 16. Czym dokładnie jest polimorfizm statyczny?
- 17. Czym dokładnie jest dynamiczny polimorfizm?
- 18. Opisz pojęcie Konstruktora.
- 19. Czym dokładnie są modyfikatory dostępu?
- 20. Czym dokładnie jest destruktor?
- 21. Czym dokładnie jest dziedziczenie hybrydowe?
- 22. Czym dokładnie jest dziedziczenie hierarchiczne?
- 23. Jakie są wady dziedziczenia?
- 24. Czym właściwie jest wyjątek?
- 25. Czym dokładnie jest obsługa wyjątków i jakie są jej zalety?
- 26. Czym dokładnie są funkcje wirtualne?
- 27. Czym dokładnie jest funkcja przyjaciela?
- 28. Czym dokładnie jest zbieranie śmieci?
- 29. Czym dokładnie jest sprzężenie?
- 30. Czym dokładnie jest spójność?
- 31. Opisz blok try/catch.
- 32. Opisz ostatni blok.
- 33. Czym dokładnie jest interfejs?
- 34. Czym dokładnie jest skład?
- 35. Czym dokładnie jest tworzenie łańcuchów konstruktorów?
- Wnioski
Jednym z najbardziej wpływowych paradygmatów programowania jest OOP, czyli programowanie obiektowe. Zamiast funkcji i procesów kładzie nacisk na klasy i obiekty.
Jego głównym celem jest łączenie danych i rzeczy, aby łatwiej było z nimi pracować. Każdy obiekt w obiektach OOP składa się z kodu w postaci procedur lub metod oraz danych w postaci pól.
Języki takie jak C++, Objective C, Python, Perl i Java to jedne z najpopularniejszych języków zorientowanych obiektowo języki programowania.
Bardzo ważne jest, aby zrozumieć więcej na ten temat, ponieważ pytania podczas rozmowy kwalifikacyjnej są niezwykle typowe. Większość firm poszukuje inżynierów, którzy znają metody i wzorce obiektowe. Tak więc, jeśli zamierzasz wziąć udział w rozmowie kwalifikacyjnej, musisz być dobrze zorientowany w pomysłach OOP.
W tym poście zostaną pokazane różne pytania do wywiadu z zakresu programowania obiektowego, od poziomu początkującego do eksperckiego. Dzięki temu możesz przejść każdy poziom rozmowy kwalifikacyjnej i zapewnić sobie wymarzoną pozycję.
1. Czym dokładnie jest programowanie obiektowe?
Programowanie zorientowane obiektowo (OOP) opiera się na rzeczywistych obiektach, a nie tylko funkcjach i procesach. Zajęcia tworzone są dla poszczególnych produktów.
Dziedziczenie, polimorfizm i ukrywanie to przykłady rzeczywistych koncepcji, które OOP włączają do programowania. Umożliwia również połączenie danych i kodu.
2. Dlaczego OOP są konieczne?
Istnieje kilka powodów, dla których preferowane są obiekty OOP, jednak najważniejsze są następujące:
- OOP pozwalają ludziom łatwo zrozumieć oprogramowanie, nawet jeśli nie są zaznajomieni z implementacją.
- Ups, popraw czytelność, zrozumiałość i łatwość konserwacji kodu dziesięciokrotnie.
- Korzystając z OOP, nawet bardzo duże aplikacje można łatwo zbudować i kontrolować.
3. Jakie korzyści oferują zasady OOPS?
- OOPS, obiekty programistyczne symulują obiekty świata rzeczywistego, zmniejszając złożoność i zwiększając przejrzystość programu.
- Obiekty mogą być wielokrotnie wykorzystywane w wielu programach.
- Każdy obiekt tworzy odrębną całość, której wewnętrzne operacje są niezależne od innych elementów systemu.
- Wprowadzając kilka nowych obiektów i aktualizując kilka już istniejących, możliwe jest dodanie nowej funkcjonalności lub dostosowanie do zmieniających się warunków pracy.
- Procesy lub reprezentacja danych programu OOP mogą łatwo podlegać niewielkim zmianom.
4. Jakie są filary koncepcji OOP?
Oto główne filary OOP:
Dziedzictwo: Umożliwia klasom dziedziczenie atrybutów innej klasy.
Kapsułkowanie: Jest to zdefiniowane jako właściwość obiektu, która ukrywa krytyczne informacje. Dzięki temu dane są ukryte przed członkami klasy. Specyfikatory opisują sposób dostępu do atrybutu obiektu w kodzie.
Wielopostaciowość: Pozwala to na wykonanie jednej czynności na kilka sposobów. Odbywa się to poprzez interfejsy, w których deklarujemy jeden interfejs, który następnie jest kilkakrotnie implementowany.
Abstrakcja: Możesz użyć tej funkcji, aby ukryć krytyczne informacje przed światem zewnętrznym i przedstawić tylko podstawowe fakty.
5. Czym dokładnie jest klasa?
Klasa to prototyp składający się z obiektów w różnych stanach io różnych zachowaniach. Ma wiele metod, które są współdzielone przez obiekty w tej klasie.
6. Czym dokładnie jest przedmiot?
Obiekt to istota ze świata rzeczywistego, która służy jako podstawowa jednostka obiektów obiektowych, taka jak krzesło, kot lub pies. Różne obiekty mają różne stany, właściwości i akcje.
7. Jakie są ograniczenia OOP?
- Rozmiar jest większy niż w przypadku innych aplikacji.
- Trzeba się do tego przyzwyczaić.
- Pewne rodzaje problemów nie wymagają tego.
- Stworzenie było pracochłonne i w porównaniu do innych aplikacji działa wolniej.
8. Co to jest dziedziczenie?
Pojęcie zwane dziedziczeniem odnosi się do dzielenia ustalonej struktury i zachowania klasy przez inną klasę. Gdy dziedziczenie jest stosowane do pojedynczej klasy, jest określane jako dziedziczenie pojedyncze; gdy zależy od wielu klas, nazywa się to dziedziczeniem wielokrotnym.
9. Czym dokładnie jest hermetyzacja?
Idea obiektów OOP obejmuje również enkapsulację. Opisuje łączenie danych i technik manipulacji danymi. Dodatkowo pomaga zapobiegać bezpośredniemu dostępowi do niektórych części obiektu.
10. Co to jest polimorfizm?
W językach OOP polimorfizm jest podstawowym pojęciem. Pokazuje, jak różne klasy mogą współdzielić interfejs. Wszystkie te klasy mogą mieć unikalne implementacje interfejsów.
11. Czym dokładnie jest abstrakcja?
Abstrakcja to koncepcja programowania obiektowego (OOP) używana do tworzenia struktury obiektów świata rzeczywistego. „Wyświetla” tylko najważniejsze cechy i „ukrywa” obce informacje ze świata zewnętrznego. Podstawowym celem abstrakcji jest ochrona ludzi przed niepotrzebnymi informacjami.
12. Czym dokładnie jest przeciążanie metod?
Możliwe jest, że dwie lub więcej procedur może mieć taką samą nazwę. Powinny jednak mieć różne parametry, różną liczbę parametrów, różne rodzaje lub jedno i drugie. Są one znane jako metody przeciążone, a funkcja jest znana jako przeciążanie metod.
13. Czym dokładnie jest nadpisywanie metody?
Programowanie obiektowe zawiera ideę nadpisywania metod. Jest to funkcja językowa, która umożliwia podklasie lub klasie potomnej oferowanie niestandardowej implementacji metody, którą zapewnia już jedna z jej nadklas lub klas nadrzędnych.
14. Czym dokładnie jest superklasa?
Nadklasa, często nazywana klasą bazową, jest typem klasy, która działa jako rodzic innej klasy lub klas. Na przykład klasa Car ma podklasę o nazwie Vehicle.
15. Czym dokładnie jest podklasa?
Podklasa jest podklasą innej klasy. Na przykład furgonetka jest podklasą Vehicle lub klasą pochodną.
16. Czym dokładnie jest polimorfizm statyczny?
W czasie kompilacji ma miejsce rodzaj polimorfizmu znany jako polimorfizm statyczny (wiązanie statyczne). Przeciążanie metod jest rodzajem polimorfizmu w czasie kompilacji.
17. Czym dokładnie jest dynamiczny polimorfizm?
Rodzaj polimorfizmu, który jest rozwiązywany w czasie wykonywania, nazywa się polimorfizmem środowiska uruchomieniowego, znanym również jako polimorfizm dynamiczny (wiązanie dynamiczne). Przesłanianie metod jest ilustracją polimorfizmu środowiska uruchomieniowego.
18. Opisz pojęcie Konstruktora.
Konstruktor to specyficzna metoda klasy, która jest automatycznie wywoływana podczas tworzenia instancji klasy. Kiedy uzyskujesz dostęp do klasy, jest ona konstruowana z taką samą nazwą jak klasa i inicjuje wszystkich jej członków. Podstawowe cechy konstruktora są następujące:
Nie ma typu zwracanego dla konstruktorów.
Możliwe jest przeciążanie konstruktorów.
Nie jest wymagane określenie konstruktora; the.NET Framework zrobi to automatycznie.
19. Czym dokładnie są modyfikatory dostępu?
W językach obiektowych słowa kluczowe są modyfikatorami lub specyfikatorami dostępu. Pomaga w konfiguracji klas, metod i dostępności innych członków.
20. Czym dokładnie jest destruktor?
Destruktor to metoda zwalniania zasobów przypisanych do obiektu. Gdy obiekt zostanie zniszczony, ta metoda jest wywoływana automatycznie.
21. Czym dokładnie jest dziedziczenie hybrydowe?
Dziedziczenie hybrydowe to rodzaj dziedziczenia generowanego przez mieszanie kilku form dziedziczenia, takich jak pojedyncze, wielokrotne i tak dalej.
22. Czym dokładnie jest dziedziczenie hierarchiczne?
Wiele podklas dziedziczy z klasy nadrzędnej w sytuacji dziedziczenia hierarchicznego. Rodzaj dziedziczenia, w którym wiele klas wywodzi się z jednego rodzica lub klasy bazowej, jest znany jako dziedziczenie hierarchiczne. Na przykład klasa owoców może zawierać podklasy, takie jak „jabłko, „mango”, „banan”, „wiśnia” i tak dalej.
23. Jakie są wady dziedziczenia?
Wydłuża i komplikuje proces realizacji. Wymaga to również przełączania się między różnymi klasami. Klasy rodzica i dziecka są zawsze nierozerwalnie połączone.
Modyfikacje programu nauczania wymagałyby poprawek zarówno dla rodziców, jak i klasy dziecka. Dziedziczenie należy wdrażać ostrożnie, w przeciwnym razie wyniki będą błędne.
24. Czym właściwie jest wyjątek?
Wyjątkiem jest incydent, który zakłóca zwykłe działanie kodu. Aby kontynuować wykonywanie, możesz obsłużyć te wyjątki w Javie. W Javie istnieje wiele rodzajów predefiniowanych wyjątków, a obsługa wyjątków umożliwia kontrolowanie zgłoszonych wyjątków za pomocą bloków try-catch.
25. Czym dokładnie jest obsługa wyjątków i jakie są jej zalety?
Najważniejszą metodą w Javie radzenia sobie z nieoczekiwanymi awariami środowiska wykonawczego jest obsługa wyjątków. Pozwala kontrolować błędy uruchomieniowe, które pojawiają się podczas wykonywania programu.
Korzyści z obsługi wyjątków obejmują możliwość zachowania regularnego przepływu programu podczas zarządzania wyjątkami. Na przykład, jeśli błąd wystąpi w jednej sekcji programu, nie będzie miał wpływu na pozostałą część programu, jeśli obsłużymy wyjątek za pomocą bloków try-catch.
26. Czym dokładnie są funkcje wirtualne?
Funkcje wirtualne są również zawarte w funkcjach klasy nadrzędnej i są zastępowane przez podklasę. Te procedury pomagają w osiągnięciu polimorfizmu w czasie wykonywania.
27. Czym dokładnie jest funkcja przyjaciela?
Funkcja przyjaciela to funkcja, która należy do klasy i ma dostęp do swoich danych publicznych, prywatnych lub chronionych. Jeśli funkcja jest zdefiniowana poza klasą, nie ma możliwości pobrania tych danych. Słowa kluczowe kontroli dostępu private, public i protected nie mają wpływu na deklarację przyjaciela, którą można umieścić w dowolnym miejscu deklaracji klasy.
28. Czym dokładnie jest zbieranie śmieci?
Zbieranie śmieci (GC) to element języków programowania, takich jak C# i Java, który służy jako system odzyskiwania pamięci. Silnik wyrzucania elementów bezużytecznych (GC) jest składnikiem języka programowania, który umożliwia automatyczne zwalnianie miejsca w pamięci dla obiektów, których aplikacja już nie używa.
29. Czym dokładnie jest sprzężenie?
Odnosi się do sytuacji, w których różne klasy polegają na sobie i dzielą się wiedzą. Silne połączenie ma miejsce, gdy jedna klasa ma szczegółową wiedzę o innej klasie. Widoczność klas, metod lub zmiennych można określić za pomocą modyfikatorów dostępu. Interfejsy służą do zapewnienia słabszego sprzężenia.
30. Czym dokładnie jest spójność?
Sposób, w jaki komponent realizuje określoną czynność, określany jest jako jego spójność. Silne, spójne podejście po prostu wykona określone zadanie, podczas gdy słaba, spójna metoda podzieli pojedyncze zadanie na kilka mniejszych zadań, a następnie je wykona.
Pakiet Java.io jest dość spójny, ale pakiet java.util już nie.
31. Opisz blok try/catch.
Gdy program napotka błąd z powodu nieprawidłowego kodu lub danych, „try” i „catch” wskazują, jak nim zarządzać. Blok try to nazwa części kodu, w której występują wyjątki. Blok catch służy do przechwytywania i obsługi wyjątków z bloków try.
32. Opisz ostatni blok.
Działająca część kodu słowa kluczowego try jest wskazywana jako ostatnia. Wyznacza kod, który jest zawsze uruchamiany natychmiast po próbie, oraz wszelkie bloki catch przed zakończeniem metody. Ostatni blok jest zawsze uruchamiany bez względu na to, czy zostanie zgłoszony lub przechwycony wyjątek.
33. Czym dokładnie jest interfejs?
Interfejs to połączenie metod abstrakcyjnych i typu danych zdefiniowanego przez użytkownika. Klasa implementuje interfejs, dziedzicząc funkcje abstrakcyjne interfejsu.
Klasa reprezentuje właściwości i zachowania obiektu, podczas gdy interfejs zawiera zachowania implementowane przez klasę. Interfejs reprezentuje „co”, podczas gdy Klasa przekazuje „jak”.
34. Czym dokładnie jest skład?
Kompozycję można wykorzystać do uzyskania połączenia. Pokazuje silne powiązanie obiektowe między obiektami zależnymi i niezależnymi, w przeciwieństwie do agregacji. Obiekt zależny nie istnieje w tej sytuacji i zostanie usunięty, jeśli obiekt nadrzędny zostanie usunięty.
35. Czym dokładnie jest tworzenie łańcuchów konstruktorów?
Łączenie konstruktorów to technika wywoływania jednego konstruktora z innego w odniesieniu do bieżącego odniesienia do obiektu. Istnieją dwie opcje:
- Do konstruktora w bieżącej klasie można się odwołać za pomocą słowa kluczowego „this”.
- Słowo kluczowe „super” zostanie użyte do wywołania konstruktora z klasy bazowej.
Wnioski
Programowanie obiektowe wymaga myślenia o strukturze programu i przygotowania się z wyprzedzeniem. Zbadanie, jak podzielić wymagania na podstawowe, wielokrotnego użytku klasy, które można wykorzystać do tworzenia instancji rzeczy.
Ogólnie rzecz biorąc, przyjęcie OOP zapewnia poprawę struktury danych i wielokrotnego użytku, co na dłuższą metę oszczędza czas. Widzieć Seria wywiadów z haszdorkiem o pomoc w przygotowaniu rozmowy kwalifikacyjnej.
Dodaj komentarz