2.3 MODULARIZACIÓN Y ENCAPSULACIÓN

 

El concepto de modularización ya lo hemos visto en posts anteriores, si recordamos el equipo Hi-Fi que estaba compuesto por varios módulos, esto en lenguaje de programación sería modularización, en el ejemplo que hemos hecho de la clase Coche y Uso_Coche hemos utilizado la modularización, hemos creado una clase y después una segunda clase con el método main que es la que se va a ejecutar. También podríamos haberlo creado todo en un mismo archivo:

package poo;

 

public class Coche {

      

       int ruedas;

      

       int largo;

      

       int ancho;

      

       int motor;

      

       int peso;

      

       public Coche() {

            

             ruedas = 4;

            

             largo = 2000;

            

             ancho = 300;

            

             motor = 1500;

            

             peso = 500;

       }

       public static void main(String[] args) {

            

             Coche Renault = new Coche();

            

             System.out.println("Este coche tiene "+Renault.ruedas+" ruedas.");

            

       }

}

Pero ya no se estaría utilizando la modularización, incluso crear nuevas clases:

package poo;

 

public class Coche {

      

       int ruedas;

      

       int largo;

      

       int ancho;

      

       int motor;

      

       int peso;

      

       public Coche() {

            

             ruedas = 4;

            

             largo = 2000;

            

             ancho = 300;

            

             motor = 1500;

            

             peso = 500;

       }

       class Camion {

            

            

       }

      

       class Furgoneta {

            

            

       }

       public static void main(String[] args) {

            

             Coche Renault = new Coche();

            

             System.out.println("Este coche tiene "+Renault.ruedas+" ruedas.");

            

       }

}

No está mal, no daría error la aplicación si el código fuera correcto, sin embargo, no sería del todo correcto ya que se está obviando uno de los conceptos principales del lenguaje de programación orientado a objetos que es la modularización. Lo correcto es que cada clase este en un archivo, solo una de esas clases que será la que contenga el método main será la que se ejecute, todas las clases se relacionarán entre ellas mediante métodos y funciones que veremos en el post siguiente.

Teniendo el concepto de modularización claro vamos a pasar al concepto de encapsulamiento.

Si en nuestro archivo Uso_vehiculos hacemos lo siguiente:

package poo;

 

public class Uso_vehiculos {

 

      public static void main(String[] args) {

           

            Coche Renault = new Coche();

           

            Renault.ruedas=3;

           

            System.out.println("Este coche tiene "+Renault.ruedas+" ruedas.");

 

      }

 

}

Ejecutamos:


Nos indica que el coche tiene 3 ruedas, esto aunque lo hemos podido hacer y no ha dado error, no es correcto ya que el coche no tiene 3 ruedas, para que no se pueda modificar las propiedades desde otra clase diferente se ha de encapsular esta propiedad para que no pueda ser modificada desde otra clase, para ello se utiliza el modificador de acceso private, de tal manera que desde otra clase no va a ser visibles y no se va a poder modificar, por lo que delante de la propiedad escribimos el modificador de acceso private. Los modificadores de acceso los veremos más adelante:

      private int ruedas;

     

      private int largo;

     

      private int ancho;

     

      private int motor;

     

                                                               private int peso;

En el momento que hemos escrito este modificador de acceso delante de la propiedad ruedas el archivo Uso_vehiculos nos ha dado un error ya que esta variable no se puede modificar:



Pero tampoco podemos acceder a ella:



Para poder acceder a esta propiedad se utilizan los métodos que los veremos en el siguiente post.

2.2 CLASES Y OBJETOS  << >> 2.4 MÉTODOS GETTER Y SETTER









No hay comentarios:

Publicar un comentario