Welcome to Our Website

OOPS concepts in Java (Italiano)

Object-Oriented Programming System(OOPs) è un paradigma di programmazione basato sul concetto di “oggetti” che contengono dati e metodi. Lo scopo principale della programmazione orientata agli oggetti è quello di aumentare la flessibilità e la manutenibilità dei programmi. La programmazione orientata agli oggetti riunisce i dati e il loro comportamento (metodi) in un’unica posizione(oggetto) rende più facile capire come funziona un programma. Copriremo ogni caratteristica di OOPs in dettaglio in modo che non si faccia alcun difficile comprensione OOPS concetti.,

OOPs Concetti – Sommario

  1. che Cosa è un Oggetto
  2. che Cosa è una classe
  3. Costruttore in Java
  4. Programmazione Object Oriented Caratteristiche
    • Astrazione
    • Incapsulamento
    • Ereditarietà
    • Polimorfismo
  5. Classe Astratta e Metodi
  6. Interfacce in Java

che Cosa è un Oggetto


Oggetto: è un insieme di dati, e il suo comportamento(spesso conosciuto come metodi).

Gli oggetti hanno due caratteristiche: hanno stati e comportamenti.,

Esempi di stati e comportamenti
Esempio 1:
Object: House
State: Address, Color, Area
Behavior: Open door, close door

Quindi se dovessi scrivere una classe basata su stati e comportamenti di House. Posso farlo in questo modo: gli stati possono essere rappresentati come variabili di istanza e comportamenti come metodi della classe. Vedremo come creare classi nella prossima sezione di questa guida.

class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}

Nota: Come abbiamo visto sopra, gli stati e i comportamenti di un oggetto, possono essere rappresentati rispettivamente da variabili e metodi nella classe.,

Caratteristiche degli oggetti:

Se trovi difficile capire l’astrazione e l’incapsulamento, non preoccuparti perché ho trattato questi argomenti in dettaglio con esempi nella prossima sezione di questa guida.

  1. Astrazione
  2. Incapsulamento
  3. Passaggio del messaggio

Astrazione: l’astrazione è un processo in cui si mostrano solo dati “rilevanti” e “nascondono” dettagli non necessari di un oggetto dall’utente.

Incapsulamento: Incapsulamento significa semplicemente lo stato dell’oggetto vincolante(campi) e il comportamento (metodi) insieme. Se stai creando classe, stai facendo l’incapsulamento.,

Messaggio che passa
Un singolo oggetto da solo potrebbe non essere molto utile. Un’applicazione contiene molti oggetti. Un oggetto interagisce con un altro oggetto richiamando metodi su quell’oggetto. Viene anche indicato come Invocazione del metodo. Vedi lo schema qui sotto.

Cos’è una classe in OOPs Concepts

Una classe può essere considerata come un progetto con cui è possibile creare tutti gli oggetti che si desidera. Ad esempio, qui abbiamo una classe Website che ha due membri di dati (noti anche come campi, variabili di istanza e stati oggetto)., Questo è solo un progetto, non rappresenta alcun sito web, tuttavia utilizzando questo possiamo creare oggetti del sito Web (o istanze) che rappresentano i siti web. Abbiamo creato due oggetti, durante la creazione di oggetti abbiamo fornito proprietà separate agli oggetti usando constructor.

Output:

beginnersbook 5google 18

Cos’è un costruttore

Il costruttore sembra un metodo ma in realtà non è un metodo. Il suo nome è lo stesso del nome della classe e non restituisce alcun valore., Devi aver visto questa affermazione in quasi tutti i programmi che ho condiviso sopra:

MyClass obj = new MyClass();

Se guardi il lato destro di questa affermazione, stiamo chiamando il costruttore predefinito della classe myClass per creare un nuovo oggetto (o istanza).

Possiamo anche avere parametri nel costruttore, tali costruttori sono noti come costruttori parametrizzati.,

Esempio di costruttore

Uscita:

Chaitanya 30Steve 56

Object Oriented Programming caratteristiche


Queste quattro caratteristiche sono le principali OOPs Concetti che si deve imparare a capire la Programmazione Object Oriented in Java

Astrazione

l’Astrazione è un processo in cui si mostra solo i dati” e “nascondi” inutili i dettagli di un oggetto da parte dell’utente., Ad esempio, quando accedi al tuo conto bancario online, inserisci user_id e password e premi login, cosa succede quando premi login, come i dati di input inviati al server, come vengono verificati sono tutti astratti da te. Per saperne di più qui: Astrazione in Java.

Incapsulamento

Incapsulamento significa semplicemente lo stato dell’oggetto vincolante(campi) e il comportamento(metodi) insieme. Se stai creando classe, stai facendo l’incapsulamento.,

Esempio di incapsulamento in Java

Come
1) Rendere private le variabili di istanza in modo che non siano accessibili direttamente dall’esterno della classe. È possibile impostare e ottenere valori di queste variabili solo attraverso i metodi della classe.
2) Avere metodi getter e setter nella classe per impostare e ottenere i valori dei campi.

Output:

No Of Employees: 5613

La classe EncapsulationExample che utilizza l’oggetto della classe EmployeeCount non sarà in grado di ottenere direttamente i NoOfEmployees., Deve utilizzare i metodi setter e getter della stessa classe per impostare e ottenere il valore.
Quindi qual è il vantaggio dell’incapsulamento nella programmazione java
Beh, ad un certo punto del tempo, se si desidera modificare i dettagli di implementazione della classe EmployeeCount, è possibile farlo liberamente senza influenzare le classi che lo utilizzano.

Ereditarietà

Il processo mediante il quale una classe acquisisce le proprietà e le funzionalità di un’altra classe è chiamato ereditarietà., L’ereditarietà fornisce l’idea di riusabilità del codice e ogni sottoclasse definisce solo le funzionalità che sono uniche ad esso, il resto delle funzionalità può essere ereditato dalla classe genitore.

  1. L’ereditarietà è un processo di definizione di una nuova classe basata su una classe esistente estendendo i suoi membri e metodi di dati comuni.
  2. L’ereditarietà ci consente di riutilizzare il codice, migliora la riusabilità nella tua applicazione java.
  3. La classe genitore è chiamata classe base o classe super. La classe figlio che estende la classe base è chiamata classe derivata o sottoclasse o classe figlio.,

Nota: Il più grande vantaggio dell’ereditarietà è che il codice nella classe base non deve essere riscritto nella classe figlio.
Le variabili e i metodi della classe base possono essere utilizzati anche nella classe figlio.

Sintassi: Ereditarietà in Java

Per ereditare una classe usiamo extends parola chiave. Qui la classe A è la classe figlio e la classe B è la classe genitore.

class A extends B{}

Esempio di ereditarietà

In questo esempio, abbiamo una classe padreTeachere una classe figlioMathTeacher., Nella classeMathTeacher non è necessario scrivere lo stesso codice che è già presente nella classe presente. Qui abbiamo il nome del college, la designazione e il metodo does() comune a tutti gli insegnanti, quindi la classe MathTeacher non ha bisogno di scrivere questo codice, i membri e i metodi di dati comuni possono essere ereditati dalla classe Teacher.,

Output:

BeginnersbookTeacherMathsTeaching

Nota: l’ereditarietà multilivello è consentita in Java ma non l’ereditarietà multipla

Tipi di ereditarietà:
Ereditarietà singola: si riferisce a una relazione di classe figlio e genitore in cui una classe estende l’altra classe.

Ereditarietà multilivello: si riferisce a una relazione di classe figlio e genitore in cui una classe estende la classe figlio. Ad esempio, la classe A estende la classe B e la classe B estende la classe C.,

Ereditarietà gerarchica: si riferisce a una relazione di classe figlio e genitore in cui più di una classe estende la stessa classe. Ad esempio, la classe B estende la classe A e la classe C estende la classe A.

Ereditarietà multipla: si riferisce al concetto di una classe che estende più di una classe, il che significa che una classe figlio ha due classi padre. Java non supporta l’ereditarietà multipla, leggi di più qui.

La maggior parte dei nuovi linguaggi OO come Small Talk, Java, C# non supportano l’ereditarietà multipla. L’ereditarietà multipla è supportata in C++.,

Polimorfismo

Il polimorfismo è una funzione di programmazione orientata agli oggetti che ci permette di eseguire una singola azione in modi diversi. Ad esempio, diciamo che abbiamo una classe Animal che ha un metodo animalSound(), qui non possiamo dare implementazione a questo metodo in quanto non sappiamo quale classe Animal estenderebbe Animal classe., Quindi, rendiamo questo metodo astratto in questo modo:

public abstract class Animal{ ... public abstract void animalSound();}

Ora supponiamo di avere due classi AnimaliDog eLion che estendeAnimal classe. Siamo in grado di fornire i dettagli di implementazione lì.

public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}

e

public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}

Come puoi vedere, sebbene avessimo l’azione comune per tutte le sottoclassianimalSound() ma c’erano diversi modi per fare la stessa azione., Questo è un perfetto esempio di polimorfismo (caratteristica che ci permette di eseguire una singola azione in modi diversi).

Tipi di polimorfismo
1) Polimorfismo statico
2) Polimorfismo dinamico

Polimorfismo statico:

Il polimorfismo risolto durante il tempo del compilatore è noto come polimorfismo statico. L’overloading del metodo può essere considerato come esempio di polimorfismo statico.
Overloading del metodo: questo ci consente di avere più di un metodo con lo stesso nome in una classe che differisce nella firma.,

Output:

aa 10

Quando dico firma del metodo non sto parlando del tipo di ritorno del metodo, ad esempio se due metodi hanno lo stesso nome, gli stessi parametri e hanno un tipo di ritorno diverso, allora questo non è un esempio di sovraccarico del metodo valido. Questo genererà errore di compilazione.

Polimorfismo dinamico

È anche noto come Metodo dinamico di spedizione. Il polimorfismo dinamico è un processo in cui una chiamata a un metodo sovrascritto viene risolta in fase di runtime, ecco perché viene chiamato polimorfismo di runtime.,

Esempio

Output:

Woof

Poiché entrambe le classi, la classe figlio e la classe genitore hanno lo stesso metodo animalSound. Quale del metodo verrà chiamato è determinato in fase di esecuzione da JVM.

Alcuni esempi più importanti:

IS-A & HAS-A Relationships

A Car IS-A Vehicle and HAS-A License quindi il codice sarebbe simile a questo:

public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}

Abstract Class and methods in OOPs Concepts

Metodo astratto:
1) Un metodo dichiarato ma non definito. Solo firma del metodo nessun corpo.,
2) Dichiarato usando la parola chiave astratta
3) Esempio :

abstract public void playInstrument();

5) Usato per mettere una sorta di costrizione sulla classe che eredita la classe ha metodi astratti. La classe che eredita deve fornire l’implementazione di tutti i metodi astratti della classe genitore altrimenti dichiarare la sottoclasse come astratta.
6) Questi non possono essere astratti

  • Costruttori
  • metodi Statici
  • metodi Privati
  • Metodi che vengono dichiarati “finale”

Classe Astratta
Una classe astratta delinea i metodi, ma non necessariamente implementa tutti i metodi.,

abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}

Nota 1: Ci possono essere alcuni scenari in cui è difficile implementare tutti i metodi nella classe base. In tali scenari si può definire la classe base come una classe astratta che significa che questa classe base è un tipo speciale di classe che non è completa da sola.

Una classe derivata dalla classe base astratta deve implementare quei metodi che non sono implementati(significa che sono astratti) nella classe astratta.

Nota 2: La classe astratta non può essere istanziata, il che significa che non è possibile creare l’oggetto della classe astratta., Per utilizzare questa classe, è necessario creare un’altra classe che estenda questa classe astratta fornisce l’implementazione di metodi astratti, quindi è possibile utilizzare l’oggetto di quella classe figlio per chiamare metodi di classe genitore non astratti e metodi implementati(quelli che erano astratti nel genitore ma implementati nella classe figlio).

Nota 3: Se un figlio non implementa tutti i metodi astratti della classe genitore(la classe astratta), la classe figlio deve essere dichiarata astratta.,

Esempio di classe e metodi astratti

Qui abbiamo una classe astratta Animal che ha un metodo astratto animalSound(), poiché il suono animale differisce da un animale all’altro, non ha senso dare l’implementazione a questo metodo poiché ogni classe figlio deve sovrascrivere questo metodo per fornire i propri dettagli di implementazione. Ecco perché l’abbiamo resa astratta.
Ora ogni animale deve avere un suono, rendendo astratto questo metodo abbiamo reso obbligatorio per la classe child fornire dettagli di implementazione a questo metodo. In questo modo ci assicura che ogni animale ha un suono.,

Output:

Woof

Interfacce in Java

Un’interfaccia è un progetto di una classe, che può essere dichiarato utilizzando la parola chiave interface. Le interfacce possono contenere solo costanti e metodi astratti (metodi con sole firme senza corpo).Come le classi astratte, le interfacce non possono essere istanziate, possono essere implementate solo da classi o estese da altre interfacce. L’interfaccia è un modo comune per ottenere l’astrazione completa in Java.,

Nota:

  1. Java non supporta l’ereditarietà multipla, tuttavia una classe può implementare più interfacce
  2. L’interfaccia è simile a una classe astratta ma contiene solo metodi astratti.,
  3. le Interfacce vengono creati utilizzando la parola chiave interface anziché la parola chiave class
  4. Si usa implements parola chiave, mentre l’attuazione di un’interfaccia simile a estendere una classe con la parola chiave extends)

Interfaccia: Sintassi

class ClassName extends Superclass implements Interface1, Interface2, ....

Esempio di Interfaccia:

Nota:

  1. Tutti i metodi di un’interfaccia sono implicitamente pubblico e astratto. L’utilizzo della parola chiave abstract prima di ogni metodo è facoltativo.
  2. Un’interfaccia può contenere variabili finali.,
  3. Una classe può estendere solo un’altra classe, ma può implementare qualsiasi numero di interfacce.
  4. Quando una classe implementa un’interfaccia deve dare la definizione di tutti i metodi astratti di interfaccia, altrimenti può essere dichiarata come classe astratta
  5. Un riferimento di interfaccia può puntare a oggetti delle sue classi di implementazione.

Generalizzazione e specializzazione:
Al fine di implementare il concetto di ereditarietà in un OOPs, si deve prima identificare le somiglianze tra le diverse classi in modo da venire con la classe base.,

Questo processo di identificazione delle somiglianze tra le diverse classi è chiamato Generalizzazione. La generalizzazione è il processo di estrazione di caratteristiche condivise da due o più classi e combinarle in una superclasse generalizzata. Le caratteristiche condivise possono essere attributi o metodi.

In contrasto con la generalizzazione, specializzazione significa creare nuove sottoclassi da una classe esistente. Se si scopre che determinati attributi o metodi si applicano solo ad alcuni degli oggetti della classe, è possibile creare una sottoclasse.,

Access Specifiers

Bene, devi aver visto la parola chiave pubblica e privata negli esempi che ho condiviso sopra. Sono chiamati identificatori di accesso in quanto decidono l’ambito di un membro, metodo o classe di dati.

Ci sono quattro tipi di specificatori di accesso in java:
pubblico: Accessibile a tutti. Altri oggetti possono anche accedere a questa variabile membro o funzione.
privato: Non accessibile da altri oggetti. Ai membri privati è possibile accedere solo con i metodi della stessa classe. Oggetto accessibile solo nella classe in cui sono dichiarati.,
protetto: L’ambito di una variabile protetta si trova all’interno della classe che lo dichiara e nella classe che eredita dalla classe (l’ambito è classe e sottoclasse).
Default: Ambito è a livello di pacchetto. Non abbiamo bisogno di menzionare esplicitamente default come quando non menzioniamo alcun specificatore di accesso è considerato come predefinito.,

Cosa impareremo nei prossimi tutorial sui concetti OOPs

Anche se abbiamo coperto quasi tutti i concetti OOPs qui, ma tutto ciò che abbiamo imparato in questa guida è in breve, questi argomenti sono ampi e c’è così tanto spazio per imparare questi argomenti in dettaglio con l’aiuto di esempi. Ecco perché ho coperto ogni argomento in dettaglio insieme ad esempi e diagrammi nei prossimi tutorial.
Come puoi leggere i prossimi tutorial in modo sequenziale? Ci sono un paio di modi per farlo – 1) Link tutorial sono forniti nella barra laterale sinistra, andare anche se loro nella sequenza data.,
2) Vai alla pagina principale java tutorial che ha tutti i link ai tutorial in modo sequenziale.
Se trovi qualche difficoltà a comprendere questi concetti OOPs, lascia un commento qui sotto e ti risponderò il prima possibile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *