Java – Objekt och klasser
Java är ett objektorienterat språk. Som ett språk som har den objektorienterade funktionen stöder Java följande grundläggande begrepp –
- Polymorfism
- Arv
- Inkapsling
- Abstraktion
- Klasser
- Objekt
- Instans
- Metod
- Meddelande skickas
I detta kapitel kommer vi att undersöka begreppen – Klasser och objekt.
-
Objekt – Objekt har tillstånd och beteenden. Exempel: En hund har tillstånd – färg, namn, ras såväl som beteenden – viftande i svansen, skällande, ätande. Ett objekt är en förekomst av en klass.
-
Klass – En klass kan definieras som en mall / ritning som beskriver det beteende / tillstånd som objektet av dess typ stöder. / p>
Objekt i Java
Låt oss nu titta djupt in i vad som är objekt. Om vi betraktar den verkliga världen kan vi hitta många föremål runt omkring oss, bilar, hundar, människor etc. Alla dessa objekt har ett tillstånd och ett beteende.
Om vi betraktar en hund, då är dess tillstånd är – namn, ras, färg och beteende är – skällande, viftande svans, löpande.
Om du jämför programvaruobjektet med ett verkligt objekt har de mycket liknande egenskaper.
Programvaruobjekt har också ett tillstånd och ett beteende. Ett programvaruobjekts tillstånd lagras i fält och beteende visas via metoder.
Så vid mjukvaruutveckling fungerar metoder på ett objekts interna tillstånd och kommunikation mellan objekt och objekt sker via metoder .
Klasser i Java
En klass är en ritning från vilken enskilda objekt skapas.
Nedan följer ett exempel på en klass.
Exempel
public class Dog { String breed; int age; String color; void barking() { } void hungry() { } void sleeping() { }}
En klass kan innehålla någon av följande variabeltyper.
-
Lokala variabler – variabler definierade inuti metoder, konstruktörer eller block kallas lokala variabler. Variabeln kommer att deklareras och initialiseras inom metoden och variabeln kommer att förstöras när metoden har slutförts.
-
Instansvariabler – Instansvariabler är variabler inom en klass men utanför vilken metod som helst. Dessa variabler initialiseras när klassen instansieras. Instansvariabler kan nås inifrån vilken metod, konstruktör eller block som helst av den specifika cla ss.
-
Klassvariabler – Klassvariabler är variabler som deklarerats inom en klass, utanför vilken metod som helst, med det statiska nyckelordet.
En klass kan ha valfritt antal metoder för att komma åt värdet av olika typer av metoder. I ovanstående exempel är skällande (), hungrig () och sovande () metoder.
Nedan följer några av de viktiga ämnen som måste diskuteras när man tittar på klasserna i Java-språket.
Konstruktörer
När man diskuterar om klasser, skulle ett av de viktigaste delämnena vara konstruktörer. Varje klass har en konstruktör. Om vi inte uttryckligen skriver en konstruktör för en klass bygger Java-kompilatorn en standardkonstruktör för den klassen.
Varje gång ett nytt objekt skapas kommer åtminstone en konstruktör att åberopas. Huvudregeln för konstruktörer är att de ska ha samma namn som klassen. En klass kan ha mer än en konstruktör.
Följande är ett exempel på en konstruktör –
Exempel
public class Puppy { public Puppy() { } public Puppy(String name) { // This constructor has one parameter, name. }}
Java stöder också Singleton-klasser där du bara kan skapa en instans av en klass.
Obs! Vi har två olika typer av konstruktörer. Vi ska diskutera konstruktörer i detalj i de efterföljande kapitlen.
Skapa ett objekt
Som tidigare nämnts tillhandahåller en klass ritningar för objekt. Så i princip skapas ett objekt från en klass. I Java används det nya nyckelordet för att skapa nya objekt.
Det finns tre steg när du skapar ett objekt från en klass –
-
Deklaration – En variabeldeklaration med ett variabelt namn med en objekttyp.
-
Instantiering – Det ”nya” nyckelordet används för att skapa objektet.
-
Initiering – Det ”nya” nyckelordet följs av ett samtal till en konstruktör. Det här samtalet initialiserar det nya objektet.
Följande är ett exempel på att skapa ett objekt –
Exempel
Om vi sammanställer och kör ovanstående program, då kommer det att ge följande resultat –
Output
Passed Name is :tommy
Åtkomst till instansvariabler och metoder
Instansvariabler och metoder nås via skapade objekt. För att komma åt en instansvariabel är följande den fullständigt kvalificerade sökvägen –
Exempel
Detta exempel förklarar hur du får åtkomst till instansvariabler och metoder för en klass.
Om vi kompilerar och kör programmet ovan kommer det att ge följande resultat –
Output
Name chosen is :tommyPuppy"s age is :2Variable Value :2
Källfilsdeklarationsregler
Som den sista delen av detta avsnitt, låt oss nu titta på källfilsdeklarationsreglerna. Dessa regler är väsentliga när deklarerar klasser, importuttalanden och paketuttalanden i en källfil.
-
Det kan bara finnas en offentlig klass per källfil.
-
En källfil kan ha flera icke-offentliga klasser.
-
Det offentliga klassnamnet bör också vara namnet på källfilen som ska läggas till av .java i slutet. Till exempel: klassnamnet är offentlig klass Anställd {} då ska källfilen vara som Employee.java.
-
Om klassen definieras i ett paket, ska paketdeklarationen vara det första uttalandet i källfilen.
-
Om importdeklarationer finns måste de skrivas mellan paketdeklarationen och klassdeklaration. Om det inte finns några paketuttalanden bör importuttalandet vara den första raden i källfilen.
-
Import- och paketuttalanden kommer att innebära för alla klasser som finns i källfilen . Det är inte möjligt att deklarera olika import- och / eller paketuttalanden till olika klasser i källfilen.
Klasserna har flera åtkomstnivåer och det finns olika typer av klasser; abstrakta klasser, slutklasser etc. Vi kommer att förklara om allt detta i kapitlet om åtkomstmodifierare.
Förutom de ovan nämnda typerna av klasser har Java också några specialklasser som kallas Inner class och Anonymous classes.
Java-paket
Med enkla ord är det ett sätt att kategorisera klasserna och gränssnitten. När du utvecklar applikationer i Java kommer hundratals klasser och gränssnitt att skrivas, varför det är ett måste att kategorisera dessa klasser och göra livet mycket enklare.
Importera uttalanden
I Java om en fullt kvalificerat namn, som inkluderar paketet och klassnamnet ges, då kan kompilatorn enkelt hitta källkoden eller klasserna. Importuttalande är ett sätt att ge rätt plats för kompilatorn för att hitta den specifika klassen.
Till exempel skulle följande rad be kompilatorn att ladda alla tillgängliga klasser i katalogen java_installation / java / io –
import java.io.*;
En enkel fallstudie
För vår fallstudie kommer vi att skapa två klasser. De är anställda och anställdtest.
Öppna först anteckningsboken och lägg till följande kod. Kom ihåg att detta är anställdklassen och klassen är en allmän klass. Spara nu den här källfilen med namnet Employee.java.
Medarbetarklassen har fyra instansvariabler – namn, ålder, beteckning och lön. Klassen har en uttryckligen definierad konstruktör, som tar en parameter.
Exempel
Som nämnts tidigare i den här självstudien börjar bearbetningen från huvudmetoden. Därför bör det finnas en huvudmetod för att vi ska kunna köra denna medarbetarklass och objekt ska skapas. Vi kommer att skapa en separat klass för dessa uppgifter.
Nedan följer klassen EmployeeTest, som skapar två instanser av klassen Employee och åberopar metoderna för varje objekt för att tilldela värden för varje variabel.
Spara följande kod i EmployeeTest.java-filen.
Kompilera nu båda klasserna och kör sedan EmployeeTest för att se resultatet enligt följande –
Output
Vad är nästa?
I nästa session kommer vi att diskutera de grundläggande datatyperna i Java och hur de kan användas när Java-applikationer utvecklas.