Designa och skapa objekt

Om du är ny på objekt kommer du troligtvis att användas för att skapa Java-program med bara en fil - en Java-huvudklassfil. Det är klassen som har den huvudsakliga metoden definierad för startpunkten för ett Java-program.

Klassdefinitionen i nästa steg måste sparas i en separat fil. Det följer samma riktlinjer för namngivning som du använde för huvudklassfilen (dvs filens namn måste matcha klassens namn med filnamnstillägget .java). När vi till exempel gör en bokklass bör följande klassdeklaration sparas i en fil som heter "Book.java".

Data som ett objekt rymmer och hur det manipulerar dessa data specificeras genom skapandet av en klass. Nedan är till exempel en mycket grundläggande definition av en klass för ett bokobjekt:

Fält används för att lagra data för objektet och tillsammans utgör de ett objekts tillstånd. När vi skapar ett bokobjekt skulle det vara meningsfullt att det innehåller information om bokens titel, författare och förläggare:

Fält är bara normala variabler med en viktig begränsning - de måste använda åtkomstmodifieraren "privat". Det privata nyckelordet betyder att dessa variabler endast kan nås från klassen som definierar dem.

instagram viewer

Notera: denna begränsning tillämpas inte av Java-kompilatorn. Du kan skapa en offentlig variabel i din klassdefinition och Java-språket klagar inte över det. Men du kommer att bryta en av de grundläggande principerna för objektorienterad programmering - data inkapsling. Tillståndet för dina objekt måste endast nås genom deras beteenden. Eller för att uttrycka det praktiskt, dina klassfält måste endast nås via dina klassmetoder. Det är upp till dig att verkställa datakapsling av de objekt du skapar.

Konstruktormetoden använder samma namn som klassen (dvs. bok) och måste vara allmänt tillgänglig. Den tar värdena på variablerna som skickas in i den och ställer in värdena på klassfälten; därigenom sätter objektet till det ursprungliga tillståndet.

Beteenden är de handlingar ett objekt kan utföra och skrivs som metoder. Just nu har vi en klass som kan initialiseras men inte gör mycket annat. Låt oss lägga till en metod som heter "displayBookData" som visar aktuell information som finns i objektet:

Vi kan lägga till så många metoder och fält som vi önskar, men för nu ska vi betrakta Book-klassen som komplett. Den har tre fält för att hålla data om en bok, den kan initieras och den kan visa informationen den innehåller.

På vänster sida av likhetstecknet är objektdeklarationen. Det säger att jag vill skapa ett bokobjekt och kalla det "första boken". På höger sida av likhetstecknet är skapandet av en ny instans av ett bokobjekt. Vad det gör är att gå till bokklassdefinitionen och köra koden i konstruktormetoden. Så den nya instansen av bokobjektet kommer att skapas med titeln, författaren och förläggarens fält inställda på "Horton Hears A Who!", "Dr Suess" respektive "Random House". Slutligen sätter likhetstecknet att vårt nya FirstBook-objekt blir den nya förekomsten av bokklassen.

instagram story viewer