du har sikkert hørt begrepet objekt i en programmeringskontekst før. Men hva betyr det egentlig? La oss begynne med å se på noen virkelige objekter, som penner, bøker, smarttelefoner, datamaskiner, etc.
hvert objekt kommer i forskjellige former og former, men du kan klassifisere forskjellige versjoner av det samme objektet i en kategori eller gruppe. Det er derfor du kan gå til en møbelbutikk og gjenkjenne ulike elementer som «stoler» selv om de ser veldig forskjellig fra hverandre.
du gjenkjenner alle disse forskjellige objektene som en del av samme gruppe eller type. Du legger merke til fellestrekk mellom ulike objekter, samle inn informasjon, og skape en mental representasjon for en gitt kategori av objekter.
for eksempel finnes det forskjellige typer bøker der ute, men de har alle en tittel, en forfatter,et deksel, sider, etc. Med andre ord, individuelle bøker har alle lignende egenskaper som lar deg klassifisere dem i tankene dine som en del av kategorien » bok.»
denne mentale listen over attributter vi nettopp har beskrevet for en bok fungerer som en slags blåkopi for det objekt. I programmering kalles det en klasse. Når du oppretter en klasse, kan du komme opp med et tilpasset navn, og derfor kalles de en navngitt type. Som du vil se, de også tillate deg å gruppere mange detaljer sammen, som også er grunnen til at de kan bli referert til som komplekse typer. På den annen side har de enkle typene du allerede er kjent med, som int
eller double
, navn som er forhåndsdefinert av programmeringsspråket og kan ikke endres.
Hvordan kommer vi opp med klassenavn?
i Likhet med navngi variabler, må klassenavn være beskrivende og stavet ut (husk, unngå forkortelser!). En viktig forskjell er at i stedet for å bruke standard camelCase, bør den første bokstaven også være kapital som MarvelousCreature
og ikke marvelousCreature
.
Designe klasser
for å se hvordan du designer en klasse, la oss fortsette med bokeksemplet. Nedenfor har vi identifisert et utvalg av informasjon som kan beskrive en gitt bok:
-
tittel
-
forfatter
-
antall sider
-
utgiver
dette er attributter for enhver bok i det virkelige liv. I sammenheng med klasser kalles disse attributtene felt I Java. Feltene i en klasse er bare et fancy navn for noe du allerede er kjent med: variabler!
nå har du teorien, så la oss sette dette skriftlig!
for å deklarere en klasse I Java, bruk et nøkkelord class
etterfulgt av et egendefinert navn. Etter det, avslutt det med krøllete braces ({}
) som vil omfavne hele innholdet. Dette inkluderer hele listen over egenskaper:
class Book {// functionality of the class}
la oss nå legge til felt som definert tidligere:
class Book { String title; String author; int numberOfPages; String publisher="OC";}
Legg merke til hvordan de tre første ikke har verdier, men den siste gjør? Hvis du er en utgiver som ønsker å katalogisere bøkene dine, vet du at utgiververdien alltid kommer til å være den samme uansett hvilken bok du produserer. Boktitler, forfattere og sidetall vil imidlertid endres avhengig av den aktuelle boken.
hvis du går tilbake til det opprinnelige eksemplet på en online bokhandel, vil klassen se mer ut som dette:
class Book { String title; String author; int numberOfPages; String publisher;}
siden du har bøker fra mange forskjellige utgivere, kan du ikke sette inn en standardverdi for dem alle. Så, her, definer feltet og legg inn en verdi senere!
Utnytte klasser
Du har en helt ny type – Book
📖 – sortert ut! Hva kan du gjøre med det? Tross alt er klassene mer abstrakte eller konseptuelle. Klasse felt er som en mal på en online bokhandel: uansett hvilken bok du ser etter, vil den samme informasjonen dukke opp (tittel, forfatter, antall sider, etc.).
Men når du søker, skriver du ikke bare «bok», ikke sant? Det er ikke nyttig! Du trenger en bestemt forekomst Av en bok, Si Alice In Wonderland. Du leter etter et faktisk objekt du kan bla gjennom og lese. Det er det samme i dataprogrammering.
for å jobbe med en klasse må du opprette et konkret objekt av den klassen. Med andre ord trenger du et bestemt objekt, som En bestemt bok (Alice In Wonderland). Den spesifikke boken kalles en forekomst av en klasse! Som navnet antyder, kalles prosessen instantiating eller initializing et objekt. For det oppretter du en variabel av klassen.
I Java må hvert felt i det opprettede objektet ha en verdi. Disse verdiene kan gis på flere måter. Du så en i publisher-eksemplet: hard-sette en verdi i klassedefinisjonen.
En annen måte er å gi en verdi i setningen som skaper klassen. La oss se på hvordan du gjør det. Her er koden for å lage en bok med verdier som er oppgitt i det øyeblikket objektet er opprettet:
som du kan se, er det noen forskjellige elementer. Først gjør du en vanlig deklarasjon av en variabel, med navnet myBook
og dens type Book
. Husk hvordan vi sa at en klasse er en navngitt kompleks type? Vel, her er beviset! I stedet for int
double
eller string
, vår type er klassen vi har kommet opp med! 💫
Nå, her kommer den kule delen. Variabelen initialiseres med objektopprettingsuttrykket new Book("Coding is art","Becky James",425);
. Dette uttrykket består avnew
nøkkelord, etterfulgt av navnet på klassen igjen (Book
), og noen parenteser ()
med verdier inni. Som du kan se, inneholder parentesen en spesifisert verdi for hvert av de opprinnelige feltene: title
author
og numberOfPages
. Vi har sørget for å skille hver med et komma. Til slutt, slutt med et semikolon ;
. Med det har du opprettet en forekomst av klasseboken! 📔
Arbeide med attributter (felt)
Puh! Det var mye vokabular og begreper. Før vi går videre, la oss oppsummere med et raskt diagram:
er det bedre? Bare husk:
-
Bruk en klasse som en mal for dine fremtidige objekter. I en klasse definerer du navnet og typen av noen variabler. I Java kalles disse attributter generelt, og felt spesielt.
-
for å bruke den kule planen du laget, må du opprette et objekt ved hjelp av instantiasjonsprosessen. Dette betyr å erklære en variabel med klassen din som en type, og deretter bruke objektopprettelsesuttrykket du så ovenfor.
-
når du starter et objekt, oppretter du verdier for hvert av feltene du allerede har definert i klassen.
-
et objekt kalles en forekomst av en klasse.
nå er du klar! Du har bokobjektet ditt, men si at du forandrer deg om verdien av variablene dine. Hvordan får du tilgang til feltene som er knyttet til ditt skinnende nye objekt?
en vanlig måte å få tilgang til felt på i mange programmeringsspråk, er å bruke det som kalles en punktnotasjon. Det betyr at du må skrive navnet på en forekomst eller et objekt etterfulgt av et attributtnavn av interesse, skilt av en prikk: instanceVariableName.attributeName
.
myBook.title = "Coding is Art";myBook.author = "Becky James";myBook.numberOfPages = myBook.numberOfPages + 10;
Nå kan du angi endre verdien av felt i objektet ditt! Tenk deg at du har lagt til ti sider fordi du glemte å legge til indeksen til boken. Du kan enten skrive inn det nye nummeret direkte eller legge til ti sider til den eksisterende verdien som i den tredje linjen. Dette er ganske praktisk når du gjør små endringer. 🙂
Prøv det selv
https://api.next.tech/api/v1/publishable_key/2A9CAA3419124E3E8C3F5AFCE5306292?content_id=2871d3da-5053-4373-a813-46b6fcf8118c
Sammendrag
I dette kapittelet har du lært grunnleggende om objekter:
-
en klasse er en blåkopi av et objekt.
-
en variabel i en klasse kalles en forekomst av en klasse eller et objekt.
-
en klasse lar deg lage komplekse typer ved å gruppere attributter ved å definere felt.
-
for å opprette et objekt må du deklarere en variabel i en klasse og instantiere den.
-
punktnotasjonen gir tilgang til felt.