objektorientert programmering pensum
Denne begrepslisten dekker viktige konsepter innen objektorientert programmering, inkludert nøkkelbegreper og praksiser som brukes i utvikling av programvare.
Quiz(80 spørsmål)
1. Hva er hovedformålet med en klasse i objektorientert programmering?
Begreper i dette studiesettet(80)
Grunnleggende konsepter(20)
Hva er objektorientert programmering?
En programmeringsparadigme som bruker objekter for å representere data og metoder.
Definer et objekt.
En instans av en klasse som har tilstand og atferd. Eksempel: En bil er et objekt med farge og hastighet.
Hva er en klasse?
En mal for å lage objekter. Den definerer egenskaper og metoder for objektene.
Sann eller usann: Alle objekter er klasser.
Usann. Klasser er maler, mens objekter er instanser av disse malene.
Fyll inn det tomme: Klasser inneholder ______ og ______.
Egenskaper og metoder.
Hva er en metode?
En funksjon definert i en klasse som beskriver atferden til objektene.
Sammenlign objekter og klasser.
Objekter er instanser; klasser er maler. Objekter har tilstand, klasser har definisjon.
Hva er innkapsling?
En teknikk for å skjule interne tilstander og beskytte data ved å bruke tilgangsmodifikatorer.
Definer arv.
En mekanisme der en klasse kan arve egenskaper og metoder fra en annen klasse.
Hva er polymorfisme?
Evnen til å bruke metoder med samme navn, men med ulik implementasjon, på forskjellige objekter.
Hva er en konstruktør?
En spesiell metode som brukes til å initialisere objekter når de opprettes.
Sann eller usann: Alle metoder kan være statiske.
Usann. Statiske metoder tilhører klassen, mens instansmetoder tilhører objektene.
Hva er et grensesnitt?
En samling av metoder som en klasse må implementere, uten å definere hvordan de skal utføres.
Hva er en abstrakt klasse?
En klasse som ikke kan instansieres, men kan brukes som base for andre klasser.
Definer et attributt.
En variabel som hører til et objekt, og beskriver dets egenskaper, som for eksempel farge.
Sammenlign statiske og instansmetoder.
Statiske metoder tilhører klassen; instansmetoder tilhører objektene og kan bruke instansdata.
Hva er komposisjon?
En teknikk der en klasse inneholder objekter av andre klasser som en del av sin tilstand.
Fyll inn det tomme: ______ er en type oppførsel som kan variere avhengig av objektet.
Polymorfisme.
Hva er en metodeoverlasting?
Å ha flere metoder med samme navn, men med forskjellig signatur (parameterlister).
Sann eller usann: Innkapsling forbedrer sikkerhet.
Sann. Innkapsling skjuler data, noe som reduserer risikoen for utilsiktet endring.
Klasser og objekter(20)
Hva er en klasse?
En klasse er en mal for å opprette objekter. Den definerer egenskaper (attributter) og metoder (funksjoner) for objektene.
Hva er et objekt?
Et objekt er en instans av en klasse. Det har spesifikke verdier for klassens attributter og kan bruke klassens metoder.
Sammenlign klasse og objekt.
Klasse: mal; Objekt: instans. Klassen definerer struktur, objektet representerer en konkret forekomst.
Fyll inn: En klasse kan ha _____.
attributter og metoder.
Er objekter mutable?
Ja, objekter kan endre tilstanden sin ved å oppdatere attributtene.
Eksempel på klasse i Python.
class Bil: def __init__(self, farge): self.farge = farge
Hvordan oppretter man et objekt?
Ved å bruke klassens konstruktør: bil1 = Bil('rød').
Hva er en konstruktør?
En konstruktør er en spesialmetode som brukes til å initialisere et nytt objekt. Den kalles automatisk ved opprettelse.
Hva gjør metoder?
Metoder utfører handlinger relatert til objektet, og kan manipulere attributtene.
Sann eller usann: En klasse kan ikke ha flere objekter.
Usann. En klasse kan ha mange objekter som er instanser av den.
Hva er datatyper i klasser?
Datatyper brukes til å definere attributter. Eksempler: int, str, float.
Hva er innkapsling?
Innkapsling er prinsippet om å skjule interne detaljer og bare eksponere nødvendige metoder og attributter.
Eksempel på tilgang til attributt.
bil1.farge gir deg fargen til objektet bil1.
Hvordan kan metoder endre tilstand?
Metoder kan sette nye verdier til attributter: self.farge = 'blå'.
Sammenlign privat og offentlig tilgang.
Privat: ikke tilgjengelig utenfor klassen. Offentlig: tilgjengelig for alle.
Hva er statiske metoder?
Statiske metoder tilhører klassen, ikke objektene. De kan kalles uten å opprette et objekt.
Eksempel på statisk metode.
class Matematikk: @staticmethod def legg_til(a, b): return a + b
Hva er klassevariabler?
Klassevariabler er delt av alle objekter i klassen. De er definert med klassens navn.
Hvordan kan objekter samarbeide?
Objekter kan kommunisere via metoder, og dele data ved hjelp av attributter.
Eksempel på objektinteraksjon.
bil1.kjør() kan kalle en metode fra bil1 for å endre tilstanden.
Arv og polymorfisme(20)
Arv
Arv er et prinsipp der en klasse (underklasse) kan arve egenskaper og metoder fra en annen klasse (overklasse).
Polymorfisme
Polymorfisme lar objekter av forskjellige klasser behandles som objekter av en felles superklasse. Det tillater metoder å bli brukt på ulike typer objekter.
Fordel med arv
Gjenbruk av kode - reduserer duplisering og forbedrer vedlikeholdbarhet.
Eksempel på arv
En klasse 'Fugl' kan være overklassen, mens 'Papegøye' og 'Falk' er underklasser som arver fra 'Fugl'.
Sant eller usant: Arv kan være en kilde til kompleksitet.
Sant. For mye arv kan føre til vanskelig forståelige hierarkier og avhengigheter.
Abstrakt klasse
En abstrakt klasse kan ikke instansieres. Den brukes som en base for andre klasser og kan inneholde både abstrakte og konkrete metoder.
Finn ut: Hva skjer ved polymorfisme?
Metoder kan brukes på objekter av forskjellige klasser, basert på deres felles superklasse.
Overstyring
Overstyring tillater en underklasse å gi en spesifikk implementering av en metode som allerede er definert i superklassen.
Hva er en interface?
En interface er en kontrakt som definerer metoder som må implementeres av en klasse, men inneholder ingen logikk.
Finn ut: Hva er en virtuell metode?
En virtuell metode er en metode i en superklasse som kan overstyres i en underklasse.
Eksempel på polymorfisme
En metode 'lagLyd' kan kalles på både 'Hund' og 'Katt' objekter, og gi forskjellige resultater avhengig av objektet.
Kommposisjon vs. arv
Komposisjon er å bygge komplekse objekter ved å kombinere enkle objekter, mens arv skaper et hierarki av klasser.
Hva skjer når en klasse arver flere klasser?
Det kan føre til 'diamantproblemet', hvor en klasse arver fra to klasser som har en felles superklasse.
Hvordan kan polymorfisme implementeres?
Ved å bruke abstrakte klasser eller grensesnitt i programmeringsspråket.
Forholdet mellom arv og polymorfisme
Arv gir strukturen, mens polymorfisme gir fleksibiliteten til å bruke objekter i forskjellige kontekster.
Eksempel på overstyring
I klassen 'Dyr', kan metoden 'snakk()' overstyres av 'Hund' som returnerer 'voff' og 'Katt' som returnerer 'mjau'.
Sant eller usant: Polymorfisme er kun for metoder.
Usant. Polymorfisme kan også gjelde for egenskaper, men det er mest relevant for metoder.
Dynamisk type
Dynamisk type bestemmes ved kjøretid, noe som er typisk for polymorfe metoder.
Statiske vs. dynamiske metoder
Statiske metoder er knyttet til klassen, mens dynamiske metoder er knyttet til objekter av klassen.
Hva er konsekvensene av polymorfisme?
- Forbedret kodegjenbruk - Redusert kompleksitet - Økt fleksibilitet i programdesign Polymorfisme gjør det mulig å bruke samme metode på objekter av forskjellige klasser, noe som fører til enklere og mer vedlikeholdbar kode.
Designmønstre(20)
Singleton-mønster
Sikrer at en klasse bare har én instans. Brukes når du trenger kontrollert tilgang til ressurser, f.eks. konfigurasjoner.
Fabrikkmetode
En metode for å lage objekter uten å spesifisere den eksakte klassen. Gjør kode mer fleksibel og utvidbar.
Observer-mønster
Definerer en en-til-mange avhengighet mellom objekter. Når ett objekt endres, varsles alle avhengige objekter.
Strategi-mønster
Lar algoritmer variere uavhengig av klientene som bruker dem. Brukes for å bytte mellom ulike metoder.
Adapter-mønster
Konverterer grensesnittet til en klasse til et annet grensesnitt. Lar inkompatible klasser samarbeide.
Kompositt-mønster
Behandler enkeltobjekter og grupper av objekter likt. Brukes for å skape hierarkiske strukturer.
Dekorator-mønster
Legger til ansvar til objekter dynamisk. Gir en fleksibel alternativ til subklassering.
Fasade-mønster
Gir et forenklet grensesnitt til et sett med grensesnitt i et subsystem. Forenkler bruk av komplekse systemer.
Prototype-mønster
Bruker en eksisterende instans for å lage nye objekter. Reduserer kostnaden ved å opprette et nytt objekt.
Template Method
Definerer skjelettet av en algoritme i en metode, men lar subklasser implementere bestemte trinn.
True or False: Factory Method er et konkret mønster.
False: Factory Method er et abstrakt mønster, det spesifiserer grensesnittet for å opprette objekter.
Byggemønsteret
Separerer konstruksjonen av et komplekst objekt fra dets representasjon. Gir en fleksibel måte å lage objekter.
Memento-mønster
Lar lagring av tilstanden til et objekt uten å avsløre dets implementering. Brukes for angre-funksjonalitet.
Chain of Responsibility
Gir en måte å sende forespørsel gjennom en kjede av håndterere. Hver håndterer forespørselen eller sender den videre.
Brugervennlig sammenligning: Kompositt vs. Dekorator
Kompositt: Hierarkisk struktur. Dekorator: Dynamisk ansvar. Begge gir fleksibilitet, men på ulike måter.
Fasade vs. Adapter
Fasade: Forenkler grensesnittet til et subsystem. Adapter: Tilpasser grensesnittet til et eksisterende objekt.
Hvorfor bruke designmønstre?
Forbedrer koden ved å gi gjenbrukbare løsninger, reduserer kompleksitet og forbedrer lesbarhet.
Bruk av strategi-mønster
Eksempel: Bytte sorteringsalgoritmer. Koden kan enkelt byttes ut uten å endre klientkode.
Observer-mønsteret i praksis
Eksempel: En nyhetsapplikasjon varsler brukerne når nye artikler publiseres. Bruk av observere for å oppdatere visninger.
Hva er Skabelon-mønsteret?
Skabelon-mønsteret definerer skjelettet av en algoritme i en metode, mens underklassene kan implementere spesifikke trinn. - Fremmer gjenbruk - Reduserer kode duplisering - Gir fleksibilitet i algoritmedesign.
Spørsmål i dette studiesettet(80)
1. Hva er hovedformålet med en klasse i objektorientert programmering?
2. Hva beskriver en klasse?
3. Hva er arv i objektorientert programmering?
4. Hva beskriver Singleton-mønsteret?
5. Hvilket av følgende beskriver best et objekt?
6. Hva er en viktig egenskap ved innkapsling?
7. Hvilket alternativ beskriver best polymorfisme?
8. Hva gjør Fabrikkmetode-mønsteret?
9. Hva skjer når du oppretter et objekt av en klasse?
10. Sann eller usann: En klasse kan være både abstrakt og konkret.
11. Hva er en fordel med å bruke arv?
12. Hvordan fungerer Observer-mønsteret?
13. Hvilket alternativ beskriver innkapsling best?
14. Hvilket av følgende er et eksempel på arv?
15. Hvilken klasse er en typisk overklasse for 'Papegøye' og 'Falk'?
16. Når er Strategi-mønsteret nyttig?
17. Hva er en viktig fordel med å bruke klasser?
18. Hva definerer et objekt?
19. Er følgende påstand sann eller usann: Arv kan føre til kompleksitet?
20. Hva gjør Adapter-mønsteret?
21. Hvordan kan man få tilgang til et objekts attributt?
22. Hva er polymorfisme?
23. Hva kjennetegner en abstrakt klasse?
24. Hva er hensikten med Kompositt-mønsteret?
25. Hva er en konstruktør?
26. Hvilket av følgende beskriver en konstruktør?
27. Hva skjer under polymorfisme?
28. Hva gjør Dekorator-mønsteret?
29. Hva er forskjellen mellom private og offentlige attributter?
30. Hvilken av følgende påstander er usann?
31. Hva er overstyring?
32. Hvordan fungerer Fasade-mønsteret?
33. Hvilket av følgende beskriver statiske metoder korrekt?
34. Hva er en metodeoverlasting?
35. Hva er en interface?
36. Hva er hovedideen bak Prototype-mønsteret?
37. Hva er en klassevariabel?
38. Hvilket alternativ er IKKE et karaktertrekk ved abstrakte klasser?
39. Hvordan kan polymorfisme implementeres?
40. Hva er Template Method-mønsteret?
41. Hvilket alternativ viser best hvordan metoder kan endre et objekts tilstand?
42. Hvordan er instansmetoder forskjellig fra statiske metoder?
43. Hva er forholdet mellom arv og polymorfisme?
44. Hvilket mønster lar deg lagre tilstanden til et objekt?
45. Hvilket av følgende er IKKE en egenskap ved klasser?
46. Hvilken av følgende beskriver komposisjon?
47. Hvilket eksempel illustrerer overstyring?
48. Hva er Chain of Responsibility-mønsteret designet for?
49. Hva skjer når metoden `bil1.kjør()` kalles?
50. Hva er et grensesnitt?
51. Er følgende påstand sann eller usann: Polymorfisme gjelder kun for metoder.
52. Hvilken sammenligning er riktig mellom Kompositt og Dekorator?
53. Hvordan kan objekter samarbeide?
54. Sann eller usann: Arv kan føre til kodegjenbruk.
55. Hva er dynamisk type?
56. Når bør du bruke Fasade-mønsteret?
57. Hvilket av følgende er et eksempel på en metode som ikke er statisk?
58. Hvilket alternativ beskriver riktig forhold mellom objekter og klasser?
59. Hva er forskjellen mellom statiske og dynamiske metoder?
60. Hvilket mønster spesifiserer hvordan objekter skal opprettes?
61. Hva er en mal for å opprette objekter?
62. Fyll inn det tomme: ______ er en oppførsel som kan variere avhengig av objektet.
63. Hva er konsekvensene av polymorfisme?
64. Hvilket utsagn er feil om Observer-mønsteret?
65. Hvilket av følgende er en riktig måte å opprette et objekt på?
66. Hva er et attributt?
67. Hva er en konsekvens av overstyring i arv?
68. Hvilket designmønster er best for å bytte algoritmer?
69. Hva er en metode i en klasse?
70. Hvilken av følgende beskriver best hva innkapsling gjør?
71. Hvilket alternativ er et eksempel på polymorfisme?
72. Hva er et annet navn for Byggemønsteret?
73. Hvilket av følgende beskriver beste bruken av en klasse i objektorientert programmering?
74. Hvilken av følgende beskriver korrekt hva en abstrakt klasse er?
75. Hvilket alternativ beskriver IKKE en fordel med arv?
76. Hva er hovedformålet med Dekorator-mønsteret?
77. Hvilket alternativ er IKKE et korrekt kjennetegn ved objekter i objektorientert programmering?
78. Hva er en nøkkelkarakteristikk ved statiske metoder?
79. Hva skjer hvis en klasse arver fra flere klasser uten klart hierarki?
80. Hvilket av følgende beskriver best komparativt bruken av Adapter-mønsteret?
Relaterte studiesett
Schleife Alltag Beispiel Begriffe
Abitur: Abitur Klassen und Objekte
Wiederholung: Funktionen
Test: Binärzahlen
Listen Notizen
Test: Variablen und Datentypen
Abitur Datenbanken SELECT grob Prüfung
Abitur Rekursion
Lag ditt eget studiesett
Last opp en PDF, lim inn notatene dine, eller beskriv et tema – AI genererer flashkort, quizer og mer på sekunder.

