java class vs object how use class
I denne vejledning diskuterer vi et af OOPS-koncepterne detaljeret. Vi vil undersøge alt om Java klasse og objekt sammen med eksempler:
Vi ved, at objektorienteret programmering lægger vægt på data og således drejer sig om enheder kaldet objekter. Klasser fungerer som tegninger af disse objekter.
Lad os se, hvordan man opretter en klasse og dens komponenter. Vi lærer også at oprette og initialisere objekter i Java ved hjælp af programmeringseksempler senere i denne vejledning.
=> Besøg her for den eksklusive Java-træningsvejledningsserie.
Hvad du vil lære:
Klasser og objekter i Java
I Java er alle funktioner, attributter, metoder osv. Knyttet til klasser og objekter. Vi kan ikke skrive et Java-program bare med hovedfunktionen uden at erklære en klasse, som vi kan gøre i C ++.
For eksempel, hvis vi vil skrive et program på et køretøj, er et køretøj et realtidsobjekt. Men køretøjer kan være af forskellige typer. Dette betyder, at køretøjet har en typeattribut, der kan antage forskellige værdier som bil, lastbil, scooter, cykel osv.
Så den måde, hvorpå vi udtrykker køretøjsobjektet i Java, er, at vi opretter en klasse 'Vehicle' og derefter definerer dens forskellige attributter. Derefter kan vi erklære forskellige køretøjsklasseobjekter som bil, cykel osv.
Inde i klassen kan vi definere egenskaberne for Vehicle som klasseattributterne (data-medlemmer) og metoder som startVehicle (), stopVehicle () osv.
For at udtrykke selv den mindste enhed i Java på denne måde skal vi først identificere objektet og derefter definere dets tegning eller en klasse.
Så lad os først lære alt om klasser og objekter og derefter gå videre til de andre begreber i OOP i Java.
Klasse i Java
For at udvikle et program i Java bruger vi objekter og klasser. Mens en klasse i Java kun er en logisk enhed, er et objekt i Java både en fysisk og logisk enhed.
Hvad er et objekt i Java?
Et objekt er en enhed, der har en tilstand og udviser adfærd. For eksempel, enhver virkelighed som en pen, en bærbar computer, en mobil, et bord, en stol, en bil osv. er et objekt. Alle disse objekter er enten fysiske (håndgribelige) eller logiske (immaterielle).
De immaterielle objekter er for det meste et flyselskabssystem, banksystem osv. Disse er logiske enheder, der har en bestemt tilstand og adfærd.
Hvert objekt har følgende hovedegenskaber:
- Identitet: Et unikt ID definerer objektets identitet. Dette id ses ikke af den normale bruger, men internt bruger JVM dette ID til entydigt at identificere objektet.
- Stat: Den definerer de nuværende data i objektet eller værdien af objektet.
- Opførsel: Denne funktion repræsenterer et objekts funktionalitet (opførsel). For eksempel, det køretøjsobjekt, vi diskuterede ovenfor, har adfærd som start, stop osv.
Vi vil genoptage objektdefinitionen, når vi definerer klassen.
Så hvad er en klasse?
Vi ved, at hovedkomponenten i objektorienteret programmering er et objekt. Hvis vi ønsker at bygge en bestemt type objekt, har vi brug for en plan. Denne tegning giver os et sæt instruktioner, der hjælper os med at opbygge et objekt.
For eksempel, lad os sige, at vi vil bygge et hus. Huset her er et objekt. For at bygge et hus har vi brug for en indledende plan for huset. Vi kan ikke gå direkte i gang med at bygge huset, som vi vil.
Det er her klasse kommer ind i billedet. Så for at opbygge et objekt eller en virkelig enhed vil vi først have en plan, der bestemmer indholdet og opførelsen af et objekt. Dette er kendt som en klasse i objektorienteret programmering.
Så en klasse kan defineres som “ en tegning eller en skabelon, og den definerer objektets tilstand og opførsel ”.
Vi kan også se klassen som en gruppe af objekter. Denne gruppe har nogle egenskaber, der er almindelige blandt alle objekterne.
standard gateway er ikke tilgængelig windows 10 wifi
Lad os se, hvordan du opretter en klasse i Java.
Sådan oprettes en klasse i Java
Den generelle klassesyntaks for en klassedefinition i Java er:
class extends implements interface_name> { //fields; //constructors //methods; //blocks }
Ovenstående generelle erklæring om en klasse er repræsenteret i nedenstående diagram med et eksempel på en klassedeklaration:
Bemærk, at superklasse og interface i klassedeklarationen er valgfri. Vi kan vælge at have en enkeltstående klasse uden at udvide den fra en anden superklasse eller implementere nogen grænseflade.
Ovenstående generelle definition viste også de komponenter, der kan være til stede i klassedefinitionen.
Komponenter i klassen
Komponenterne i klassen er repræsenteret nedenfor.
Som vist i ovenstående diagram indeholder en Java-klasse følgende komponenter:
- Felter
- Metoder
- Konstruktører
- Blokke
- Indlejret klasse og interface
Vi diskuterer de første tre komponenter næste. Disse komponenter kræves i enhver klasse. Indlejrede klasser og grænseflader er et helt andet emne og vil blive diskuteret i vores senere tutorials.
Før vi begynder en diskussion om klassekomponenter, skal vi først definere en klasse 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); } }
Felter
Felter er variabler eller data i klassen. Felter kaldes også som medlemsvariabler i Java. Vi bruger begreberne felt og variabelt om hverandre.
Normalt er felter i en klasse af to typer:
# 1) Klassevariabler: Klassevariabler erklæres med ordet “statisk”, så de er statiske variabler. Dette betyder, at denne type variabel kun har én kopi pr. Klasse, uanset hvor mange forekomster eller objekter der er til stede for den klasse.
# 2) Instansvariabler: Disse er det modsatte af klassevariabler. Datamedlemmerne kaldes instansvariabler, fordi disse variabler har separat hukommelse tildelt til hver klasseinstans ved kørsel.
I ovenstående klassedefinition har vi vist både klasse- og instansvariabler. Variablen 'banknavn', der er erklæret med en statisk modifikator, er klassevariablen. De to andre variabler 'customer_accNo' og 'customer_name' er instansvariabler.
Bygger
Konstruktører er specielle metoder, der generelt bruges til at initialisere en forekomst af en klasse. Konstruktører har ikke en returtype, de har samme navn som klassen og indeholder måske eller måske ikke parametre.
I ovenstående klassedefinition har vi en konstruktør.
Customer_Account (long accountnum, String accName)
Vi lærer mere om konstruktører i vores efterfølgende tutorials.
Metode
En metode i en Java-klasse er den funktion, der definerer objektets og dets medlemmers opførsel.
En klassemetode oprettes på samme måde, som vi opretter regelmæssige metoder i et program. Inde i klassemetoden kan vi bruge alle de konstruktioner og funktioner, der leveres af Java.
I vores eksempelklassedefinition har vi en 'printInfo' -metode, der viser de forskellige datamedlemmer i klassen.
En Java-klassemetode har normalt følgende prototype:
method_name(parameter list…){ //code blocks }
Klassemetoder tilgås af klasseinstansen ved hjælp af dot-operatoren. Så hvis vi opretter en instans acc af ovenstående klasse 'Customer_Account', kan vi få adgang til printInfo ved hjælp af nedenstående kodelinje.
acc.printInfo();
Hvis access_modifier er statisk, behøver vi ikke en forekomst for at få adgang til metoden. Vi kan bruge klassens navn direkte til at få adgang til metoden som,
Custome_Account.printInfo ();
Eksempel på Java-klasse
Lad os implementere et simpelt eksempel for at demonstrere en klasse og et 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
Ovenstående program erklærer en studenterklasse. Det har tre instansvariabler, nemlig student_id, student_name og student_marks.
Derefter definerer vi hovedklassen, hvor vi erklærer et objekt for elevklassen ved navn student_object. Derefter bruger vi dotoperatoren, får vi adgang til instansvariablerne og udskriver deres værdier.
Ovenstående program er et eksempel på en hovedmetode uden for klassen.
I nedenstående eksempel vil vi have en hovedmetode inden for 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
Ovenstående program er det samme som det foregående program, bortset fra at hovedmetoden ligger inden for studenterklassen.
linket liste i c ++
Objekt i Java
Nu har vi nok viden om klasser i Java, vi kan omdefinere objektet i form af klasse. Så et objekt er “ en forekomst af en klasse ”. Således opretter vi en variabel eller forekomst af typen class_name, og den betegnes som et objekt.
Nogle punkter at huske på et objekt:
- Et objekt ses som en grundlæggende enhed af OOP sammen med klassen.
- Et objekt er en runtime-enhed.
- Et objekt betegnes som en forekomst af en klasse.
- Et objekt har adfærd og tilstand.
- Et objekt tager alle egenskaberne og attributterne for den klasse, som det er en forekomst af. Men til enhver tid har hvert objekt forskellige tilstande eller variable værdier.
- Et objekt bruges til at repræsentere en realtidsenhed i softwareapplikationer.
- En enkelt klasse kan have et vilkårligt antal objekter.
- Objekter interagerer med hinanden ved at påkalde metoder.
Sådan Instantiate et objekt
Erklæring om objektet betegnes også som en instantiering af objekter i Java. Erklæringen af et objekt er den samme som at erklære en variabel.
For eksempel, Klassen Customer_Account, som vi har erklæret ovenfor, kan bruges til at erklære et objekt.
Således erklærer eller instantierer vi objektet med Customer_Account som følger:
Customer_Account account;
Ovenstående erklæring erklærer eller instantierer et objekt med navnet 'konto' i klassen Customer_Account.
Bemærk, at når vi instantierer et objekt fra en klasse, skal klassen strengt være en 'konkret klasse'. Vi kan ikke erklære et objekt fra en abstrakt klasse.
Ovenstående erklæring erklærer kun et objekt. Vi kan ikke bruge denne variabel til at kalde metoder til klassen eller indstille værdier for medlemsvariablerne. Dette skyldes, at vi ikke har tildelt nogen hukommelse til det erklærede objekt.
Så vi er nødt til at oprette et objekt korrekt for at bruge det videre.
Den egentlige oprettelse af et objekt sker ved initialisering af objekter. Når vi har erklæret et objekt, skal vi initialisere det. Så kun vi kan bruge dette objekt til at få adgang til medlemsvariablerne og metoderne i klassen.
Sådan oprettes et objekt
Vi kan oprette et objekt i Java ved hjælp af følgende metoder:
# 1) Brug af et nyt nøgleord
Vi kan initialisere et objekt ved hjælp af et nyt nøgleord. Denne metode er den mest anvendte metode til at oprette et nyt objekt.
For eksempel,givet en klasse ABC, kan vi oprette et nyt klasseobjekt som følger:
ABC myObj = new ABC ();
I ovenstående erklæring er myObj det nye objekt oprettet ved hjælp af den nye operator. Objektet oprettet ved hjælp af denne metode har de indledende værdier for alle datamedlemmer. Konstruktionen ABC () efter det nye nøgleord er standardkonstruktøren for klassen ABC.
Vi kan også definere konstruktører med parametre og kalde den konstruktør med det nye nøgleord, så vi opretter et objekt med de ønskede værdier for datamedlemmer.
# 2) Brug af Class.forName () -metoden
Java leverer en klasse med navnet 'Klasse', der holder al information om klasser og objekter i systemet. Vi kan bruge metoden forName () i klassen 'Klasse' til at oprette et objekt. Vi skal videregive et fuldt kvalificeret klassenavn som et argument til metoden forName.
Derefter kan vi kalde metoden newInstance (), der returnerer forekomsten af klassen.
De følgende kodelinjer viser dette.
ABC myObj = Class.forName (“com.myPackage.ABC”).newInstance();
Ovenstående udsagn opretter et nyt objekt myObj af klasse ABC.
# 3) Ved klon () Metode
Objektklasse i Java giver en klon () -metode, der returnerer klonen eller kopien af det objekt, der er sendt som et argument til klon () -metoden.
For eksempel,
ABC myobj1 = new ABC (); ABC testObj = (ABC) myobj1.clone ();
# 4) Ved deserialisering
Java giver en teknik kaldet deserialisering, hvor vi læser et objekt fra en gemt fil. Vi lærer deserialisering i en separat tutorial.
Sådan initialiseres et objekt
I dette afsnit vil vi diskutere metoderne til initialisering af et objekt i Java. Initialisering henviser til tildeling af værdier til klassemedlemmer. Nedenfor er nogle af de metoder, der bruges til at initialisere objekter i Java.
# 1) Initialiser et objekt gennem en reference
Det oprettede referenceobjekt bruges til at gemme værdier i objektet. Dette gøres simpelthen ved hjælp af en opgaveoperatør.
Initialiseringen af et objekt ved hjælp af reference er vist i programmet nedenfor.
//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
Ovennævnte program erklærer en elevklasse med tre-medlemsvariabler. Derefter opretter vi i objektmetoden et objekt fra elevklassen ved hjælp af det nye nøgleord. Derefter tildeler vi data til hvert af medlemsfelterne for objektet som vist i programmet.
# 2) Initialisering af objekt gennem metode
I dette eksempel opretter vi de to objekter i klassen Student og initialiserer værdien til disse objekter ved at påkalde metoden insertRecord. Metoden insertRecord er en medlemsmetode for 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
hvordan man opretter et binært søgetræ i java
# 3) Initialisering af objekt gennem konstruktør
Vi kan også initialisere et objekt ved hjælp af en konstruktør.
Programmet til at demonstrere brugen af konstruktør er angivet nedenfor.
//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 dette program har studenterklassen en parameteriseret konstruktør, der tager parametrene og tildeler dem til medlemsvariablerne.
Klasse Vs-objekt i Java
Klasse | Objekt |
---|---|
Et klassemedlemfelt har ingen værdier. | Hvert objekt har en kopi af medlemsfelter og deres tilknyttede værdier. |
Klassen er en skabelon eller en plan for oprettelse af objekt. | Objektet er en forekomst af en klasse. |
Klassen tildeler ikke nogen hukommelse, når den oprettes. | Objektet tildeles hukommelse, når det oprettes. |
Klassen er en logisk enhed. | Objektet er en fysisk enhed. |
Klassen erklæres ved hjælp af et klasse nøgleord. | Objekt oprettes ved hjælp af nye, forName () .newInstance (), klon () metoder. |
Klassen er en gruppe af identiske objekter. For eksempel. Klassedyr (). | Objekt er en bestemt enhed. For eksempel. Dyr hund = nye Dyr (); |
Klassen kan kun erklæres én gang. | En klasse kan have et vilkårligt antal forekomster eller objekter. |
Ofte stillede spørgsmål
Q # 1) Hvad er forskellen mellem klasse og objekt?
Svar: En klasse er en skabelon, der bruges til oprettelse af objekter. Et objekt er en forekomst af en klasse. Mens en klasse er en logisk enhed, er et objekt en fysisk enhed. Hvert objekt har en tilstand, hvor alle medlemsvariablerne har specifikke værdier. Klassen har ikke en tilstand.
Q # 2) Hvad indeholder en Java-klasse?
Svar: En Java-klasse, der fungerer som en skabelon eller en tegning til oprettelse af objekter, definerer egenskaber eller felter og adfærd eller metoder.
Spørgsmål nr. 3) Hvorfor bruger vi klasser i Java?
Svar: Ved hjælp af klasser og objekter kan vi modellere de virkelige applikationer i Java og dermed løse dem effektivt. Objekter med en tilstand og adfærd repræsenterer virkelige enheder og klasser fungerer som deres tegninger. Derfor ved at bruge klasser som byggesten kan vi modellere enhver kompleks applikation.
Q # 4) Forklar klasse og objekt med et virkeligt eksempel.
Svar: Hvis vi tager bilen som et objekt, kan en bil have attributter som mærke, farve, motor, kilometertal osv. Det kan også have nogle metoder som start (), stop (), anvend bremser (). Således kan vi modellere en bil til et softwareobjekt. Nu kan bilen have forskellige mærker som Maruti, fiat osv.
Så for at repræsentere alle disse bilmodeller kan vi have en klasseskabelon, der indeholder alle de almindelige attributter og metoder defineret, så vi kan instantiere denne klasse og få vores ønskede bilobjekt.
Således kan en bil fra det virkelige liv let konverteres til et objekt i Java.
Konklusion
I denne vejledning har vi lært detaljerne i klasser og objekter i Java. Vi dækkede definitionen af klasse og objekt. Selvstudiet har en detaljeret diskussion om definition af klassen, klassens komponenter samt eksemplerne på, hvordan man bruger klassen i et program.
Vi lærte også detaljerne om objekter i Java inklusive dens erklæring, oprettelse, initialisering osv. Med passende programmeringseksempler.
Vi udforskede de største forskelle mellem klasse og objekter. I vores næste tutorials vil vi diskutere de typer klasser og konstruktørerne i klassen, hvorefter vi går videre til andre emner.
=> Hold øje med den enkle Java-træningsserie her.
Anbefalet læsning
- Java Basics: Java Syntax, Java Class og Core Java Concepts
- Java-heltal og Java BigInteger-klasse med eksempler
- Hvad er Java Vector | Java Vector Class Tutorial med eksempler
- OOP Java: Introduktion til objektorienteret programmering i Java
- Java Array Class Tutorial - java.util.Arrays Class med eksempler
- Java Scanner-klassevejledning med eksempler
- Objektarray i Java: Sådan oprettes, initialiseres og bruges
- Typer af klasser i Java: Abstrakt, Beton, Endelig, Statisk