Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Diseño orientado a objetos
Esta organización es más fácil de mantener, es más
versátil y adaptable a nuevas necesidades del mismo
sistema y además permite la reutilización de las
clases de objetos por otros sistemas.
Paradigmas de la programación
Los lenguajes de programación consisten de
dos elementos: código y datos
Los programas pueden organizarse
conceptualmente en torno a su código o en
torno a sus datos
2
Paradigmas de la programación
En torno al código:
Modelo orientado al proceso
¿Qué está ocurriendo?
Código: serie de pasos lineales
Código que actúa sobre los datos
Los programas pueden volverse problemáticos a
medida que se hacen más largos y complejos.
Paradigmas de la programación
En torno a los datos:
¿Quién está siendo afectado?
Programación orientada a objetos
Los programas se organizan alrededor de los
datos (objetos) y de interfaces para interactuar
con ellos
Conjunto de datos que controlan el acceso al
código
3
Programación Orientada a Objetos
Se dice que la POO es más natural que la
programación tradicional.
Permite organizar la información de una manera
que nos resulta más familiar
Refleja las técnicas de la naturaleza para abordar
la complejidad
Abstracción
Es un elemento esencial de la POO
Comúnmente utilizamos la abstracción para abordar
la complejidad. Por ejemplo, un automóvil que está
compuesto por varios sistemas.
Se aplica mediante clasificaciones jerárquicas
4
Abstracción
Las abstracciones jerárquicas de sistemas
complejos, se pueden aplicar a los programas de
computadora
Los datos se pueden transformar mediante la
abstracción en objetos
Cada objeto describe su comportamiento
Los objetos se pueden tratar como entidades que
responden a mensajes que les ordenan hacer
“algo”
Principios de la POO
Encapsulado
Mecanismo que permite unir el código junto con
los datos que manipula, manteniendo a ambos a
salvo de interferencias exteriores
El acceso al código y los datos es controlado por
una interfaz
La base del encapsulado es la clase
5
Principios de la POO
Herencia
Es el proceso mediante el cual un objeto adquiere
las propiedades de otro
Mediante la herencia, un objeto sólo necesita
definir aquellas cualidades que lo hacen único en
su clase
Principios de la POO
Polimorfismo
Permite que una interfaz sea utilizada por una
clase general de acciones
Es la propiedad que tienen algunas
operaciones de tener un comportamiento
diferente dependiendo del tipo de dato sobre el
que se aplican
Capacidad del código de un programa para ser
utilizado con diferentes tipos de datos
6
Clases y objetos
Una clase define la estructura y comportamiento
(datos y código) que serán compartidos por un
conjunto de objetos
Una clase define un nuevo tipo de dato a partir del
cual se pueden crear nuevos objetos
Cada objeto de una determinada clase contiene la
estructura y comportamiento definidos por la clase
Clases y objetos
Una clase es una construcción lógica,
mientras que un objeto tiene una realidad
física
Una clase especifica métodos (funciones) y
atributos (variables)
Un objeto es una instancia específica de una
clase
7
Composición
Las variables que contienen los objetos pueden
utilizarse de dos formas diferentes:
Almacenar valores de datos
Contener referencias a otros objetos
Los objetos que contienen otros objetos se llaman
objetos compuestos.
Los objetos compuestos son importantes debido a
que permiten representar estructuras mucho más
complejas que los objetos sencillos. P. ej.:
Un avión está compuesto por el tren de aterrizaje, las alas,
la cabina y otros objetos que son demasiado complejos
para ser representados como simples números o texto.
8
Clases en Java
Las clases son la parte central de Java
Una clase define un nuevo tipo de dato que
puede utilizarse para crear objetos de ese
mismo tipo o clase
Al definir una clase, se especifican los datos
que contiene y el código que opera sobre los
mismos
Clases en Java
La forma general de una clase es:
class nombreDeLaClase {
tipo variable1;
tipo variable2; Una clase se declara mediante la
… palabra clave class
tipo variableN;
9
Una clase para empezar
Se definirá una clase para representar un
pizarrón
Nombre: Pizarron
Atributos:
material String
color String
ancho double
alto double
La clase Pizarron
La clase debe guardarse en un archivo con el
nombre Pizarron.java
String color;
String material;
double ancho;
double alto;
10
Crear objetos de una clase
Una vez definida la clase, podemos crear
objetos de ese tipo desde otras clases o
programas
Para crear objetos, se utiliza el operador new,
de la siguiente forma:
Pizarron p=new Pizarron();
La variable ‘p’ representará una instancia de
‘Pizarron’
11
Acceso a los atributos de la clase
Por medio del operador ‘.’ se hace referencia
a los atributos definidos por la clase:
p.color=“Verde”;
System.out.println(“Color: ”+p.color);
p.alto=1.35;
p.ancho=3.23;
p.color="verde";
p.material="madera";
12
Variables de referencia a objetos
Analicemos el siguiente código:
Pizarron pz1,pz2;
pz1=new Pizarron();
pz2=pz1; pz1 y pz2 hacen referencia
al mismo objeto
pz1.ancho=4.25;
pz2.ancho=5.40;
pz1=new Pizarron();
pz2=new Pizarron();
pz3=pz1; Una asignación posterior
de pz1 no afecta al objeto
pz1.ancho=4.25; que referenciaba con anterioridad
pz2.ancho=5.40;
pz1=pz2;
13
Variables de referencia a objetos
Cuando una variable de referencia a un objeto
se asigna a otra, no se crea una copia del
objeto, sino una copia de la referencia
Métodos
Las clases están formadas por atributos
(variables de instancia) y métodos
Un método se define por el tipo de datos que
regresa, su nombre y los parámetros que
recibe:
‘tipo’ especifica el tipo de dato
tipo nombre(lista de parámetros) que devuelve el método
{
cuerpo del método
} La lista de parámetros es una
sucesión de pares de tipo e
identificador separados por comas
14
Agregar métodos a la clase Pizarron
Algunas acciones que se realizan con un
pizarrón son escribir, borrar y leer
Agregamos tres métodos que nos permitan
realizar dichas acciones:
void escribir(String texto)
void borrar()
String leer()
15
Métodos con parámetros
Los métodos que reciben parámetros permiten
que su funcionalidad resulte diferente cada
vez que son llamados con parámetros distintos
El método escribir(String texto) recibirá el
texto a escribir en el pizarrón (o en la variable
que contiene el texto escrito en el pizarrón)
16
Métodos que regresan un valor
En algunas ocasiones, será necesario que
algún valor generado por un método de una
clase se asigne a una variable para ser
utilizado de manera posterior
Para ésto, los métodos tienen la opción de
regresar un valor al terminar se ejecución,
valiéndose de la palabra clave return
El tipo de datos que regresa el método debe
ser igual al indicado en su declaración
17
Constructores
Por lo general, resulta más sencillo inicializar
las variables de un objeto al momento de
crearlo. Esto se hace mediante un constructor
Un constructor inicializa un objeto
inmediatamente después de su creación
El constructor es un método con el mismo
nombre de la clase, que es llamado con el
operador new
Constructores
A diferencia de otros métodos, los
constructores no regresan ningún tipo de
datos, aunque implícitamente regresan un
objeto de su clase
/* Constructor de la clase Pizarron */
Pizarron()
{
material=“madera”;
color=“verde”;
ancho=3.00;
alto=2.00;
texto=“”;
}
18
Constructores
Los constructores pueden recibir parámetros,
de manera que podamos decidir la forma
específica en la que se inicializa un objeto
/* Constructor con parámetros de la clase Pizarron */
Pizarron(String material, String color, double ancho, double alto, String texto)
{
this.material=material;
this.color=color;
this.ancho=ancho;
this.alto=alto;
this.texto=texto;
}
19