java class vs object how use class
En aquest tutorial, parlarem detalladament d’un dels conceptes d’OOPS. Explorarem tot sobre Java Class i Object juntament amb exemples:
Sabem que la programació orientada a objectes emfatitza les dades i, per tant, gira al voltant d’entitats anomenades objectes. Les classes actuen com a plànols d’aquests objectes.
Vegem com crear una classe i els seus components. També aprendrem a crear i inicialitzar objectes a Java amb l'ajut d'exemples de programació més endavant en aquest tutorial.
=> Visiteu aquí la sèrie exclusiva de cursos de formació de Java.
Què aprendreu:
Classes i objectes a Java
A Java, totes les funcions, atributs, mètodes, etc. estan vinculats a classes i objectes. No podem escriure un programa Java només amb la funció principal sense declarar una classe de la manera que podem fer a C ++.
Per exemple, si volem escriure un programa en un vehicle, un vehicle és un objecte en temps real. Però els vehicles poden ser de diversos tipus. Això significa que el vehicle té un atribut de tipus que pot assumir diversos valors com el cotxe, el camió, el patinet, la bicicleta, etc.
Així doncs, la manera d’expressar l’objecte del vehicle a Java és crear una classe “Vehicle” i definir-ne els diferents atributs. A continuació, podem declarar diversos objectes de la classe Vehicle com cotxe, bicicleta, etc.
Dins de la classe, podem definir les propietats de Vehicle com els atributs de la classe (membres de les dades) i mètodes com startVehicle (), stopVehicle (), etc.
D’aquesta manera, per expressar fins i tot l’entitat més petita a Java, primer hem d’identificar l’objecte i després definir-ne el pla o una classe.
Per tant, primer aprenem tot sobre les classes i els objectes i després passem als altres conceptes de POO a Java.
Classe en Java
Per desenvolupar un programa en Java, fem ús d’objectes i classes. Tot i que una classe a Java només és una unitat lògica, un objecte a Java és alhora una entitat física i lògica.
Què és un objecte a Java?
Un objecte és una entitat que té un estat i presenta un comportament. Per exemple, qualsevol entitat de la vida real com un bolígraf, un ordinador portàtil, un mòbil, una taula, una cadira, un cotxe, etc. és un objecte. Tots aquests objectes són físics (tangibles) o lògics (intangibles).
Els objectes intangibles són principalment un sistema de línies aèries, un sistema bancari, etc. Són entitats lògiques que tenen un estat i un comportament particulars.
Tots els objectes tenen les següents característiques principals:
- Identitat: Un identificador únic defineix la identitat de l'objecte. Aquest usuari no veu aquest identificador, però internament la JVM utilitza aquest identificador per identificar de manera única l'objecte.
- Estat: Defineix les dades actuals a l'objecte o el valor de l'objecte.
- Comportament: Aquesta característica representa la funcionalitat (comportament) d'un objecte. Per exemple, l'objecte Vehicle que hem comentat anteriorment té el comportament com a arrencada, aturada, etc.
Revisarem la definició d'objecte quan definim la classe.
Llavors, què és una classe?
Sabem que el component principal de la programació orientada a objectes és un objecte. Si volem construir un tipus d’objecte específic, necessitem un pla. Aquest pla ens proporcionarà un conjunt d’instruccions que ens ajudaran a construir un objecte.
Per exemple, diguem que volem construir una casa. La casa aquí és un objecte. Per construir una casa necessitem un pla inicial per a la casa. No podem construir directament la casa com vulguem.
Aquí és on entra la classe. Per tant, per construir un objecte o una entitat de la vida real, primer tindrem un pla que determini el contingut i el comportament d’un objecte. Això es coneix com una classe de programació orientada a objectes.
Per tant, una classe es pot definir com “ un plànol o una plantilla i defineix l’estat i el comportament de l’objecte '.
També podem veure la classe com un grup d’objectes. Aquest grup té algunes propietats que són comunes entre tots els objectes.
Vegem com crear una classe a Java.
Com es crea una classe a Java
La sintaxi general de classe d'una definició de classe a Java és:
class extends implements interface_name> { //fields; //constructors //methods; //blocks }
La declaració general anterior d’una classe es representa al diagrama següent amb un exemple de declaració de classe:
Tingueu en compte que la superclasse i la interfície de la declaració de classe són opcionals. Podem optar per tenir una classe independent sense ampliar-la des d’una altra superclasse ni implementar cap interfície.
La definició general anterior també mostrava els components que poden estar presents a la definició de classe.
Components de la classe
Els components de la classe es representen a continuació.
Com es mostra al diagrama anterior, una classe Java conté els components següents:
- Camps
- Mètodes
- Constructors
- Blocs
- Classe i interfície imbricades
A continuació parlarem dels tres primers components. Aquests components són obligatoris en qualsevol classe. Les classes i les interfícies imbricades són un tema totalment diferent i es parlarà en els nostres tutorials posteriors.
Abans de començar un debat sobre els components de la classe, primer definim una classe 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); } }
Camps
Els camps són variables o dades de la classe. Els camps també es diuen com a variables membres a Java. Utilitzem els termes camp i variable indistintament.
Normalment, els camps d'una classe són de dos tipus:
# 1) Variables de classe: Les variables de classe es declaren amb la paraula 'estàtica' de manera que siguin variables estàtiques. Això significa que aquest tipus de variable només té una còpia per classe, independentment de quantes instàncies o objectes hi hagi per a aquesta classe.
# 2) Variables d'instància: Són el contrari de les variables de classe. Els membres de les dades s'anomenen variables d'instància perquè aquestes variables tenen assignada memòria independent per a cada instància de classe en temps d'execució.
A la definició de classe anterior, hem mostrat variables de classe i d'instància. La variable 'nom_banc' declarada amb un modificador estàtic és la variable de classe. Les altres dues variables 'client_accNo' i 'client_nom' són variables d'instància.
constructor
Els constructors són mètodes especials que generalment s’utilitzen per inicialitzar una instància d’una classe. Els constructors no tenen un tipus de retorn, tenen el mateix nom que la classe i poden contenir paràmetres o no.
A la definició de classe anterior, tenim un constructor.
Customer_Account (long accountnum, String accName)
Aprendrem més sobre els constructors en els nostres tutorials posteriors.
Mètode
Un mètode en una classe Java és la funció que defineix el comportament de l'objecte i els seus membres.
Es crea un mètode de classe de la mateixa manera que creem mètodes regulars en un programa. Dins del mètode de classe, podem utilitzar totes les construccions i funcions proporcionades per Java.
En el nostre exemple de definició de classe, tenim un mètode 'printInfo' que mostra els diversos membres de les dades de la classe.
Un mètode de classe Java sol tenir el prototip següent:
method_name(parameter list…){ //code blocks }
La instància de classe accedeix als mètodes de classe mitjançant l'operador de punts. Per tant, si creem una instància acc de la classe anterior 'Customer_Account', podem accedir a printInfo mitjançant la línia de codi següent.
acc.printInfo();
Si l'access_modifier és estàtic, no necessitem cap instància per accedir al mètode. Podem utilitzar el nom de la classe directament per accedir al mètode,
Custome_Account.printInfo ();
Exemple de classe Java
Implantem un exemple senzill per demostrar una classe i un objecte a 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); } }
Sortida
El programa anterior declara una classe Student. Té tres variables d’instància, és a dir. identificador_estudiant, nom_estudiant i marques_estudiant.
A continuació, definim la classe Main, en la qual declarem un objecte de la classe Student anomenat student_object. A continuació, mitjançant l’operador de punts, accedim a les variables d’instància i imprimim els seus valors.
El programa anterior és un exemple d’un mètode principal fora de la classe.
A l'exemple següent tindrem un mètode principal dins de la classe.
//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); } }
Sortida
El programa anterior és el mateix que el programa anterior, tret que el mètode principal es troba dins de la classe Student.
Objecte a Java
Ara, tenim prou coneixement sobre les classes a Java, podem redefinir l’objecte en termes de classe. Per tant, un objecte és “ una instància d'una classe ”. Així, creem una variable o instància de tipus class_name i es denomina objecte.
Alguns punts que cal recordar sobre un objecte:
- Un objecte es veu com una unitat bàsica de POO juntament amb la classe.
- Un objecte és una unitat d'execució.
- Un objecte es denomina instància d'una classe.
- Un objecte té comportament i estat.
- Un objecte pren totes les propietats i atributs de la classe de la qual és una instància. Però en qualsevol moment, cada objecte té estats o valors variables diferents.
- Un objecte s’utilitza per representar una entitat en temps real en aplicacions de programari.
- Una sola classe pot tenir qualsevol nombre d'objectes.
- Els objectes interactuen entre si mitjançant la invocació de mètodes.
Com instanciar un objecte
La declaració de l'objecte també es denomina instanciació d'objectes a Java. La declaració d’un objecte és la mateixa que declarar una variable.
Per exemple, la classe Customer_Account que hem declarat anteriorment es pot utilitzar per declarar un objecte.
Per tant, declarem o instanciem l'objecte de Customer_Account de la manera següent:
Customer_Account account;
La declaració anterior declara o crea un instant un objecte anomenat 'compte' de la classe Customer_Account.
Tingueu en compte que quan instanciem un objecte d'una classe, la classe hauria de ser estrictament una 'classe concreta'. No podem declarar un objecte d’una classe abstracta.
La sentència anterior només declara un objecte. No podem utilitzar aquesta variable per cridar mètodes de la classe o establir valors de les variables membres. Això es deu al fet que no hem assignat cap memòria per a l'objecte declarat.
Per tant, hem de crear correctament un objecte per utilitzar-lo més.
La creació real d’un objecte es realitza mitjançant la inicialització d’objectes. Un cop declarem un objecte, hem d’inicialitzar-lo. Aleshores només podem utilitzar aquest objecte per accedir a les variables i mètodes membres de la classe.
Com es crea un objecte
Podem crear un objecte a Java utilitzant els mètodes següents:
# 1) Ús d'una nova paraula clau
Podem inicialitzar un objecte mitjançant una paraula clau nova. Aquest mètode és el mètode més utilitzat per crear un objecte nou.
Per exemple,donada una classe ABC, podem crear un nou objecte de classe de la següent manera:
ABC myObj = new ABC ();
A la declaració anterior, myObj és el nou objecte creat amb el nou operador. L'objecte creat mitjançant aquest mètode té els valors inicials de tots els membres de les dades. El constructe ABC () que segueix la nova paraula clau és el constructor per defecte de la classe ABC.
També podem definir constructors amb paràmetres i anomenar-lo amb la nova paraula clau de manera que creem un objecte amb els valors desitjats dels membres de les dades.
# 2) Utilitzant el mètode Class.forName ()
Java proporciona una classe anomenada 'Class' que guarda tota la informació sobre classes i objectes del sistema. Podem utilitzar el mètode forName () de la classe ‘Class’ per crear un objecte. Hem de passar un nom de classe completament qualificat com a argument al mètode forName.
Llavors podem trucar al mètode newInstance () que retornarà la instància de la classe.
Les línies de codi següents ho mostren.
ABC myObj = Class.forName (“com.myPackage.ABC”).newInstance();
La declaració anterior crearà un nou objecte myObj de la classe ABC.
# 3) Per mètode clone ()
La classe d'objectes de Java proporciona un mètode clone () que retorna el clon o la còpia de l'objecte passat com a argument al mètode clone ().
Per exemple,
ABC myobj1 = new ABC (); ABC testObj = (ABC) myobj1.clone ();
# 4) Per deserialització
Java proporciona una tècnica anomenada deserialització en què llegim un objecte d’un fitxer desat. Aprendrem la deserialització en un tutorial separat.
Com inicialitzar un objecte
En aquesta secció, parlarem dels mètodes per inicialitzar un objecte a Java. La inicialització fa referència a l’assignació de valors als membres de les dades de la classe. A continuació es detallen alguns dels mètodes que s’utilitzen per inicialitzar objectes a Java.
# 1) Inicialitzar un objecte mitjançant una referència
L'objecte de referència creat s'utilitza per emmagatzemar valors a l'objecte. Això es fa simplement utilitzant un operador d'assignació.
La inicialització d'un objecte mitjançant la referència es mostra al programa següent.
//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); } }
Sortida
El programa anterior declara una classe Student amb variables de tres membres. A continuació, al mètode principal, creem un objecte de la classe Student amb la nova paraula clau. A continuació, assignem dades a cadascun dels camps membres de l'objecte tal com es mostra al programa.
# 2) Inicialització de l’objecte mitjançant el mètode
En aquest exemple, estem creant els dos objectes de la classe Student i inicialitzant el valor d’aquests objectes invocant el mètode insertRecord. El mètode insertRecord és un mètode membre de la classe 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); } }
Sortida
# 3) Inicialització de l’objecte mitjançant Constructor
També podem inicialitzar un objecte mitjançant un constructor.
A continuació es mostra el programa per demostrar l’ús del constructor.
//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); } }
Sortida
En aquest programa, la classe `Student té un constructor parametritzat que pren els paràmetres i els assigna a les variables membres.
Objecte de classe Vs a Java
Classe | Objecte |
---|---|
Un camp membre de la classe no té cap valor. | Tots els objectes tenen una còpia dels camps membres i els seus valors associats. |
Class és una plantilla o un pla per a la creació d'objectes. | L'objecte és una instància d'una classe. |
La classe no assigna cap memòria quan es crea. | L'objecte té assignada memòria quan es crea. |
La classe és una entitat lògica. | L'objecte és una entitat física. |
La classe es declara mitjançant una paraula clau de classe. | L’objecte es crea mitjançant mètodes nous, forName () .newInstance (), clone (). |
Class és un grup d'objectes idèntics. Per exemple. Animals de classe (). | L'objecte és una entitat específica. Per exemple. Animals gos = Animals nous (); |
La classe només es pot declarar una vegada. | Una classe pot tenir qualsevol nombre d’instàncies o objectes. |
Preguntes freqüents
P # 1) Quina diferència hi ha entre classe i objecte?
Resposta: Una classe és una plantilla que s’utilitza per a la creació d’objectes. Un objecte és una instància d'una classe. Tot i que una classe és una entitat lògica, un objecte és una entitat física. Cada objecte té un estat en què totes les variables membres tenen valors específics. La classe no té estat.
Q # 2) Què conté una classe Java?
Resposta: Una classe Java que actua com a plantilla o model per crear objectes defineix propietats o camps i comportaments o mètodes.
P # 3) Per què fem servir Classes a Java?
Resposta: Mitjançant classes i objectes podem modelar les aplicacions del món real a Java i així resoldre-les de manera eficient. Els objectes amb un estat i un comportament representen entitats del món real i les classes actuen com els seus plànols. Per tant, utilitzant classes com a blocs de construcció podem modelar qualsevol aplicació complexa.
Q # 4) Expliqueu la classe i l'objecte amb un exemple de la vida real.
Resposta: Si prenem el cotxe com a objecte, un cotxe pot tenir atributs com ara marca, color, motor, quilometratge, etc. També pot tenir alguns mètodes com start (), stop (), applybrakes (). Així podem modelar un cotxe en un objecte de programari. Ara el cotxe pot tenir diverses marques com Maruti, Fiat, etc.
Per representar tots aquests models de cotxes, podem tenir una plantilla de classe que contindrà tots els atributs i mètodes comuns definits de manera que puguem instanciar aquesta classe i obtenir el nostre objecte de cotxe desitjat.
Així, un cotxe objecte de la vida real es pot convertir fàcilment en un objecte a Java.
Conclusió
En aquest tutorial, hem après els detalls de classes i objectes a Java. Hem tractat la definició de classe i objecte. El tutorial té una discussió detallada sobre la definició de la classe, els components de la classe, així com els exemples de com utilitzar la classe en un programa.
També vam aprendre els detalls dels objectes a Java, inclosa la seva declaració, creació, inicialització, etc., amb exemples de programació adequats.
Hem explorat les principals diferències entre classe i objectes. En els nostres propers tutorials, analitzarem els tipus de classes i els constructors a classe, seguint els quals passarem a altres temes.
=> Vigileu aquí les sèries de formació Java senzilles.
la cua és abstracta
Lectura recomanada
- Conceptes bàsics de Java: sintaxi de Java, Java Class i conceptes bàsics de Java
- Java Integer i Java BigInteger Class amb exemples
- Què és Java Vector | Tutorial de Java Vector Class amb exemples
- OOP Java: Introducció a la programació orientada a objectes a Java
- Tutorial de classe Java Array: classe java.util.Arrays amb exemples
- Tutorial de classe de Java Scanner amb exemples
- Matriu d'objectes a Java: Com crear, inicialitzar i utilitzar
- Tipus de classes en Java: resum, concret, final, estàtic