logo

Oggetti e classi in Java

  1. Oggetto in Java
  2. Lezione in Giava
  3. Variabile di istanza in Java
  4. Metodo in Java
  5. Esempio di oggetto e classe che conserva i record dello studente
  6. Oggetto anonimo

In questa pagina impareremo gli oggetti e le classi Java. Nella tecnica di programmazione orientata agli oggetti, progettiamo un programma utilizzando oggetti e classi.

Un oggetto in Java è un'entità fisica oltre che logica, mentre una classe in Java è solo un'entità logica.

Cos'è un oggetto in Java

oggetto in Java

Un'entità che ha uno stato e un comportamento è nota come oggetto, ad esempio sedia, bicicletta, pennarello, penna, tavolo, automobile, ecc. Può essere fisica o logica (tangibile e immateriale). L'esempio di un bene immateriale è il sistema bancario.

Un oggetto ha tre caratteristiche:

    Stato:rappresenta i dati (valore) di un oggetto.Comportamento:rappresenta il comportamento (funzionalità) di un oggetto come depositare, prelevare, ecc.Identità:L'identità di un oggetto viene in genere implementata tramite un ID univoco. Il valore dell'ID non è visibile all'utente esterno. Tuttavia, viene utilizzato internamente dalla JVM per identificare ogni oggetto in modo univoco.
Caratteristiche dell'oggetto in Java

Ad esempio, Pen è un oggetto. Il suo nome è Reynolds; il colore è bianco, noto come il suo stato. È usato per scrivere, quindi scrivere è il suo comportamento.

Un oggetto è un'istanza di una classe. Una classe è un modello o un progetto da cui vengono creati gli oggetti. Quindi, un oggetto è l'istanza (risultato) di una classe.

Definizioni degli oggetti:

  • Un oggetto è un'entità del mondo reale .
  • Un oggetto è un'entità di runtime .
  • L'oggetto è un'entità che ha stato e comportamento .
  • L'oggetto è un'istanza di una classe .

Cos'è una classe in Java

Una classe è un gruppo di oggetti che hanno proprietà comuni. È un modello o un progetto da cui vengono creati gli oggetti. È un'entità logica. Non può essere fisico.

Una classe in Java può contenere:

    Campi Metodi Costruttori Blocchi Classe e interfaccia nidificate
Lezione in Giava

Sintassi per dichiarare una classe:

 class { field; method; } 

Variabile di istanza in Java

Una variabile creata all'interno della classe ma all'esterno del metodo è nota come variabile di istanza. La variabile di istanza non ottiene memoria in fase di compilazione. Ottiene memoria in fase di esecuzione quando viene creato un oggetto o un'istanza. Ecco perché è conosciuta come variabile di istanza.


Metodo in Java

In Java, un metodo è come una funzione utilizzata per esporre il comportamento di un oggetto.

Vantaggio del metodo

  • Riutilizzabilità del codice
  • Ottimizzazione del codice

nuova parola chiave in Java

La nuova parola chiave viene utilizzata per allocare memoria in fase di esecuzione. Tutti gli oggetti ottengono memoria nell'area di memoria Heap.


Esempio di oggetto e classe: main all'interno della classe

In questo esempio, abbiamo creato una classe Student che ha due ID e nome membri dati. Stiamo creando l'oggetto della classe Studente con una nuova parola chiave e stampando il valore dell'oggetto.

Qui stiamo creando un metodo main() all'interno della classe.

File: 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); } } 
Provalo adesso

Produzione:

 0 null 

Esempio di oggetto e classe: main esterno alla classe

Nello sviluppo in tempo reale, creiamo classi e le utilizziamo da un'altra classe. È un approccio migliore del precedente. Vediamo un semplice esempio in cui abbiamo il metodo main() in un'altra classe.

angolo acuto

Possiamo avere più classi in diversi file Java o in un singolo file Java. Se definisci più classi in un singolo file sorgente Java, è una buona idea salvare il nome del file con il nome della classe che ha il metodo main().

File: 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); } } 
Provalo adesso

Produzione:

 0 null 

3 modi per inizializzare l'oggetto

Esistono 3 modi per inizializzare l'oggetto in Java.

  1. Per variabile di riferimento
  2. Per metodo
  3. Per costruttore

1) Esempio di oggetto e classe: inizializzazione tramite riferimento

Inizializzare un oggetto significa memorizzare i dati nell'oggetto. Vediamo un semplice esempio in cui inizializzeremo l'oggetto tramite una variabile di riferimento.

File: 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 } } 
Provalo adesso

Produzione:

 101 Sonoo 

Possiamo anche creare più oggetti e memorizzare informazioni al loro interno tramite una variabile di riferimento.

File: 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); } } 
Provalo adesso

Produzione:

 101 Sonoo 102 Amit 

2) Esempio di oggetto e classe: inizializzazione tramite metodo

In questo esempio, stiamo creando i due oggetti della classe Student e inizializzando il valore di questi oggetti invocando il metodo insertRecord. Qui stiamo visualizzando lo stato (dati) degli oggetti invocando il metodo displayInformation().

File: 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(); } } 
Provalo adesso

Produzione:

chiama la funzione javascript da html
 111 Karan 222 Aryan 
Oggetto in Java con valori

Come puoi vedere nella figura sopra, l'oggetto ottiene la memoria nell'area di memoria heap. La variabile di riferimento si riferisce all'oggetto allocato nell'area di memoria heap. Qui, s1 e s2 sono entrambe variabili di riferimento che si riferiscono agli oggetti allocati in memoria.


3) Esempio di oggetto e classe: inizializzazione tramite un costruttore

Impareremo i costruttori in Java più tardi.


Esempio di oggetto e classe: Employee

Vediamo un esempio in cui conserviamo i registri dei dipendenti.

File: 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(); } } 
Provalo adesso

Produzione:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Esempio di oggetto e classe: rettangolo

Viene fornito un altro esempio che mantiene i record della classe Rectangle.

File: 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(); } } 
Provalo adesso

Produzione:

 55 45 

Quali sono i diversi modi per creare un oggetto in Java?

Esistono molti modi per creare un oggetto in Java. Sono:

  • Con una nuova parola chiave
  • Con il metodo newInstance()
  • Con il metodo clone()
  • Per deserializzazione
  • Con il metodo di fabbrica ecc.

Impareremo questi modi per creare oggetti in seguito.

Diversi modi per creare un oggetto in Java

Oggetto anonimo

Anonimo significa semplicemente senza nome. Un oggetto che non ha alcun riferimento è noto come oggetto anonimo. Può essere utilizzato solo al momento della creazione dell'oggetto.

Se devi utilizzare un oggetto solo una volta, un oggetto anonimo è un buon approccio. Per esempio:

 new Calculation();//anonymous object 

Metodo di chiamata tramite riferimento:

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

Metodo di chiamata tramite un oggetto anonimo

 new Calculation().fact(5); 

Vediamo l'esempio completo di un oggetto anonimo in 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++){>

Creazione di più oggetti di un solo tipo

Possiamo creare più oggetti di un tipo solo come facciamo nel caso delle primitive.

Inizializzazione delle variabili primitive:

 int a=10, b=20; 

Inizializzazione delle variabili di riferimento:

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

Vediamo l'esempio:

 //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(); } } 
Provalo adesso

Produzione:

 55 45 

Esempio nel mondo reale: account

File: 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){>