Encapsulació a Java: com dominar les POO amb encapsulació?



Aquest article sobre Encapsulació a Java us ajudarà a entendre els conceptes bàsics d’ocultació de detalls d’implementació juntament amb diversos exemples senzills.

La programació orientada a objectes o més coneguda com OOP és un dels pilars principals de Java que ha aprofitat la seva potència i facilitat d’ús. Per convertir-vos en un desenvolupador professional de Java, heu de tenir un control impecable sobre els diversos M'agrada , Abstracció , Encapsulació i Polimorfisme. Mitjançant aquest article, us donaré una visió completa d’un dels conceptes més importants de les POO, és a dir, l’encapsulació a Java i com s’aconsegueix.

A continuació es detallen els temes que tractaré en aquest article:





També podeu fer aquest enregistrament de on podeu entendre els temes de manera detallada amb exemples.



Introducció a l’encapsulació

L’encapsulació es refereix a l’embolcall de dades sota una sola unitat. És el mecanisme que uneix el codi i les dades que manipula. Una altra manera de pensar en l’encapsulació és que és un escut protector que impedeix que les dades puguin accedir al codi fora d’aquest escut. En això, les variables o dades d'un fitxer està amagat de qualsevol altra classe i només es pot accedir a través de qualsevol funció membre de la pròpia classe en què es declaren.

Ara, posem l’exemple d’una càpsula mèdica, on el medicament sempre està segur dins de la càpsula. De la mateixa manera, mitjançant l'encapsulació, els mètodes i variables d'una classe estan ben amagats i segurs.



Encapsulació -Encapsulació a Java-EdurekaL'encapsulació a Java es pot aconseguir mitjançant:

com convertir la cadena a la data en Java
  • Declarar com a privades les variables d’una classe.
  • Proporcionar mètodes de configuració i obtenció públics per modificar i visualitzar els valors de les variables.

Vegem ara el codi per entendre millor l’encapsulació:

public class Student {private String name public String getName () {return name} public void setName (nom de la cadena) {this.name = name}} classe Test {public static void main (String [] args) {Student s = new Student () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Com podeu veure al codi anterior, he creat una classe Student que té una privada nom . A continuació, he creat un getter i setter per obtenir i establir el nom d'un estudiant. Amb l'ajut d'aquests mètodes, qualsevol classe que vulgui accedir a la variable nom ha de fer-ho mitjançant aquests mètodes getter i setter.

Ara vegem un exemple més i entenem l’encapsulació en profunditat. En aquest exemple, la classe Car té dos camps –nom i topSpeed. Aquí, tots dos es declaren privats, és a dir, no es pot accedir directament fora de la classe. Tenim alguns mètodes getter i setter com getName, setName, setTopSpeed ​​etc., i es declaren públics. Aquests mètodes estan exposats a 'forasters' i es poden utilitzar per canviar i recuperar dades de l'objecte Car. Tenim un mètode per establir la velocitat màxima del vehicle i dos mètodes getter per recuperar el valor de velocitat màxima, ja sigui en MPH o KMHt. Bàsicament, això és el que fa l’encapsulació: amaga la implementació i ens dóna els valors que volem. Vegem ara el codi següent.

package Edureka public class Car {private String name private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (nom de la cadena) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} public doble getTopSpeedMPH () {retorn topSpeed} públic doble getTopSpeedKMH () {retorn topSpeed ​​* 1.609344}}

Aquí, el programa principal crea un objecte Car amb un nom donat i utilitza el mètode setter per emmagatzemar la velocitat màxima per a aquesta instància. Fent això, podem obtenir fàcilment la velocitat en MPH o KMH sense preocupar-nos de com es converteix la velocitat a la classe Car.

package Edureka public class Exemple {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-litre V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'velocitat màxima a MPH és' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'velocitat màxima a KMH és' + car.getTopSpeedKMH ())

So, així és com es pot aconseguir l’encapsulació a Java. Ara, anem més enllà i vegem per què necessitem l’encapsulació.

com invertir un número a Java

Per què necessitem l’encapsulació a Java?

L’encapsulació és essencial a Java perquè:

  • Controla la forma d’accessibilitat a les dades
  • Modifica el codi en funció dels requisits
  • Ens ajuda a aconseguir una parella fluixa
  • Aconsegueix la simplicitat de la nostra aplicació
  • També us permet canviar la part del codi sense interrompre cap altra funció o codi present al programa

Ara, considerem un petit exemple que il·lustra la necessitat de l’encapsulació.

class Student {int id String name} public class Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = '' s.name = null}}

A l'exemple anterior, conté dues variables d'instància com a modificador d'accés. De manera que qualsevol classe del mateix paquet pot assignar i canviar els valors d’aquestes variables creant un objecte d’aquesta classe. Per tant, no tenim control sobre els valors emmagatzemats a la classe Student com a variables. Per solucionar aquest problema, encapsulem la classe Student.

Així doncs, aquests van ser els pocs consells que mostren la necessitat de l’encapsulament. Ara, vegem alguns avantatges de l’encapsulació.

Beneficis de l’encapsulació

    • Ocultació de dades: Aquí, un usuari no tindrà ni idea de la implementació interna de la classe. Fins i tot l'usuari no serà conscient de com la classe emmagatzema valors a les variables. Només serà conscient que estem passant els valors a un mètode setter i que les variables s’inicialitzen amb aquest valor.
    • Major flexibilitat: Aquí, podem fer que les variables de la classe siguin de només lectura o només d’escriptura en funció del nostre requisit. En cas que vulgueu fer que les variables siguin de només lectura, hem d’ometre els mètodes de configuració com setName (),setAge() etc. o si volem que les variables siguin només d'escriptura, hem d'ometre els mètodes get com getName (), getAge () etc. del programa anterior.
    • Reutilització: També millora la reutilització i és fàcil de canviar amb els nous requisits.

Ara que ja hem entès els fonaments de l’encapsulació, aprofundim en l’últim tema d’aquest article i entenem l’encapsulació en detall amb l’ajut d’un exemple en temps real.

Un exemple d’encapsulació en temps real

Considerem un exemple televisiu i entenem com s’amaguen els detalls interns de la implementació de la classe externa.Bàsicament, en aquest exemple, amagem les dades del codi intern, és a dir, circuits del món extern per la coberta. Ara a , això es pot aconseguir amb l'ajut de modificadors d'accés. Els modificadors d'accés estableixen l'accés o el nivell d'una classe, variables de constructors, etc. Com podeu veure al codi següent, he utilitzat un modificador d'accés privat per restringir el nivell d'accés de la classe. Les variables declarades com a privades només són accessibles dins de la classe de televisió.

public class Television {private double width private double height private double Screensize private int maxVolume print int volume private boolean power public Television (doble amplada, doble alçada, doble mida de pantalla) {this.width this.height this.screenSize = ScreenSize} doble canal públic Tuning (canal int) {commutador (canal) {cas1: retorn 34,56 cas2: retorn 54,89 cas3: retorn 73,89 cas1: retorn 94,98} retorn 0} públic int disminucióVolum () {if (0volum) volum ++ retorn volum}} prova de classe {públic estàtic void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televisió. // Llança un error ja que la variable és privada i no es pot accedir fora de la classe}}

A l'exemple anterior, he declarat totes les variables com a privades i els mètodes, constructors i classe com a públics. Aquí es pot accedir als constructors i als mètodes fora de la classe. Quan creoun objectede la classe Televisió, pot accedir als mètodes i constructors presents a la classe, mentre que les variables declarades amb modificador d'accés privat estan ocultes. Per això, quan intenteu accedir-hi variable d'amplada a l'exemple anterior, llançaun error. Així és com s’amaguen els detalls d’implementació interna de les altres classes. Així s’aconsegueix l’encapsulació a Java.

Això ens porta al final d’aquest article sobre “Encapsulació a Java”. Espero que el trobeu informatiu i us ajudi a afegir valor al vostre coneixement. Si voleu obtenir més informació sobre Java, podeu consultar el document

Ara que heu entès 'què és l'encapsulació a Java', consulteu el fitxer per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate i Spring

Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc “Encapsulació a Java” i us respondrem el més aviat possible.