Pytania pomocnicze - INF.04
Projektowanie, programowanie i testowanie aplikacji
Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 1207.
Strona 6 z 11.
Dlaczego Agile jest dobrym wyborem, gdy zakres projektu nie jest dokładnie znany na początku?
Agile zakłada iteracyjne dostarczanie produktu i możliwość częstych zmian. Dzięki temu zespół może doprecyzowywać wymagania w trakcie realizacji.
Dlaczego Agile jest odpowiedni przy zmieniających się wymaganiach?
Agile zakłada iteracyjną pracę i regularne dostosowywanie zakresu projektu. Dzięki temu zespół może reagować na nowe potrzeby klienta bez konieczności przebudowy całego planu.
Jakie cechy projektu wskazują, że podejście zwinne będzie lepsze niż model kaskadowy?
To przede wszystkim zmienne wymagania, niepewny zakres, częsty kontakt z klientem i potrzeba szybkiego reagowania na nowe potrzeby. Model kaskadowy lepiej działa przy stabilnych i dobrze opisanych wymaganiach.
Czym Agile różni się od modelu kaskadowego?
Model kaskadowy jest liniowy i wymaga dobrze określonych wymagań na początku. Agile jest elastyczny, pozwala zmieniać wymagania i dostarczać produkt etapami.
Na czym polega iteracyjność w Agile?
Praca jest dzielona na krótkie etapy, w których powstają kolejne wersje produktu. Po każdej iteracji można zebrać opinię i wprowadzić poprawki.
Kiedy model kaskadowy może być lepszy niż Agile?
Model kaskadowy sprawdza się, gdy wymagania są stabilne, dobrze opisane i mało prawdopodobne jest ich zmienianie. Jest typowy dla projektów o przewidywalnym przebiegu.
Jak zmiana wymagań wpływa na projekt prowadzony metodą Agile?
Zmiana wymagań jest traktowana jako naturalny element projektu, a nie błąd planowania. Zespół może aktualizować backlog i dostosowywać priorytety w kolejnych iteracjach.
Co oznacza iteracyjny sposób pracy w Agile?
Iteracyjny sposób pracy oznacza realizację projektu w krótkich cyklach. Po każdym cyklu można ocenić efekty i zaplanować kolejne działania.
Dlaczego model kaskadowy nie jest najlepszy przy niepewnym zakresie projektu?
Model kaskadowy wymaga dokładnego ustalenia wymagań na początku i realizacji etap po etapie. Późniejsze zmiany są w nim trudniejsze, droższe i mniej elastyczne.
Jaką rolę pełni klient w podejściu Agile?
Klient lub przedstawiciel użytkowników regularnie przekazuje informacje zwrotne. Pomaga to zespołowi tworzyć produkt zgodny z aktualnymi potrzebami.
Jaką rolę odgrywa klient lub użytkownik w projekcie prowadzonym zwinnie?
Klient regularnie przekazuje informację zwrotną i pomaga ustalać priorytety. Dzięki temu produkt lepiej odpowiada rzeczywistym potrzebom.
Czy Agile oznacza brak dokumentacji?
Nie. Agile ogranicza nadmiarową dokumentację, ale nie rezygnuje z niej całkowicie. Dokumentacja powinna wspierać projekt, a nie zastępować komunikację i działające oprogramowanie.
Czym różni się Agile od modelu V w podejściu do wymagań i testowania?
Model V opiera się na wcześniej zaplanowanych etapach i ścisłym powiązaniu projektowania z testowaniem. Agile dopuszcza częste zmiany wymagań i testowanie w każdej iteracji.
Do czego służy Jira w pracy nad projektem informatycznym?
Jira służy do organizacji zadań, planowania pracy zespołu oraz śledzenia zgłoszeń, błędów i postępu realizacji projektu.
Do czego służy Jira w projekcie informatycznym?
Jira służy do zarządzania zadaniami, monitorowania błędów, planowania pracy zespołu i kontrolowania postępu projektu.
Dlaczego Jira pasuje lepiej do tego pytania niż Git?
Git jest systemem kontroli wersji, czyli służy głównie do zarządzania zmianami w kodzie. Jira natomiast wspiera zarządzanie projektem i monitorowanie zgłoszeń.
Czym różni się Jira od Gita?
Jira zarządza zadaniami i zgłoszeniami w projekcie, natomiast Git służy do kontroli wersji kodu źródłowego.
Czym różni się Jira od Bugzilli?
Bugzilla koncentruje się głównie na zgłaszaniu i śledzeniu błędów. Jira oprócz obsługi błędów oferuje także rozbudowane zarządzanie projektem, sprintami i tablicami zadań.
Co oznacza zgłoszenie typu bug w Jira?
Bug to zgłoszenie błędu w aplikacji, które może zostać przypisane konkretnej osobie, opisane, ocenione priorytetem i śledzone aż do naprawy.
Dlaczego Jasmine nie jest poprawną odpowiedzią w tym pytaniu?
Jasmine to framework do testów jednostkowych w JavaScript. Nie służy do organizacji projektu ani do zarządzania zgłoszeniami w zespole.
Jakie metodyki pracy wspiera Jira?
Jira często wspiera metodyki Agile, szczególnie Scrum i Kanban, umożliwiając pracę na backlogu, sprintach i tablicach zadań.
Jakie typowe elementy można śledzić w Jira?
W Jira można śledzić zadania, błędy, zgłoszenia użytkowników, priorytety, terminy, statusy realizacji i przypisanie do konkretnych osób.
Do czego służy backlog w Jira?
Backlog to lista zadań, funkcjonalności i błędów oczekujących na realizację lub zaplanowanie w sprincie.
W jaki sposób Jira wspiera metodyki zwinne, takie jak Agile?
Jira umożliwia pracę z backlogiem, sprintami, tablicami Kanban i Scrum oraz raportowanie postępu. Dzięki temu dobrze wspiera organizację pracy w Agile.
Na czym polega podejście obiektowe w programowaniu?
Polega na modelowaniu programu za pomocą obiektów, które łączą dane i metody. Obiekty są tworzone na podstawie klas.
Czym różni się klasa od obiektu?
Klasa jest wzorcem lub definicją, a obiekt jest konkretnym egzemplarzem tej klasy utworzonym w pamięci programu.
Dlaczego hermetyzacja jest ważna w programowaniu obiektowym?
Hermetyzacja chroni dane obiektu przed niekontrolowanym dostępem. Pozwala udostępniać tylko wybrane metody i właściwości.
Czy funkcje i procedury są charakterystyczne tylko dla programowania obiektowego?
Nie. Funkcje i procedury występują także w programowaniu proceduralnym, dlatego same w sobie nie definiują podejścia obiektowego.
Jakie elementy najczęściej występują w klasie?
Klasa zwykle zawiera pola opisujące stan obiektu oraz metody określające jego zachowanie. Może też mieć konstruktor i modyfikatory dostępu.
Jakie pojęcia najczęściej kojarzy się z programowaniem obiektowym na egzaminie?
Najczęściej są to klasy, obiekty, hermetyzacja, dziedziczenie i polimorfizm. W tym pytaniu poprawny zestaw to klasy, obiekty oraz hermetyzacja.
Dlaczego odpowiedź z klasami, obiektami i hermetyzacją jest poprawna?
Są to podstawowe pojęcia programowania obiektowego. Pozostałe odpowiedzi zawierają elementy, które nie są charakterystyczne wyłącznie dla podejścia obiektowego albo pochodzą z innych obszarów, np. baz danych.
Czym są pola i metody w klasie?
Pola przechowują dane obiektu, czyli jego stan. Metody opisują czynności, które obiekt może wykonywać.
Czy rekurencja, funkcje i procedury są cechami programowania obiektowego?
Nie są to cechy wyróżniające podejście obiektowe. Mogą występować w różnych paradygmatach programowania, także poza OOP.
Dlaczego odpowiedź z kwerendami i wyzwalaczami nie pasuje do programowania obiektowego?
Kwerendy i wyzwalacze są pojęciami związanymi głównie z bazami danych. Nie stanowią podstawowych elementów podejścia obiektowego.
Jak rozpoznać w zadaniu egzaminacyjnym pojęcia związane z OOP?
Warto szukać terminów takich jak klasa, obiekt, hermetyzacja, dziedziczenie i polimorfizm. Jeśli w odpowiedzi pojawiają się pojęcia z baz danych lub programowania proceduralnego, zwykle nie są one pełnym opisem OOP.
Na czym polega technika dziel i zwyciężaj?
Polega na podziale problemu na mniejsze podproblemy, rozwiązaniu ich osobno i połączeniu wyników. Często wykorzystuje rekurencję.
Na czym polega technika „dziel i zwyciężaj” w algorytmice?
Polega na podziale problemu na mniejsze podproblemy, rozwiązaniu ich osobno, a następnie połączeniu wyników w rozwiązanie całości. Stosuje się ją wtedy, gdy mniejsze części są prostsze do obsługi niż problem główny.
Jakie są trzy główne etapy algorytmu dziel i zwyciężaj?
Najpierw problem jest dzielony na mniejsze części, potem części są rozwiązywane, a na końcu wyniki są łączone w rozwiązanie całości.
Jakie są trzy typowe etapy algorytmu typu „dziel i zwyciężaj”?
To: podział problemu, rozwiązanie podproblemów oraz scalenie wyników. Często etap rozwiązywania odbywa się rekurencyjnie.
Czym jest przypadek bazowy w algorytmie rekurencyjnym?
Przypadek bazowy to sytuacja, w której problem jest już na tyle prosty, że można go rozwiązać bez dalszego wywoływania rekurencji.
Dlaczego rekurencja często występuje w algorytmach „dziel i zwyciężaj”?
Bo ten sam schemat działania powtarza się dla coraz mniejszych części problemu. Rekurencja naturalnie odwzorowuje taki sposób myślenia i implementacji.
Jakie algorytmy są przykładami metody dziel i zwyciężaj?
Przykładami są wyszukiwanie binarne, sortowanie przez scalanie oraz sortowanie szybkie. Wszystkie dzielą dane na mniejsze części.
Jakie znane algorytmy wykorzystują strategię „dziel i zwyciężaj”?
Przykładami są sortowanie szybkie, sortowanie przez scalanie oraz wyszukiwanie binarne. Każdy z nich rozbija problem na mniejsze fragmenty i przetwarza je oddzielnie.
Dlaczego wyszukiwanie binarne jest przykładem techniki dziel i zwyciężaj?
Ponieważ w każdym kroku dzieli zakres wyszukiwania na połowy i kontynuuje pracę tylko w jednej z nich. Dzięki temu szybko zmniejsza liczbę sprawdzanych elementów.
Czym różni się „dziel i zwyciężaj” od podejścia heurystycznego?
„Dziel i zwyciężaj” to konkretna technika projektowania algorytmów oparta na podziale problemu. Heurystyka to raczej praktyczna metoda szukania dobrego rozwiązania, niekoniecznie optymalnego i nieoparta obowiązkowo na takim podziale.
Czym różni się technika dziel i zwyciężaj od algorytmu heurystycznego?
Dziel i zwyciężaj to systematyczna metoda podziału problemu na podproblemy. Algorytm heurystyczny szuka dobrego rozwiązania praktycznego, ale nie zawsze gwarantuje rozwiązanie optymalne.
Dlaczego odpowiedzi „najkrótszej trasy” i „komiwojażera” nie są poprawne w tym pytaniu?
Bo nie oznaczają techniki konstruowania algorytmu, tylko odnoszą się do konkretnych problemów optymalizacyjnych. Pytanie dotyczy metody projektowania rozwiązania, a nie nazwy zadania.
Dlaczego problem komiwojażera nie jest nazwą techniki konstruowania algorytmów?
Problem komiwojażera to konkretne zadanie optymalizacyjne polegające na znalezieniu najkrótszej trasy odwiedzającej miasta. Nie jest to ogólna technika projektowania algorytmów.
Czy każdy problem da się efektywnie rozwiązać metodą „dziel i zwyciężaj”?
Nie. Ta technika działa najlepiej wtedy, gdy problem można sensownie rozbić na niezależne lub prawie niezależne części, a koszt połączenia wyników nie jest zbyt duży.
Dlaczego analiza ryzyka jest kojarzona z modelem spiralnym?
Model spiralny zakłada ocenę ryzyka w każdej iteracji projektu. Dzięki temu zespół może wcześnie wykrywać problemy i ograniczać ich skutki.
Na czym polega model spiralny w cyklu życia projektu informatycznego?
Model spiralny łączy projektowanie, prototypowanie i ocenę ryzyka w kolejnych iteracjach. Każdy obrót spirali obejmuje planowanie, analizę ryzyka, wytwarzanie i ocenę rezultatów.
Czym model spiralny różni się od modelu kaskadowego?
Model kaskadowy zakłada przechodzenie etapów po kolei, zwykle bez cofania się. Model spiralny jest iteracyjny i w każdej iteracji uwzględnia analizę ryzyka.
Dlaczego analiza ryzyka jest kluczowym etapem właśnie w modelu spiralnym?
Bo ten model został zaprojektowany tak, aby wcześnie wykrywać zagrożenia projektu i ograniczać ich skutki. Decyzje o dalszych pracach podejmuje się po ocenie ryzyk w każdej iteracji.
Dlaczego analiza ryzyka jest kluczowym etapem modelu spiralnego?
Bo ten model został zaprojektowany właśnie do identyfikowania i ograniczania zagrożeń projektu. Dzięki temu można wcześniej wykryć problemy techniczne, organizacyjne lub kosztowe.
W jakich projektach najlepiej sprawdza się model spiralny?
Najlepiej sprawdza się w dużych, kosztownych i złożonych projektach, w których istnieje duża niepewność techniczna lub biznesowa.
W jakich projektach warto stosować model spiralny?
Model spiralny jest dobry dla dużych, kosztownych i ryzykownych projektów, w których wymagania mogą się zmieniać. Pozwala stopniowo rozwijać system i kontrolować zagrożenia.
Jakie rodzaje ryzyka analizuje się w projekcie informatycznym?
Najczęściej analizuje się ryzyko techniczne, organizacyjne, kosztowe, terminowe i związane z wymaganiami. Przykładem może być użycie nowej technologii lub niejasne oczekiwania klienta.
Co może być przykładem ryzyka w projekcie informatycznym?
Ryzykiem może być np. zmiana wymagań klienta, przekroczenie budżetu, opóźnienie prac albo wybór technologii, która nie spełni oczekiwań.
Co może być ryzykiem w projekcie informatycznym?
Ryzykiem może być opóźnienie, przekroczenie budżetu, błędne wymagania, problemy techniczne, brak kompetencji zespołu lub trudności z integracją systemów.
Jaki jest cel analizy ryzyka w projekcie IT?
Celem jest wykrycie potencjalnych zagrożeń i przygotowanie działań, które zmniejszą prawdopodobieństwo problemów lub ich skutki.
Jaką rolę pełni prototypowanie w modelu spiralnym?
Prototyp pomaga sprawdzić pomysły, wymagania i rozwiązania techniczne przed pełnym wdrożeniem. Dzięki temu można zmniejszyć ryzyko błędnych decyzji projektowych.
Czy model z prototypem jest tym samym co model spiralny?
Nie. Prototypowanie może być elementem pracy nad projektem, ale model spiralny wyróżnia się przede wszystkim systematyczną analizą ryzyka w kolejnych iteracjach.
Dlaczego model spiralny jest trudniejszy w zarządzaniu?
Wymaga regularnego planowania iteracji, oceny ryzyk i podejmowania decyzji po każdej pętli projektu. To zwiększa złożoność organizacyjną i koszty.
W jakich projektach model spiralny sprawdza się najlepiej?
Najlepiej w dużych, złożonych i kosztownych projektach, gdzie występuje dużo niepewności. Jest przydatny tam, gdzie błędne decyzje mogłyby spowodować duże straty.
Jak przebiega pojedynczy cykl w modelu spiralnym?
Najpierw określa się cele i wymagania, potem analizuje ryzyko, następnie tworzy i testuje rozwiązanie, a na końcu planuje kolejny etap. Taki cykl powtarza się aż do ukończenia projektu.
Jakie są główne zalety modelu spiralnego?
Do zalet należą wczesne wykrywanie problemów, elastyczność oraz lepsza kontrola ryzyka. Model pozwala też stopniowo doprecyzowywać wymagania i rozwijać produkt.
Czym charakteryzuje się stos jako struktura danych?
Stos działa według zasady LIFO, czyli Last In, First Out. Oznacza to, że jako pierwszy usuwany jest element dodany jako ostatni.
Po czym rozpoznać, że opisana struktura danych to stos?
Wskazują na to operacje push, pop i peek działające na ostatnio dodanym elemencie. To typowe zachowanie zasady LIFO.
Do czego służy operacja push na stosie?
Operacja push dodaje nowy element na szczyt stosu. Po jej wykonaniu dodany element staje się ostatnio dodanym elementem w strukturze.
Co oznacza zasada LIFO w kontekście stosu?
LIFO oznacza Last In, First Out, czyli ostatni włożony element jest usuwany jako pierwszy. Stos działa więc „od góry” struktury.
Czym różni się pop od peek?
pop usuwa i zwykle zwraca element znajdujący się na szczycie stosu. peek tylko zwraca ten element, ale nie usuwa go ze stosu.
Jaką rolę pełni metoda peek() i czym różni się od pop()?
peek() tylko odczytuje element znajdujący się na szczycie stosu, ale go nie usuwa. pop() zwraca ten element i jednocześnie usuwa go ze struktury.
Dlaczego podane metody nie opisują kolejki FIFO?
Kolejka FIFO usuwa elementy w kolejności ich dodania, czyli pierwszy dodany element jest usuwany jako pierwszy. W pytaniu metoda pop usuwa ostatnio dodany element, co odpowiada stosowi.
Do czego służy metoda isEmpty() w pracy ze stosem?
Pozwala sprawdzić, czy stos zawiera jakiekolwiek elementy. Jest używana głównie po to, aby uniknąć błędu przy próbie zdjęcia elementu z pustego stosu.
Jaką rolę pełni metoda isEmpty w strukturze stosu?
Metoda isEmpty sprawdza, czy stos jest pusty. Jest przydatna przed wykonaniem pop lub peek, aby uniknąć próby odczytu elementu z pustej struktury.
Dlaczego kolejka FIFO nie pasuje do podanego zestawu metod?
Kolejka FIFO usuwa element dodany najwcześniej, a nie ostatnio dodany. Podane operacje jednoznacznie opisują dostęp do końca struktury, czyli stos.
Co oznacza pojęcie szczyt stosu?
Szczyt stosu to miejsce, w którym znajduje się ostatnio dodany element. Operacje push, pop i peek dotyczą właśnie tego elementu.
Czy tablica i stos to to samo?
Nie. Tablica to ogólna struktura przechowująca elementy pod indeksami, a stos to abstrakcyjna struktura danych z ograniczonym zestawem operacji zgodnych z LIFO.
Gdzie w programowaniu wykorzystuje się stos?
Stos jest wykorzystywany m.in. do obsługi wywołań funkcji, cofania operacji, sprawdzania poprawności nawiasów oraz przetwarzania wyrażeń arytmetycznych.
Jakie są typowe zastosowania stosu w programowaniu?
Stos wykorzystuje się m.in. do obsługi wywołań funkcji, cofania operacji, sprawdzania nawiasów oraz przechodzenia algorytmów rekurencyjnych.
Do czego służy typ char w Javie?
Typ `char` służy do przechowywania pojedynczego znaku, np. `'A'`, `'T'` albo `'5'`. Literał znakowy zapisuje się w apostrofach.
Czym różni się typ char od typu String w Javie?
char przechowuje pojedynczy znak, np. 'T', a String przechowuje ciąg znaków, np. "Tekst". Znak zapisuje się w apostrofach, a napis w cudzysłowach.
Czym różni się zapis 'T' od "T" w Javie?
`'T'` oznacza pojedynczy znak typu `char`. `"T"` oznacza napis typu `String`, nawet jeśli zawiera tylko jeden znak.
Dlaczego wartość 'T' można przypisać do zmiennej typu char?
Bo 'T' jest pojedynczym znakiem. Typ char w Javie służy właśnie do przechowywania pojedynczych znaków.
Jaki typ danych w Javie przechowuje wartość true albo false?
Wartości logiczne `true` i `false` przechowuje typ `boolean`. Nie służy on do przechowywania liter ani liczb.
Dlaczego zmienne typu int i float nie nadają się do przechowania wartości 'T'?
int przechowuje liczby całkowite, a float liczby rzeczywiste. Wartość 'T' jest znakiem, więc nie pasuje do tych typów bez odpowiedniej konwersji.
Jaki typ danych wybrać dla liczby całkowitej w Javie?
Najczęściej używa się typu `int`, np. `int liczba = 10;`. Dla bardzo dużych liczb całkowitych można użyć typu `long`.
Jakie wartości może przechowywać zmienna typu boolean w Javie?
Typ boolean przechowuje tylko dwie wartości logiczne: true albo false. Nie służy do zapisu znaków ani liczb.
Dlaczego zmienna typu float nie jest właściwa dla wartości 'T'?
Typ `float` przechowuje liczby zmiennoprzecinkowe, np. `2.5f`. Wartość `'T'` jest znakiem, więc pasuje do typu `char`, a nie do `float`.
Jak rozpoznać w kodzie, jaki typ danych ma dana zmienna?
Typ zmiennej jest podany przy jej deklaracji, np. char zm3;. To właśnie typ określa, jakie wartości można do niej przypisać.
Jakie są podstawowe typy proste w Javie i do czego służą?
Do typów prostych należą m.in. int, float, char i boolean. Służą odpowiednio do przechowywania liczb całkowitych, liczb rzeczywistych, pojedynczych znaków i wartości logicznych.
Na czym polega reguła zaangażowania i konsekwencji?
Polega na tym, że człowiek chce postępować zgodnie z wcześniejszymi decyzjami, deklaracjami lub zobowiązaniami. Dlatego częściej doprowadza rozpoczęte sprawy do końca.
Dlaczego ludzie chcą być konsekwentni?
Konsekwencja jest kojarzona z odpowiedzialnością, wiarygodnością i stabilnością. Ludzie często unikają zachowań, które przeczyłyby ich wcześniejszym deklaracjom.
Dlaczego poprawna odpowiedź w tym pytaniu to „doprowadzanie spraw do końca”?
Bo reguła ta odnosi się do potrzeby bycia konsekwentnym wobec własnych wcześniejszych działań. Człowiek chce utrzymać zgodność między tym, co zadeklarował, a tym, co robi dalej.
Jak reguła zaangażowania i konsekwencji może działać w zespole projektowym?
Jeśli członek zespołu publicznie zadeklaruje wykonanie zadania, zwykle odczuwa większą motywację, aby je zrealizować. Deklaracja wzmacnia poczucie odpowiedzialności.
Czym reguła zaangażowania i konsekwencji różni się od reguły wzajemności?
Reguła wzajemności dotyczy odwzajemniania przysług. Reguła zaangażowania i konsekwencji dotyczy trzymania się wcześniejszych decyzji i zobowiązań.
Czym ta reguła różni się od społecznego dowodu słuszności?
Społeczny dowód słuszności polega na kierowaniu się zachowaniem lub opinią grupy. Reguła zaangażowania i konsekwencji opiera się na własnym wcześniejszym wyborze lub deklaracji.
Czym reguła zaangażowania i konsekwencji różni się od społecznego dowodu słuszności?
Społeczny dowód słuszności polega na kierowaniu się zachowaniem lub opinią grupy. Reguła zaangażowania i konsekwencji wynika z potrzeby spójności z własnymi wcześniejszymi działaniami.
Jak odróżnić regułę zaangażowania i konsekwencji od ulegania autorytetowi?
Uleganie autorytetowi wynika z podporządkowania się osobie uznawanej za ważną, kompetentną lub wpływową. Reguła zaangażowania i konsekwencji wynika z chęci pozostania wiernym własnym wcześniejszym decyzjom.
Jak rozpoznać tę regułę w pytaniu egzaminacyjnym?
Należy szukać sformułowań związanych z dotrzymywaniem zobowiązań, kontynuowaniem działań, konsekwencją i doprowadzaniem spraw do końca.
Jakie są przykłady działania tej reguły w życiu codziennym lub pracy zespołowej?
Przykładem jest dokończenie zadania po publicznym zadeklarowaniu, że się je wykona. W zespole działa to np. wtedy, gdy ktoś po podjęciu zobowiązania czuje większą odpowiedzialność za realizację pracy.
Do czego służy słowo kluczowe virtual w programowaniu obiektowym?
Służy do oznaczania metod, które mogą być nadpisywane w klasach pochodnych. Umożliwia to polimorfizm, czyli różne zachowanie metody zależnie od rzeczywistego typu obiektu.
Do czego służy słowo kluczowe virtual w metodach klas?
Słowo kluczowe virtual oznacza, że metoda może zostać przesłonięta w klasie pochodnej. Umożliwia to działanie polimorfizmu, czyli wywołanie odpowiedniej wersji metody zależnie od rzeczywistego typu obiektu.
Jaka jest różnica między metodą zwykłą a metodą wirtualną?
Metoda zwykła jest wywoływana zgodnie z typem referencji lub wskaźnika. Metoda wirtualna może zostać wywołana zgodnie z rzeczywistym typem obiektu, jeśli została nadpisana w klasie pochodnej.
Czy virtual stosuje się do pól klasy?
Nie. W C# i C++ virtual dotyczy przede wszystkim metod składowych, a nie zwykłych pól lub atrybutów danych klasy.
Jak nadpisuje się metodę wirtualną w C#?
W klasie bazowej metoda musi mieć słowo kluczowe `virtual`, a w klasie pochodnej używa się `override`. Dzięki temu klasa pochodna dostarcza własną implementację metody.
Jaka jest różnica między metodą virtual a zwykłą metodą?
Zwykła metoda jest wywoływana zgodnie z typem referencji lub wskaźnika, natomiast metoda virtual może zostać rozstrzygnięta dynamicznie w czasie działania programu. Dzięki temu klasa pochodna może dostarczyć własną implementację.
Czy virtual dotyczy atrybutów klasy?
Nie w typowym znaczeniu egzaminacyjnym. `virtual` odnosi się przede wszystkim do metod, właściwości lub podobnych elementów zachowania, a nie do zwykłych pól/atrybutów klasy.
Jak w C# nadpisuje się metodę oznaczoną jako virtual?
W klasie bazowej metoda jest oznaczona słowem virtual, a w klasie pochodnej używa się słowa override. Przykład: public virtual void Pokaz() oraz public override void Pokaz().
Czy funkcja zaprzyjaźniona w C++ może być virtual?
Nie. Funkcja zaprzyjaźniona oznaczona `friend` nie jest metodą klasy, dlatego nie może być metodą wirtualną.
Czy destruktor może być virtual w C++?
Tak, w C++ destruktor może być wirtualny i często powinien taki być w klasach bazowych używanych polimorficznie. Jednak w pytaniu egzaminacyjnym wskazano ogólny kontekst użycia terminu virtual jako metody klasy, ponieważ destruktor w C++ również jest specjalną funkcją składową klasy.
Jaki związek ma virtual z polimorfizmem?
`virtual` umożliwia polimorfizm dynamiczny. Program może wywołać różne wersje tej samej metody w zależności od tego, jakiego typu obiekt faktycznie znajduje się pod referencją lub wskaźnikiem.
Dlaczego funkcje zaprzyjaźnione nie są virtual?
Funkcja zaprzyjaźniona w C++ nie jest metodą klasy, tylko zwykłą funkcją z dostępem do prywatnych składników klasy. Ponieważ nie należy do klasy, nie może być metodą wirtualną.
Dlaczego w pytaniu egzaminacyjnym poprawną odpowiedzią są metody klasy?
Ponieważ zarówno w C#, jak i w C++ słowo `virtual` najczęściej oznacza metody, które mogą być nadpisane w klasach pochodnych. Pozostałe odpowiedzi nie pasują ogólnie do obu języków w takim kontekście.
Do czego służy Windows Presentation Foundation?
WPF służy do tworzenia graficznych aplikacji desktopowych dla systemu Windows. Pozwala projektować okna, formularze, kontrolki i obsługę zdarzeń.
Dlaczego Visual Studio jest właściwym narzędziem do tworzenia aplikacji WPF?
Visual Studio obsługuje projekty WPF, język C#, XAML, debugowanie i kompilację aplikacji .NET. Jest podstawowym środowiskiem Microsoftu do pracy z WPF.
Czym jest WPF w kontekście aplikacji desktopowych?
WPF, czyli Windows Presentation Foundation, to technologia firmy Microsoft do tworzenia graficznych aplikacji okienkowych dla systemu Windows. Interfejs użytkownika opisuje się najczęściej w języku XAML.
Jaką rolę pełni XAML w aplikacjach WPF?
XAML służy do opisywania wyglądu interfejsu użytkownika, np. okien, przycisków i układów kontrolek. Logika działania aplikacji jest zwykle pisana w C#.
Jaka jest rola języka XAML w aplikacjach WPF?
XAML służy do deklaratywnego opisu interfejsu użytkownika, np. okien, przycisków, pól tekstowych i układów kontrolek. Logika aplikacji jest zwykle pisana w C#.
Czym różni się WPF od Windows Forms?
Obie technologie służą do tworzenia aplikacji okienkowych Windows, ale WPF jest nowszy i mocniej opiera się na XAML, wiązaniu danych oraz bardziej elastycznym projektowaniu interfejsu.
Dlaczego NetBeans i PyCharm nie są typowymi narzędziami do WPF?
NetBeans jest kojarzony głównie z Javą, a PyCharm z Pythonem. WPF należy do ekosystemu Microsoft .NET, dlatego standardowo używa się Visual Studio.
Czym różni się Visual Studio od Xamarin Studio w kontekście tego pytania?
Visual Studio obsługuje tworzenie aplikacji WPF. Xamarin Studio było związane głównie z tworzeniem aplikacji mobilnych z użyciem Xamarin, a nie z klasycznymi aplikacjami WPF.
Czy XamarinStudio służy do tworzenia aplikacji WPF?
Nie jest to typowe narzędzie do WPF. Xamarin służy głównie do tworzenia aplikacji mobilnych i wieloplatformowych, a WPF jest technologią desktopową dla Windows.
Jakie elementy projektu WPF można tworzyć i edytować w Visual Studio?
W Visual Studio można tworzyć okna WPF, kontrolki XAML, obsługiwać zdarzenia, pisać kod C# oraz uruchamiać i debugować aplikację. Środowisko wspiera też wiązanie danych i wzorzec MVVM.