logo

Objectes i classes en Java

  1. Objecte en Java
  2. Classe en Java
  3. Variable d'instància a Java
  4. Mètode en Java
  5. Exemple d'objecte i classe que manté els registres de l'alumne
  6. Objecte anònim

En aquesta pàgina, coneixerem els objectes i les classes Java. En la tècnica de programació orientada a objectes, dissenyem un programa utilitzant objectes i classes.

Un objecte a Java és una entitat física i una entitat lògica, mentre que una classe a Java només és una entitat lògica.

Què és un objecte en Java

objecte en Java

Una entitat que té estat i comportament es coneix com a objecte, per exemple, cadira, bicicleta, retolador, bolígraf, taula, cotxe, etc. Pot ser físic o lògic (tangible i intangible). L'exemple d'objecte intangible és el sistema bancari.

Un objecte té tres característiques:

    Estat:representa les dades (valor) d'un objecte.Comportament:representa el comportament (funcionalitat) d'un objecte com ara dipositar, retirar, etc.Identitat:Una identitat d'objecte normalment s'implementa mitjançant un ID únic. El valor de l'ID no és visible per a l'usuari extern. Tanmateix, la JVM l'utilitza internament per identificar cada objecte de manera única.
Característiques d'Object a Java

Per exemple, la ploma és un objecte. El seu nom és Reynolds; el color és blanc, conegut com el seu estat. S'utilitza per escriure, per tant escriure és el seu comportament.

Un objecte és una instància d'una classe. Una classe és una plantilla o plànol a partir de la qual es creen objectes. Per tant, un objecte és la instància (resultat) d'una classe.

Definicions d'objectes:

  • Un objecte és una entitat del món real .
  • Un objecte és una entitat en temps d'execució .
  • L'objecte és una entitat que té estat i comportament .
  • L'objecte és una instància d'una classe .

Què és una classe en Java

Una classe és un grup d'objectes que tenen propietats comunes. És una plantilla o plànol a partir de la qual es creen objectes. És una entitat lògica. No pot ser físic.

Una classe en Java pot contenir:

    Camps Mètodes Constructors Blocs Classe imbricada i interfície
Classe en Java

Sintaxi per declarar una classe:

 class { field; method; } 

Variable d'instància a Java

Una variable que es crea dins de la classe però fora del mètode es coneix com a variable d'instància. La variable d'instància no obté memòria en temps de compilació. Obté memòria en temps d'execució quan es crea un objecte o instància. És per això que es coneix com a variable d'instància.


Mètode en Java

A Java, un mètode és com una funció que s'utilitza per exposar el comportament d'un objecte.

Avantatge del mètode

  • Reutilitzabilitat del codi
  • Optimització del codi

nova paraula clau a Java

La paraula clau new s'utilitza per assignar memòria en temps d'execució. Tots els objectes obtenen memòria a l'àrea de memòria Heap.


Objecte i classe Exemple: principal dins de la classe

En aquest exemple, hem creat una classe d'estudiant que té dos membres de dades id i nom. Estem creant l'objecte de la classe Student amb una paraula clau nova i imprimint el valor de l'objecte.

Aquí, estem creant un mètode main() dins de la classe.

Fitxer: Student.java

 //Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id;//field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student();//creating an object of Student //Printing values of the object System.out.println(s1.id);//accessing member through reference variable System.out.println(s1.name); } } 
Prova-ho ara

Sortida:

 0 null 

Objecte i classe Exemple: principal fora de la classe

En el desenvolupament en temps real, creem classes i les fem servir des d'una altra classe. És un enfocament millor que l'anterior. Vegem un exemple senzill, on estem tenint el mètode main() en una altra classe.

convertir la cadena a json en java

Podem tenir diverses classes en diferents fitxers Java o un sol fitxer Java. Si definiu diverses classes en un sol fitxer font de Java, és una bona idea desar el nom del fitxer amb el nom de classe que té el mètode main().

Fitxer: TestStudent1.java

 //Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } } 
Prova-ho ara

Sortida:

 0 null 

3 maneres d'inicialitzar l'objecte

Hi ha 3 maneres d'inicialitzar l'objecte a Java.

  1. Per variable de referència
  2. Per mètode
  3. Per constructor

1) Exemple d'objecte i classe: Inicialització mitjançant referència

Inicialitzar un objecte significa emmagatzemar dades a l'objecte. Vegem un exemple senzill on inicialitzarem l'objecte mitjançant una variable de referència.

Fitxer: TestStudent2.java

 class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name='Sonoo'; System.out.println(s1.id+' '+s1.name);//printing members with a white space } } 
Prova-ho ara

Sortida:

 101 Sonoo 

També podem crear diversos objectes i emmagatzemar-hi informació mitjançant una variable de referència.

Fitxer: TestStudent3.java

 class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name='Sonoo'; s2.id=102; s2.name='Amit'; //Printing data System.out.println(s1.id+' '+s1.name); System.out.println(s2.id+' '+s2.name); } } 
Prova-ho ara

Sortida:

 101 Sonoo 102 Amit 

2) Exemple d'objecte i classe: Inicialització mitjançant mètode

En aquest exemple, estem creant els dos objectes de la classe Student i inicialitzem el valor d'aquests objectes invocant el mètode insertRecord. Aquí, estem mostrant l'estat (dades) dels objectes invocant el mètode displayInformation().

Fitxer: TestStudent4.java

 class Student{ int rollno; String name; void insertRecord(int r, String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+' '+name);} } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,'Karan'); s2.insertRecord(222,'Aryan'); s1.displayInformation(); s2.displayInformation(); } } 
Prova-ho ara

Sortida:

 111 Karan 222 Aryan 
Objecte en Java amb valors

Com podeu veure a la figura anterior, l'objecte obté la memòria a l'àrea de memòria de pila. La variable de referència fa referència a l'objecte assignat a l'àrea de memòria dinàmica. Aquí, s1 i s2 són variables de referència que fan referència als objectes assignats a la memòria.


3) Exemple d'objecte i classe: Inicialització mitjançant un constructor

Més endavant coneixerem els constructors de Java.


Objecte i classe Exemple: Empleat

Vegem un exemple en què estem mantenint registres dels empleats.

Fitxer: TestEmployee.java

 class Employee{ int id; String name; float salary; void insert(int i, String n, float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+' '+name+' '+salary);} } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,'ajeet',45000); e2.insert(102,'irfan',25000); e3.insert(103,'nakul',55000); e1.display(); e2.display(); e3.display(); } } 
Prova-ho ara

Sortida:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Exemple d'objecte i classe: rectangle

Es dóna un altre exemple que manté els registres de la classe Rectangle.

java cast char a cadena

Fitxer: TestRectangle1.java

 class Rectangle{ int length; int width; void insert(int l, int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Prova-ho ara

Sortida:

 55 45 

Quines són les diferents maneres de crear un objecte a Java?

Hi ha moltes maneres de crear un objecte en Java. Ells són:

  • Per paraula clau nova
  • Mitjançant el mètode newInstance().
  • Mitjançant el mètode clone().
  • Per deserialització
  • Per mètode de fàbrica, etc.

Aprendrem aquestes maneres de crear objectes més endavant.

Diferents maneres de crear un objecte en Java

Objecte anònim

Anònim significa simplement sense nom. Un objecte que no té cap referència es coneix com a objecte anònim. Només es pot utilitzar en el moment de la creació de l'objecte.

Si només heu d'utilitzar un objecte una vegada, un objecte anònim és un bon enfocament. Per exemple:

 new Calculation();//anonymous object 

Mètode de trucada mitjançant una referència:

 Calculation c=new Calculation(); c.fact(5); 

Mètode de trucada mitjançant un objecte anònim

 new Calculation().fact(5); 

Vegem l'exemple complet d'un objecte anònim a Java.

 class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact="fact*i;" } system.out.println('factorial is '+fact); public static void main(string args[]){ new calculation().fact(5); calling method with anonymous object < pre> <p>Output:</p> <pre> Factorial is 120 </pre> <a id="objectbyonetype"></a> <h3>Creating multiple objects by one type only</h3> <p>We can create multiple objects by one type only as we do in case of primitives.</p> <p>Initialization of primitive variables:</p> <pre> int a=10, b=20; </pre> <p>Initialization of refernce variables:</p> <pre> Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects </pre> <p>Let&apos;s see the example:</p> <pre> //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> 55 45 </pre> <h3>Real World Example: Account</h3> <p>File: TestAccount.java</p> <pre> //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println('insufficient balance'); }else{ amount="amount-amt;" system.out.println(amt+' withdrawn'); } method to check the balance of account void checkbalance(){system.out.println('balance is: '+amount);} display values an object display(){system.out.println(acc_no+' '+name+' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,'ankit',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){></pre></=n;i++){>

Creació de diversos objectes per un sol tipus

Podem crear diversos objectes per un sol tipus com ho fem en el cas dels primitius.

Inicialització de variables primitives:

 int a=10, b=20; 

Inicialització de variables de referència:

 Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects 

Vegem l'exemple:

 //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Prova-ho ara

Sortida:

 55 45 

Exemple del món real: compte

Fitxer: TestAccount.java

 //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println(\'insufficient balance\'); }else{ amount="amount-amt;" system.out.println(amt+\' withdrawn\'); } method to check the balance of account void checkbalance(){system.out.println(\'balance is: \'+amount);} display values an object display(){system.out.println(acc_no+\' \'+name+\' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,\'ankit\',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){>