- Oggetto in Java
- Lezione in Giava
- Variabile di istanza in Java
- Metodo in Java
- Esempio di oggetto e classe che conserva i record dello studente
- 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
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:
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:
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.
- Per variabile di riferimento
- Per metodo
- 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
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.
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'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+' deposited'); } //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+' deposited'); } //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){>=n;i++){>