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