java class vs object how use class
I den här handledningen kommer vi att diskutera ett av OOPS-koncepten i detalj. Vi kommer att utforska allt om Java Class och Object tillsammans med exempel:
Vi vet att objektorienterad programmering betonar data och därmed kretsar kring enheter som kallas objekt. Klasser fungerar som ritningar av dessa objekt.
Låt oss se hur man skapar en klass och dess komponenter. Vi kommer också att lära oss att skapa och initiera objekt i Java med hjälp av programmeringsexempel senare i denna handledning.
=> Besök här för den exklusiva Java-utbildningsserien.
Vad du kommer att lära dig:
Klasser och objekt i Java
I Java är alla funktioner, attribut, metoder etc. länkade till klasser och objekt. Vi kan inte skriva ett Java-program bara med huvudfunktionen utan att förklara en klass som vi kan göra i C ++.
Till exempel, om vi vill skriva ett program på ett fordon är ett fordon ett realtidsobjekt. Men fordon kan vara av olika slag. Detta innebär att fordonet har ett typattribut som kan anta olika värden som bil, lastbil, skoter, cykel etc.
Så hur vi uttrycker fordonsobjektet i Java är att vi skapar en klass 'Fordon' och sedan definierar dess olika attribut. Då kan vi deklarera olika fordonsklassföremål som bil, cykel etc.
Inuti klassen kan vi definiera egenskaperna hos Vehicle som klassattribut (data-medlemmar) och metoder som startVehicle (), stopVehicle (), etc.
På det här sättet, för att uttrycka även den minsta av enheten i Java, måste vi först identifiera objektet och sedan definiera dess ritning eller en klass.
Så låt oss först lära oss allt om klasser och objekt och sedan gå vidare till de andra begreppen OOP i Java.
Klass i Java
För att utveckla ett program i Java använder vi oss av objekt och klasser. Medan en klass i Java bara är en logisk enhet, är ett objekt i Java både en fysisk och logisk enhet.
Vad är ett objekt i Java?
Ett objekt är en enhet som har ett tillstånd och uppvisar beteende. Till exempel, varje verklig enhet som en penna, en bärbar dator, en mobil, ett bord, en stol, en bil, etc. är ett objekt. Alla dessa objekt är antingen fysiska (materiella) eller logiska (immateriella).
De immateriella objekten är mestadels ett flygbolagssystem, banksystem etc. Dessa är logiska enheter som har ett särskilt tillstånd och beteende.
Varje objekt har följande huvudegenskaper:
- Identitet: Ett unikt ID definierar objektets identitet. Detta ID ses inte av den vanliga användaren men internt använder JVM detta ID för att identifiera objektet unikt.
- Stat: Den definierar nuvarande data i objektet eller värdet på objektet.
- Beteende: Denna funktion representerar ett objekts funktionalitet (beteende). Till exempel, Fordonsobjektet som vi diskuterade ovan har beteendet som start, stopp, etc.
Vi kommer att granska objektdefinitionen igen när vi definierar klassen.
Så vad är en klass?
Vi vet att huvudkomponenten i objektorienterad programmering är ett objekt. Om vi vill bygga en viss typ av objekt behöver vi en ritning. Denna ritning ger oss en uppsättning instruktioner som hjälper oss att bygga ett objekt.
Till exempel, låt oss säga att vi vill bygga ett hus. Huset här är ett objekt. För att bygga ett hus behöver vi en första ritning för huset. Vi kan inte gå direkt till att bygga huset som vi vill.
Det är här klassen kommer in i bilden. Så för att bygga ett objekt eller en verklig enhet kommer vi först att ha en ritning som bestämmer innehållet och beteendet hos ett objekt. Detta är känt som en klass i objektorienterad programmering.
Så en klass kan definieras som “ en ritning eller en mall och den definierar objektets tillstånd och beteende ”.
Vi kan också se klassen som en grupp objekt. Denna grupp har några egenskaper som är vanliga bland alla objekt.
Låt oss se hur man skapar en klass i Java.
Hur man skapar en klass i Java
Den allmänna klasssyntaxen för en klassdefinition i Java är:
class extends implements interface_name> { //fields; //constructors //methods; //blocks }
Ovanstående allmänna deklaration för en klass representeras i nedanstående diagram med ett exempel på klassdeklaration:
c ++ konvertera char till sträng
Observera att superklass och gränssnitt i klassdeklarationen är valfria. Vi kan välja att ha en fristående klass utan att utvidga den från en annan superklass eller implementera något gränssnitt.
Ovanstående allmänna definition visade också de komponenter som kan finnas i klassdefinitionen.
Komponenter i klass
Komponenterna i klass visas nedan.
Som visas i ovanstående diagram innehåller en Java-klass följande komponenter:
- Fält
- Metoder
- Konstruktörer
- Block
- Kapslad klass och gränssnitt
Vi kommer att diskutera de tre första komponenterna härnäst. Dessa komponenter krävs i valfri klass. Kapslade klasser och gränssnitt är helt andra ämnen och kommer att diskuteras i våra senare handledning.
Innan vi börjar en diskussion om klasskomponenter, ska vi först definiera en klass Customer_Account
class Customer_Account { static String bank_name; //class variable long customer_accountNo; //instance variable String customer_name; //instance variable //constructor Customer_Account (long accountnum, String accName){ customer_accountNo = accountnum; customer_name = accName; } //method void printInfo(){ System.out.println ('Customer Account Details:'); System.out.println ('Customer Account Number: ' + customer_accountNo); System.out.println (' Customer Name: '+customer_name); } }
Fält
Fält är variabler eller data i klassen. Fält kallas också som medlemsvariabler i Java. Vi använder termerna fält och variabla omväxlande.
Vanligtvis är fält i en klass av två typer:
# 1) Klassvariabler: Klassvariabler deklareras med ordet 'statisk' så att de är statiska variabler. Detta innebär att denna typ av variabel bara har en kopia per klass, oavsett hur många instanser eller objekt som finns för den klassen.
# 2) Instansvariabler: Dessa är motsatsen till klassvariabler. Datamedlemmarna kallas instansvariabler eftersom dessa variabler har separat minne tilldelat för varje klassinstans vid körning.
I klassdefinitionen ovan har vi visat både klass- och instansvariabler. Variabeln 'banknamn' som deklareras med en statisk modifierare är klassvariabeln. De andra två variablerna “customer_accNo” och “customer_name” är instansvariabler.
Byggare
Konstruktörer är speciella metoder som vanligtvis används för att initiera en instans av en klass. Konstruktörer har ingen returtyp, de har samma namn som klassen och kan innehålla parametrar eller inte.
I klassdefinitionen ovan har vi en konstruktör.
Customer_Account (long accountnum, String accName)
Vi kommer att lära oss mer om konstruktörer i våra efterföljande handledning.
Metod
En metod i en Java-klass är funktionen som definierar beteendet hos objektet och dess medlemmar.
En klassmetod skapas på samma sätt som vi skapar vanliga metoder i ett program. Inuti klassmetoden kan vi använda alla konstruktioner och funktioner som tillhandahålls av Java.
I vårt exempel på klassdefinition har vi en “printInfo” -metod som visar de olika datamedlemmarna i klassen.
En Java-klassmetod har vanligtvis följande prototyp:
method_name(parameter list…){ //code blocks }
Klassmetoder nås av klassinstansen med hjälp av punktoperatören. Så om vi skapar en instans acc av ovanstående klass 'Customer_Account' kan vi komma åt printInfo med hjälp av nedanstående kodrad.
acc.printInfo();
Om access_modifier är statisk behöver vi inte en instans för att komma åt metoden. Vi kan använda klassnamnet direkt för att komma åt metoden som,
Custome_Account.printInfo ();
Java Class Exempel
Låt oss implementera ett enkelt exempel för att visa en klass och ett objekt i Java.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Produktion
Ovanstående program förklarar en studentklass. Den har tre instansvariabler, dvs. student_id, studentnamn och student_marks.
Sedan definierar vi huvudklassen, där vi förklarar ett objekt av studentklassen med namnet student_object. Sedan använder vi punktoperatören och får åtkomst till instansvariablerna och skriver ut deras värden.
Ovanstående program är ett exempel på en huvudmetod utanför klassen.
I exemplet nedan kommer vi att ha en huvudmetod inom klassen.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Produktion
Ovanstående program är detsamma som det tidigare programmet förutom att huvudmetoden ligger inom studentklassen.
Objekt i Java
Nu har vi tillräckligt med kunskap om klasser i Java, vi kan omdefiniera objektet i termer av klass. Så ett objekt är “ en instans av en klass ”. Således skapar vi en variabel eller instans av typen class_name och den kallas som ett objekt.
Några punkter att komma ihåg om ett objekt:
- Ett objekt ses som en basenhet för OOP tillsammans med klassen.
- Ett objekt är en runtime-enhet.
- Ett objekt benämns som en förekomst av en klass.
- Ett objekt har beteende och tillstånd.
- Ett objekt tar alla egenskaper och attribut för den klass som det är en instans för. Men när som helst har varje objekt olika tillstånd eller variabla värden.
- Ett objekt används för att representera en realtidsenhet i programvaruapplikationer.
- En enda klass kan ha valfritt antal objekt.
- Objekt interagerar med varandra genom att åberopa metoder.
Hur man instantierar ett objekt
Deklaration av objektet kallas också som en instantiering av föremål i Java. Deklarationen av ett objekt är detsamma som att deklarera en variabel.
Till exempel, klassen Customer_Account som vi har deklarerat ovan kan användas för att deklarera ett objekt.
hur man använder en torrentfil
Således förklarar eller instanserar vi objektet för Customer_Account enligt följande:
Customer_Account account;
Ovanstående uttalande deklarerar eller instanserar ett objekt med namnet 'konto' i klassen Customer_Account.
Observera att när vi instanserar ett objekt av en klass, bör klassen strikt vara en 'konkret klass'. Vi kan inte förklara ett objekt av en abstrakt klass.
Ovanstående uttalande förklarar endast ett objekt. Vi kan inte använda denna variabel för att anropa metoder för klassen eller ställa in värden för medlemsvariablerna. Detta beror på att vi inte har tilldelat något minne för det deklarerade objektet.
Så vi måste skapa ett objekt ordentligt för att använda det vidare.
Den faktiska skapandet av ett objekt görs genom initialisering av objekt. När vi väl förklarat ett objekt måste vi initialisera det. Då bara vi kan använda det här objektet för att komma åt medlemsvariablerna och metoderna i klassen.
Hur man skapar ett objekt
Vi kan skapa ett objekt i Java med följande metoder:
# 1) Använda ett nytt nyckelord
Vi kan initialisera ett objekt med ett nytt nyckelord. Den här metoden är den vanligaste metoden för att skapa ett nytt objekt.
Till exempel,givet en klass ABC kan vi skapa ett nytt klassobjekt enligt följande:
ABC myObj = new ABC ();
I ovanstående uttalande är myObj det nya objektet som skapats med den nya operatören. Objektet som skapas med den här metoden har de ursprungliga värdena för alla datamedlemmar. Konstruktionen ABC () efter det nya nyckelordet är standardkonstruktören för klassen ABC.
Vi kan också definiera konstruktörer med parametrar och kalla den konstruktören med det nya nyckelordet så att vi skapar ett objekt med önskade värden för datamedlemmar.
# 2) Använda metoden Class.forName ()
Java tillhandahåller en klass med namnet 'Klass' som håller all information om klasser och objekt i systemet. Vi kan använda metoden forName () i klassen 'Klass' för att skapa ett objekt. Vi måste skicka ett fullt kvalificerat klassnamn som ett argument till metoden forName.
Då kan vi ringa metoden newInstance () som returnerar förekomsten av klassen.
Följande kodrader visar detta.
ABC myObj = Class.forName (“com.myPackage.ABC”).newInstance();
Ovanstående uttalande skapar ett nytt objekt myObj av klass ABC.
# 3) Genom klon () Metod
Objektklass i Java ger en klon () -metod som returnerar klonen eller kopian av objektet som skickats som ett argument till klonmetoden ().
Till exempel,
ABC myobj1 = new ABC (); ABC testObj = (ABC) myobj1.clone ();
# 4) Genom deserialisering
Java tillhandahåller en teknik som kallas deserialisering där vi läser ett objekt från en sparad fil. Vi lär oss deserialisering i en separat handledning.
Hur man initierar ett objekt
I det här avsnittet kommer vi att diskutera metoderna för att initialisera ett objekt i Java. Initiering avser tilldelning av värden till datamedlemmar i klassen. Nedan följer några av metoderna som används för att initialisera objekt i Java.
# 1) Initiera ett objekt genom en referens
Det skapade referensobjektet används för att lagra värden i objektet. Detta görs helt enkelt genom att använda en uppdragsoperatör.
Initieringen av ett objekt med referens visas i programmet nedan.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //initialization of class members using reference student_object.student_id = 101; student_object.student_name = 'Elena'; student_object.student_marks = 89.93; //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Produktion
Ovanstående program förklarar en studentklass med variabler med tre medlemmar. Sedan i huvudmetoden skapar vi ett objekt av studentklassen med det nya nyckelordet. Sedan tilldelar vi data till vart och ett av objektfältet i objektet som visas i programmet.
# 2) Initialisering av objekt genom metod
I det här exemplet skapar vi de två objekten i studentklassen och initierar värdet till dessa objekt genom att anropa metoden insertRecord. Metoden insertRecord är en medlemsmetod för klassen Student.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; //method to initialize class data members void initialize_object(int id, String name, double marks) { student_id = id; student_name = name; student_marks = marks; } } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //initialization of class members through method student_object.initialize_object(27, 'Stefan', 78.86); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Produktion
# 3) Initialisering av objekt genom konstruktör
Vi kan också initiera ett objekt med hjälp av en konstruktör.
Programmet för att demonstrera användningen av konstruktör ges nedan.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; //constructor for initialization Student(int id, String name, double marks) { student_id = id; student_name = name; student_marks = marks; } } class Main{ public static void main(String args()){ //create a Student object using new operator and initialize it with constructor Student student_object = new Student(27, 'Stefan', 78.86); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Produktion
I detta program har studentklassen en parameteriserad konstruktör som tar parametrarna och tilldelar dem till medlemsvariablerna.
Klass Vs-objekt i Java
Klass | Objekt |
---|---|
Ett klassmedelsfält har inga värden. | Varje objekt har en kopia av medlemsfält och tillhörande värden. |
Klass är en mall eller en ritning för att skapa objekt. | Objektet är en förekomst av en klass. |
Klassen tilldelar inte något minne när det skapas. | Objektet tilldelas minne när det skapas. |
Klassen är en logisk enhet. | Objektet är en fysisk enhet. |
Klass deklareras med hjälp av ett klassnyckelord. | Objekt skapas med nya metoder för forName () .newInstance (), klon (). |
Klass är en grupp identiska objekt. T.ex. Klassdjur (). | Objekt är en specifik enhet. T.ex. Djurhund = nya Djur (); |
Klassen kan bara deklareras en gång. | En klass kan ha valfritt antal förekomster eller objekt. |
Vanliga frågor
F # 1) Vad är skillnaden mellan klass och objekt?
Svar: En klass är en mall som används för att skapa objekt. Ett objekt är en förekomst av en klass. Medan en klass är en logisk enhet är ett objekt en fysisk enhet. Varje objekt har ett tillstånd där alla medlemsvariabler har specifika värden. Klassen har ingen stat.
vad kan jag öppna en eps-fil med
F # 2) Vad innehåller en Java-klass?
Svar: En Java-klass som fungerar som en mall eller en ritning för att skapa objekt definierar egenskaper eller fält och beteenden eller metoder.
F # 3) Varför använder vi klasser i Java?
Svar: Med hjälp av klasser och objekt kan vi modellera de verkliga applikationerna i Java och därmed lösa dem effektivt. Objekt med ett tillstånd och beteende representerar verkliga enheter och klasser fungerar som sina ritningar. Genom att använda klasser som byggstenar kan vi därför modellera alla komplexa applikationer.
F # 4) Förklara klass och objekt med ett verkligt exempel.
Svar: Om vi tar bilen som ett objekt kan en bil ha attribut som märke, färg, motor, körsträcka etc. Det kan också ha några metoder som start (), stopp (), applicera bromsar (). Således kan vi modellera en bil till ett programvaruobjekt. Nu kan bilen ha olika märken som Maruti, fiat, etc.
Så för att representera alla dessa bilmodeller kan vi ha en klassmall som innehåller alla vanliga attribut och metoder definierade så att vi kan starta den här klassen och få vårt önskade bilobjekt.
Således kan en verklig objektbil enkelt omvandlas till ett objekt i Java.
Slutsats
I denna handledning har vi lärt oss detaljerna i klasser och objekt i Java. Vi täckte definitionen av klass och objekt. Självstudien har en detaljerad diskussion om hur man definierar klassen, klassens komponenter samt exemplen på hur man använder klassen i ett program.
Vi lärde oss också detaljerna om objekt i Java inklusive dess deklaration, skapande, initialisering etc. med lämpliga programmeringsexempel.
Vi undersökte de viktigaste skillnaderna mellan klass och objekt. I våra nästa handledning kommer vi att diskutera vilka typer av klasser och konstruktörer i klassen, varefter vi kommer att gå vidare till andra ämnen.
=> Se upp den enkla Java-träningsserien här.
Rekommenderad läsning
- Java Basics: Java Syntax, Java Class och Core Java Concepts
- Java-heltal och Java BigInteger-klass med exempel
- Vad är Java Vector | Java Vector Class Tutorial med exempel
- OOP Java: Introduktion till objektorienterad programmering i Java
- Java Array Class Tutorial - java.util.Arrays Class med exempel
- Java Scanner-klasshandledning med exempel
- Objektuppsättning i Java: Hur man skapar, initierar och använder
- Typer av klasser i Java: Abstrakt, Betong, Slutlig, Statisk