CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
4- Encapsulamiento y modularidad
1. Módulo 4: Encapsulamiento y modularidad
NAC
Modalidad de estudios: Virtual
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Zeuszoft@protonmail.com
2. Objetivos del encuentro:
1. Adquirir los conceptos básicos relacionados con la
programación
2. Reconocer las características de la programación
3. Conocer la historia de la programación
Módulo Nro. 4
3. Frase Motivacional
Cuando te encuentres a ti mismo al
lado de la mayoría, es tiempo de
parar y reflexionar
(Mark Twain)
5. Convenciones
• Nombres de clases
• Primera letra mayúscula y cada palabra subsiguiente
comienza con mayúscula, sin espacios
• Sustantivos cosas
• ClaseDeVariasPalabras
• Nombres de métodos y variables
• Primera letra minúscula y cada palabra subsiguiente
comienza con mayúscula, sin espacios
• Verbos acciones
• variableDeVariasPalabras
6. Cuerpo
• Constructores
• Métodos
• Variables
• finalize()
Las variables y métodos de una clase son llamados miembros
de la clase.
Los constructores no son métodos, no son miembros
7. Constructores
• Mismo nombre de la clase
• Puede haber más de uno (sobrecarga)
• Inicialización del objeto
• Opcional. El compilador crea uno en caso de que
no se especifique en forma explícita
• Pueden tener variables locales, ciclos y otros
estatutos
8. Uso de this dentro de
constructores
• Indica “este” objeto
• Sirve para diferenciar variables de la clase de los
parámetros con el mismo nombre
• Está implícito en todos los miembros de la clase
• También se puede usar en métodos
public Rectangulo(int x, int y){
this.x = x;
this.y = y;
ancho = 100;
alto = 100;
}
9. Especificadores de acceso para
constructores
• private
• Ninguna otra clase puede crear un objeto de esta clase.
• protected
• Sólo subclases de esta clase pueden crear objetos de esta clase
• public
• Todas las clases pueden crear objetos de esta clase
• package
• Sólo clases del mismo paquete (package) puede crear instancias de esta clase
10. Declaración de variables
• Nivel de acceso
• public, protected, package, private
• Discutidos en control de acceso a miembros de una clase . . . .
.
• Atributos
• static, final, transient, volatile
[nivel de acceso] [atributos] tipo nobre;
11. Especificadores de acceso para
variables
• private
• Solo pueden ser utilizadas dentro de la clase donde son definidas
• protected
• Sólo la clase donde son definidas, subclases de ésta y clases del mismo paquete
pueden acceder a estas variables
• public
• Todas las clases pueden acceder a estas variables
• package
• Sólo clases del mismo paquete pueden acceder estas variables, no subclases, es
especificador por omisión
12. Atributos de una variable
• static
• variable de clase (no de ejemplar)
• final
• Valor de la variable no puede cambiar (constante)
• transient
• Variable no debe ser serializada
• volatile
• El compilador no efectua ciertas optimizaciones
14. Especificadores de acceso para
métodos
● private
– Solo pueden ser llamados dentro de la clase donde son definidos
● protected
– Sólo la clase donde son definidos, subclases de ésta y clases del mismo
paquete pueden acceder a estos métodos
● public
– Todas las clases pueden acceder a estos métodos
● package
– Sólo clases del mismo paquete pueden acceder estos métodos, no
sublclases, es especificador por omisión
15. Atributos de métodos
• static
• método de clase y no de ejemplar
• abstract
• No tiene implementación. Debe de pertencer a una clase abstract
• final
• No puede ser reprogramado (overriden)
• native
• escrito en otro lenguaje, código específico para una plataforma
• synchronized
• para ser usado por threads y no causar problemas típicos de multiproceso
16. Sobrecarga de métodos
• Varios métodos pueden compartir el mismo
nombre, deben de diferir en el número y/o tipo de
parámetros
public int suma (int a, int b){}
public double suma (double a, double b){}
public void suma (){}
17. Redefinición de métodos
• Una clase puede reemplazar (override) un método de su
superclase
• El método debe ser exactamente igual (tipo de regreso, nombre y
parámetros), sólo cambia la programación
• Casi todas las clases reprograman toString()
• Para agregar código a un método se puede llamar
super.nombre(...)
• Los métodos final y static no se pueden reprogramar
• Los métodos abstract de una superclase se deben de
reprogramar
18. Parámetros de un método
• Se usan para pasar información a un método
• Se debe declarar el tipo y nombre de cada uno, separados por
coma
• Pueden ser de cualquier tipo válido en Java (primitivos, objetos,
arreglos)
• No se pueden pasar métodos como parámetros, pero se puede
pasar un objeto y llamar a uno de sus métodos
• Si tienen el mismo nombre que una variable de la clase, el
parámetro “esconde” a la variable dentro del cuerpo del método,
para accesar a la variable es necesario usar this
• No pueden tener el mismo nombre que otro parámetro, variable
local o parámetro de un catch
19. Paso por valor
• Los parámetros en Java se pasan por valor
• Tipos primitivos
• El valor no cambia
• Tipos por referencia
• La referencia no cambia, pero se pueden invocar sus
métodos y modificar sus variables
20. Ejemplo
public cambiaValor (int x, Button b){
x = 5;
b.setLabel(“Otro letrero”);
}
int edad = 25;
Button boton = new Button (“Letrero original”);
cambiaValor (edad, boton);
edad = 25 edad = 25
cambiaValor(edad,boton)
21. Métodos
• this
• se refiere al objeto en ejecución, el ejemplar al cual
pertenece el método
• super
• Para acceder a variables y métodos de la superclase
• variables locales
• Declaradas en el cuerpo del método, están “vivas”
durante la ejecución del método
22. Miembros de una clase
• Miembros de clase
• Se definen static
• Existe sólo una copia en memoria, compartida por todas los
ejemplares de la clase
• No pueden acceder a variables de ejemplar
• Miembros de ejemplar
• Se utilizan a través de un objeto (objeto.variable u
objeto.método(...))
• Existe una copia separada por cada objeto
• Pueden acceder a variables de clase
private
Ninguna otra clase puede crear una instancia de esta clase. Pero la clase puede tener métodos public que creen una instacia y la regresen como una referencia
protected
Sólo subclases de esta clase pueden crear instancias. Clases independientes no pueden crear instancias esto se hace como protección y modularidad
public
Todas las clases pueden crear instancias de esta clase. Cualquier clase del programador o de otros paquetes pueden instanciar y utilizar objetos de esta clase
package
Sólo clases del mismo paquete puede crear instancias de esta clase. En caso de utilizar un paquete se utiliza package para evitar que alguna otra clase cree un objeto, pero clases del mismo paquete puede crear objetos de esta clase para dar modularidad y seguridad