Designe og lage objekter

Hvis du er ukjent med objekter, vil du sannsynligvis bli brukt til å opprette Java-programmer med bare én fil - en Java-hovedklassefil. Det er klassen som har hovedmetoden definert for utgangspunktet for et Java-program.

Klassedefinisjonen i neste trinn må lagres i en egen fil. Den følger de samme retningslinjene for navngivning som du har brukt for hovedklassefilen (dvs. navnet på filen må samsvare med navnet på klassen med filnavnet til .java). Når vi for eksempel lager en bokklasse, bør følgende klassedeklarasjon lagres i en fil som heter "Book.java".

Dataene et objekt har, og hvordan den manipulerer at data spesifiseres gjennom opprettelsen av en klasse. Nedenfor er for eksempel en veldig grunnleggende definisjon av en klasse for et bokobjekt:

Felt brukes til å lagre dataene for objektet, og sammen utgjør de tilstanden til et objekt. Når vi lager et bokobjekt, vil det være fornuftig at det inneholder data om bokens tittel, forfatter og utgiver:

Felt er bare normale variabler med en viktig begrensning - de må bruke tilgangsmodifisereren "privat". Det private nøkkelordet betyr at variablene bare kan nås fra klassen som definerer dem.

instagram viewer

Merk: denne begrensningen håndheves ikke av Java-kompilatoren. Du kan lage en offentlig variabel i klassedefinisjonen din, og Java-språket klager ikke over det. Imidlertid vil du bryte et av de grunnleggende prinsippene for objektorientert programmering - data innkapsling. Tilstanden til objektene dine må bare nås gjennom deres oppførsel. Eller for å si det praktisk, du må bare få tilgang til klassefeltene dine via klassemetodene. Det er opp til deg å håndheve datakapsling av objektene du oppretter.

Konstruktørmetoden bruker samme navn som klassen (dvs. bok) og må være offentlig tilgjengelig. Den tar verdiene til variablene som sendes inn i den, og setter verdiene til klassefeltene; og dermed sette objektet til dets opprinnelige tilstand.

Atferd er handlingene et objekt kan utføre og skrives som metoder. For øyeblikket har vi en klasse som kan initialiseres, men som ikke gjør mye annet. La oss legge til en metode som heter "displayBookData" som vil vise gjeldende data som er i objektet:

Vi kan legge til så mange metoder og felt som vi ønsker, men for nå skal vi anse Book-klassen som komplett. Den har tre felt for å inneholde data om en bok, den kan initialiseres og den kan vise dataene den inneholder.

På venstre side av likhetstegnet er objekterklæringen. Det sier at jeg vil lage et Book-objekt og kalle det "første bok". På høyre side av liketegnet er opprettelsen av en ny forekomst av et bokobjekt. Hva det gjør er å gå til Book class-definisjonen og kjøre koden i konstruktormetoden. Så den nye forekomsten av bokobjektet vil bli opprettet med tittelen, forfatteren og forleggerfeltene satt til henholdsvis "Horton Hears A Who!", "Dr Suess" og "Random House". Til slutt setter liketegnet vårt nye FirstBook-objekt til å være den nye forekomsten av Book-klassen.