Академический Документы
Профессиональный Документы
Культура Документы
Encapsulacin y
Constructores
Declaracin
public Rectangulo(){
x = 0;
y = 0;
ancho = 100;
alto = 100;
}
Variables
Constructor
Mtodos
}
Cuerpo
Programacin II (Java)
Encapsulacin y
Constructores
Creacin de Constructores
Los constructores son estructuras similares a los mtodos a
las que se llama automticamente cuando se instancia un
objeto.
La sintaxis de los constructores:
[modificadores] class NombreClase{
[modificador] NombreConstructor ([argumentos]){
bloque_cdigo;
}
}
Programacin II (Java)
Encapsulacin y
Constructores
Creacin de Constructores
La sintaxis de los constructores:
[modificadores] class NombreClase{
[modificadore] NombreConstructor ([argumentos]){
bloque_cdigo;
}
}
Donde:
[modificadores] palabra reservada de Java que determina la forma
de acceso al constructor.
NombreConstructor, es el nombre del mtodo constructor. El
nombre de constructor debe de ser igual al nombre de la clase.
[argumentos] representan uno o varios valores opcionales.
bloque_codigo representa una o varias lneas de cdigo.
private
Ninguna otra clase puede crear una instancia de esta clase.
protected
Slo subclases de esta clase pueden crear instancias
public
Todas las clases pueden crear instancias de esta clase
default
Slo clases del mismo paquete puede crear instancias de esta
clase. Este caso se da cuando no se especifica ninguno de los
otros niveles de acceso.
Ejemplo
package figuras;
public class Rectangulo{
public Rectangulo(int alto, int ancho){
//Cualquier clase puede declarar rectangulos
//Especificando su ancho y alto
}
Rectangulo(int alto, int ancho, int posicionX, int
posicionY){
//Solo clases del mismo paquete pueden
//Inicializar el rectangulo con
}
}
public class Utilerias {
Utilerias(){
Rectangulo rect=new Rectangulo(10,10, 0, 5);
}
}
Error
Programacin II (Java)
Encapsulacin y
Constructores
Creacin de Constructores
Por ejemplo:
public class Camisa{
private int camidaId=0;
private String descripcion=-descripcion;
private char color=U;
Programacin II (Java)
Encapsulacin y
Constructores
Creacin de Constructores
Por ejemplo:
public class ConstructorCamisa{
public statict void main(String args[]){
Camisa camisa = new Camisa(R);
char color;
color = camisa.getColor();
System.out.println(Codigo de color: +color);
}
}
Programacin II (Java)
Encapsulacin y
Constructores
Creacin de Constructores
Como en el caso de los mtodos, es posible
sobrecargar los constructores incluyendo varios
constructores en una clase, cada uno de ellos con
el mismo nombre y diferentes series de
argumentos.
Programacin II (Java)
Encapsulacin y
Constructores
Constructor Default
Si el compilador Java encuentra una clase que no tiene ningn
constructor definido de forma explicita, incluye un constructor
predeterminado.
Programacin II (Java)
Encapsulacin y
Constructores
Constructor Default
Programacin II (Java)
Encapsulacin y
Constructores
Sobrecarga de constructores
Programacin II (Java)
1
2
4
5
Encapsulacin y
Constructores
Sobrecarga
de constructores
3
6
7
8
9
10
11
12
13
public Time2()
{
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Programacin II (Java)
Encapsulacin y
Constructores
Sobrecarga de mtodos
29
30
31
{
setTime( h, m, s ); // invoke setTime to validate time
32
33
34
35
36
37
38
39
40
41
42
// Set Methods
43
44
45
46
47
setHour( h );
48
49
50
51
Programacin II (Java)
Sobrecarga de mtodos
52
53
54
{
hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
55
56
57
58
59
60
{
minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
61
62
63
64
65
66
{
second = ( ( s >= 0 && s < 60 ) ? s : 0 );
67
68
69
70
// Get Methods
71
72
73
74
75
76
return hour;
} // end method getHour
Encapsulacin y
Constructores
Programacin II (Java)
Sobrecarga de mtodos
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
return minute;
return second;
return String.format(
"%02d:%02d:%02d", getHour(), getMinute(), getSecond() );
94
95
96
97
98
99
100
101
102
} // end method toString
103 } // end class Time2
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
3
4
// 00:00:00
// 02:00:00
10
// 21:34:00
11
12
13
// 12:25:42
14
15
16
17
System.out.printf( "
%s\n", t1.toUniversalString() );
18
System.out.printf( "
%s\n", t1.toString() );
19
Programacin II (Java)
Encapsulacin y
Constructores
System.out.println(
"t2: hour specified; minute and second defaulted" );
22
System.out.printf( "
%s\n", t2.toUniversalString() );
23
System.out.printf( "
%s\n", t2.toString() );
24
25
26
System.out.println(
"t3: hour and minute specified; second defaulted" );
27
System.out.printf( "
%s\n", t3.toUniversalString() );
28
System.out.printf( "
%s\n", t3.toString() );
29
30
31
System.out.printf( "
%s\n", t4.toUniversalString() );
32
System.out.printf( "
%s\n", t4.toString() );
33
34
35
System.out.printf( "
%s\n", t5.toUniversalString() );
36
System.out.printf( "
%s\n", t5.toString() );
37
Programacin II (Java)
Encapsulacin y
Constructores
39
System.out.printf( "
%s\n", t6.toUniversalString() );
40
System.out.printf( "
%s\n", t6.toString() );
41
} // end main
Programacin II (Java)
Encapsulacin y
Constructores
Encapsulacin y constructores
JAVA
Programacin II (Java)
Encapsulacin y
Constructores
Uso de la encapsulacin
En la POO, la encapsulacin se refiere a la accin de
ocultar los datos dentro de una clase y hacer que
estn disponibles slo a travs de ciertos mtodos.
Programacin II (Java)
Encapsulacin y
Constructores
Modificador public
Este modificador hace que la clase, sus atributos y
mtodos estn visibles para cualquier objeto de su
programa.
Para hacer que un atributo o mtodo sea de acceso
publico, ponga el modificador public delante del
mtodo de la variable correspondiente o delante del
mtodo.
Programacin II (Java)
Encapsulacin y
Constructores
Si todos los atributos se declaran public, permite cambiar sus valores sin
comprobar posibles errores, por ejemplo:
public class Elevador{
public boolean abrirPuerta=false;
public int pisoActual = 1;
public int peso = 0;
public final int CAPACIDAD = 1000;
public final int ULTIMO_PISO = 5;
public final int PRIMER_PISO = 1;
}
Programacin II (Java)
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Modificador private
Este modificador impide que otros objetos puedan
acceder a los objetos de una determinada clase, sus
atributos y sus mtodos.
Para hacer que un atributo o mtodo sea de acceso
privado, ponga el modificador private delante del
mtodo o de la variable correspondiente al atributo.
Programacin II (Java)
Mtodo private
Por ejemplo:
public class Elevador{
private boolean abrirPuerta=false;
private int pisoActual = 1;
private int peso = 0;
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Modificador private
Programacin II (Java)
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Herencia
JAVA
Programacin II (Java)
Herencia
Uso de la herencia
En una empresa, se ha decidido que se ample la lnea de
productos para incluir gorros, calcetines y pantalones, al grupo
de camisas que ya venda.
A fin de poder desarrollar las clases necesarias para hacer la
actualizacin, deber realizar un breve anlisis. Adems de
recibir la siguiente informacin:
Solo vendern gorros y calcetines de talla nica.
Los modelos de pantalones sern distintos para hombre y mujeres.
Los pantalones se vendern en color azul y tostado, mientras que
los gorros, los calcetines y las camisas se vendern en rojo, azul y
verde
Programacin II (Java)
Herencia
Uso de la herencia
Gorros
Calcetines
Pantalones
Camisas
id
id
id
id
precio
precio
precio
Precio
descripcion
descripcion
tamao
Tamao=S,M,L
color=R,A,V
color=R,A,V
sexo=F , M
descripcion
cantidadEnExistencia
cantidadEnExistencia
descripcion
color=R,A,V
calculaId()
calculaId()
color=A,T
cantidadEnExistencia
despliegaInfo()
despliegaInfo()
cantidadEnExistencia
calculaId()
calculaId()
despliegaInfo()
despliegaInfo()
Programacin II (Java)
Herencia
Uso de la herencia
La herencia permite a los programadores poner miembros
Programacin II (Java)
Herencia
Superclase y subclase
Las clases que contiene miembros en comn a otra clase
Programacin II (Java)
Herencia
Superclase y subclase
Por ejemplo:
Superclase
Figura
Empleado
CuentaBancaria
CuentaDeCheque, CuentaDeAhorro
Programacin II (Java)
Herencia
MiembroComunidad
Empleado
Docente
Administrativo
Estudiante
Exalumno
Programacin II (Java)
Herencia
Uso de la herencia
Por ejemplo:
Prendas
Id
precio
descripcion
cantidadEnExistencia
Gorros
Calcetines
Pantalones
Camisas
color=R,A,V
color=R,A,V
tamao
tamao
genero=F , M
color=R,A,V
color=A,T
Declaracin de Clases
Modificadores
De acceso (default, public)
De comportamiento (abstract, final)
extends
identifica superclase
implements
identifica interfaz que se debe de implementar
package edu.uanl.estudiantes;
package edu.uanl.maestros;
class Estudiante {
import edu.uanl.estudiantes.Estudiante;
class Maestro{
//NO podra crear instancias de estudiante
}
package edu.uanl.estudiantes;
package edu.uanl.maestros;
import edu.uanl.estudiantes.Estudiante;
class Maestro{
//PODR crear instancias de estudiante
}
Declaracin - Comportamiento
final
Una clase con un modificador final no puede tener
subclases
abstract
Una clase abstracta no puede instanciarse. Su
proposito es solo para generar subclases.
Sirve para especificar el comportamiento de sus
subclases
Programacin II (Java)
Herencia
Programacin II (Java)
Herencia
Programacin II (Java)
Sobreescritura
Programacin II (Java)
Sobreescritura
Programacin II (Java)
Sobreescritura
Clases Abstractas
Hay clases que no deberan ser instanciadas.
Animal
comida
hambre
ubicacion
limites
hacerRuido()
comer()
dormir()
vagar()
Canino
vagar()
Perro
Lobo
hacerRuido()
comer()
hacerRuido()
comer()
Felino
vagar()
Gato
Len
hacerRuido()
comer()
hacerRuido()
comer()
Clases Abstractas
Te has preguntado que forma tendra una clase
Animal?? Como te puedes dar cuenta necesitamos la
clase Animal solo para heredar a otras clases y hacer
polimorfismo de sus mtodos. A este tipo de clases las
conocemos como Abstractas, ya que de esta solo
sabemos los mtodos que realiza y las variables de
instancia que la conforman.
Clases Abstractas
Una clase Abstracta no tiene cuerpo, solo tiene
declarados los mtodos que implementa y sus variables
de instancia.
Clases Abstractas
Al marcar la clase como abstract, el compilador detendr
a cualquier cdigo de crear una instancia de ese tipo de
clase.
abstract class Canine extends Animal {
public void roam() { }
}
Mtodos Abstractos
Cuando definimos una clase como abstracta, le estamos
diciendo al compilador que la clase DEBE ser
extendida, cuando definimos un mtodo como abstracto
le estamos diciendo al compilador que el mtodo DEBE
ser sobreescrito.
public abstract void comer() ;
Mtodos Abstractos
Un mtodo abstracto no tiene cuerpo. No abre ni cierra
braquets { }, termina con ;
public abstract void comer() ;
Programacin II (Java)
Herencia
Ejercicio
Representar la jerarqua de clases de publicaciones que
se distribuyen en una librera: revistas y libros, etc.
Todas las publicaciones tienen en comn una editorial y una fecha
de publicacin. Las revistas tienen una determinada periodicidad, lo
que implica el numero de ejemplares que se publican al ao y, por
ejemplo, el numero de ejemplares que se ponen en circulacin. Los
libros por el contrario, tienen un cdigo ISBN y el nombre del autor.
Programacin II (Java)
Herencia
Ejercicio
Publicacin
Revista
Libro
Programacin II (Java)
Herencia
Programacin II (Java)
Herencia
Diseo de Clases
Empleado
String nombre
String cargo
int id
int nivel
calcularId()
Editor
String[] habilidades
Gerente
Tecnico
Ilustrador
boolean formatoEdicion
Empleado[] listaEmp
String[] habilidades
String[] habilidades
desplegarInfo()
desplegarInfo()
desplegarInfo()
desplegarInfo()
getHabilidades()
setHabilidades(String[]
h)
Programacin II (Java)
Herencia
Programacin II (Java)
Encapsulacin y
Constructores
Composicin
Una clase puede tener referencias a objetos de otra
clase como miembros. A dicha capacidad se le
conoce como composicin.
Por ejemplo, un objeto de la clase RelojAlarma
necesita saber la hora actual y la hora en la que
sonara la alarma, por lo que es razonable incluir dos
referencias a objetos Tiempo como miembros del
objeto RelojAlarma.
La composicin es una forma de reutilizacin de
software, en donde una clase tiene como miembros
referencias o objetos de otras clases.
Programacin II (Java)
Composicin
Composicin tiene un
Herencia es un
Polimorfismo.
Encapsulacin.
Encapsulacin y
Constructores
Programacin II (Java)
Encapsulacin y
Constructores
Programacin II (Java)
Punto origen;
int radio;
public Circulo(int x, int y, int radio) {
origen = new Punto(x, y);
this.radio = radio;
}
public void mostrar() {
origen.mostrar();
System.out.println("radio = " + radio);
}
}
Encapsulacin y
Constructores
Programacin II (Java)
Composicin