Designe og oprette objekter

Hvis du er ny med objekter, vil du sandsynligvis blive brugt til at oprette Java-programmer ved hjælp af kun en fil - en Java-hovedklassefil. Det er den klasse, der har den vigtigste metode defineret til startpunktet for et Java-program.

Klassedefinitionen i det næste trin skal gemmes i en separat fil. Det følger de samme retningslinjer for navngivning, som du har brugt til hovedklassefilen (dvs. filens navn skal matche navnet på klassen med filnavnet på .java). For eksempel, da vi laver en bogklasse, skal følgende klassedeklaration gemmes i en fil kaldet "Book.java".

De data, et objekt har, og hvordan det manipulerer disse data, specificeres ved oprettelse af en klasse. Nedenfor er for eksempel en meget grundlæggende definition af en klasse for et bogobjekt:

Felter bruges til at gemme dataene for objektet og kombineret udgør de status for et objekt. Når vi laver et bogobjekt, vil det være fornuftigt, at det indeholder data om bogens titel, forfatter og udgiver:

Felter er bare normale variabler med en vigtig begrænsning - de skal bruge adgangsmodifikatoren "privat". Det private nøgleord betyder, at der kun kan fås adgang til disse variabler fra klassen, der definerer dem.

instagram viewer

Bemærk: denne begrænsning håndhæves ikke af Java-kompilatoren. Du kan oprette en offentlig variabel i din klassedefinition, og Java-sproget klager ikke over det. Du vil dog bryde et af de grundlæggende principper for objektorienteret programmering - data indkapsling. Tilstanden til dine objekter skal kun fås adgang gennem deres opførsel. Eller for at sige det praktisk, at dine klassefelter kun skal være tilgængelige via dine klassemetoder. Det er op til dig at håndhæve datakapsling af de objekter, du opretter.

Konstruktormetoden bruger samme navn som klassen (dvs. bog) og skal være offentligt tilgængelig. Det tager værdierne for de variabler, der sendes ind i det, og indstiller værdierne for klassefelterne; derved indstiller objektet til dets oprindelige tilstand.

Opførsel er de handlinger, et objekt kan udføre, og skrives som metoder. I øjeblikket har vi en klasse, der kan initialiseres, men ikke gør meget andet. Lad os tilføje en metode kaldet "displayBookData", der viser de aktuelle data, der er indeholdt i objektet:

Vi kunne tilføje så mange metoder og felter, som vi ønsker, men nu skal vi betragte bogklassen som komplet. Det har tre felter til at indeholde data om en bog, det kan initialiseres, og det kan vise de data, den indeholder.

På venstre side af ligetegnet er objekterklæringen. Det siger, at jeg vil oprette et bogobjekt og kalde det "første bog". På højre side af det lige tegn er oprettelsen af ​​en ny forekomst af et bogobjekt. Hvad det gør, er at gå til bogklassedefinitionen og køre koden i konstruktormetoden. Så den nye forekomst af bogobjektet oprettes med titlen, forfatteren og udgiverfelterne indstillet til "Horton Hears A Who!", "Dr Suess" og "Random House". Endelig indstiller det lige tegn til vores nye firstBook-objekt til at være den nye forekomst af klassen Bog.