Vous êtes sur la page 1sur 84

La Programacin Orientado a Objetos

Terminologa de la POO
Clase
Objeto
Atributos
Mtodos
Instancia
Abstraccin
Encapsulamiento
Modularidad
Jerarqua
Generalizacin


Herencia
Asociacin
Agregacin
Polimorfismo
Constructor
Destructor
Miembro Pblico
Miembro Privado
Miembro Protegido

Introduccin a la Programacin Orientado a
Objetos (POO).
Significado de Orientado a Objetos
El significado de Orientado a Objetos nace como un
conjunto de prcticas que definen un estilo de
programacin.

Los seres humanos perciben el mundo como si estuviera
formado por objetos: mesas, sillas, computadoras, coches,
cuentas bancarias, etc., donde consciente o
inconscientemente tienden a organizarlos, clasificarlos,
relacionarlos entre si, y hasta extraen las caractersticas ms
importantes dependiendo de lo que quieren hacer con ellas.
Las clases y los objetos estn en todas partes
Vehculo
Animal
Figura
Terminologa de la POO
Identificar clases y objetos (CLASIFICAR)
Terminologa de la POO
Identificar clases y objetos (CLASIFICAR)
Terminologa de la POO
Creacin del Objeto
Concepto
Generalmente, una clase se puede definir como una descripcin
abstracta de un grupo de objetos, cada uno de los cuales tiene
una serie de atributos, un estado especfico y es capaz de
realizar una serie de operaciones.




Clases
Atributos
Operaciones
Comportamiento
Lavadora
marca
modelo
capacidad...
Programar
PonerRopa
CerrarPuerta
Lavar
Objetos
Concepto:
Un objeto, no es ms que una instancia de una clase. La
instancia de una clase significa definir un objeto dndole valores
a sus atributos y comportamiento, y realizando operaciones
permitidas por la clase.


Valores de los atributos
Estado
Identidad
ID:Lavadora
marca=Lapava
capacidad=5
estado=enjuagando
Terminologa de la POO
Descripcin de una clase
Programacin Orientada a
Objetos
Definicin:
La POO es un estilo de programacin, donde todos los
elementos que forman parte del problema se conciben como
objetos, definiendo cuales son sus atributos y comportamiento,
como se relacionan entre s y como estn organizadas.

Estructura Interna de un Objeto:

Atributos: Define el estado del objeto

Mtodos: Define el comportamiento del objeto

Terminologa de la POO
Identificar clases y objetos
clase perro
propiedades como: peso, color y raza.
cada vez que necesitemos un objeto
perro no ser necesario crearlo
desde cero, bastar con que
invoquemos a nuestro constructor de
perros para que nos cree otro con la
misma estructura.
Terminologa de la POO
Creacin del Objeto
Terminologa de la POO
Creacin del Objeto
Box b1 = new Box();
Box b2 = b1;
Ambos objetos apuntan al mismo
espacio de MEMORIA.
Terminologa de la POO
Cada OBJETO tiene su propia
IDENTIDAD
Creacin del Objeto
Dana y Jenny
Terminologa de la POO: ABSTRACCION
Abstraccin: La abstraccin es la
capacidad que permite representar las
caractersticas esenciales de un objeto
sin preocuparse de las restantes
caractersticas (no esenciales).

Terminologa de la POO
A
B
S
T
R
A
C
C
I

N

Terminologa de la POO
A
B
S
T
R
A
C
C
I

N

Abstraccin
L
a

C
L
A
S
E

e
s

u
n
a

d
e
s
c
r
i
p
c
i

n

a
b
s
t
r
a
c
t
a

Abstraccin
L
a

C
L
A
S
E

e
s

u
n
a

d
e
s
c
r
i
p
c
i

n

a
b
s
t
r
a
c
t
a

Abstraccin
L
a

C
L
A
S
E

e
s

u
n
a

d
e
s
c
r
i
p
c
i

n

a
b
s
t
r
a
c
t
a

Terminologa de la POO
Encapsulamiento: Es la propiedad
que permite asegurar que los
aspectos externos de un objeto se
diferencie de sus detalles internos.
Encapsulamiento
El encapsulamiento (ocultacin de la informacin)
permite que un objeto esconda sus datos de los
dems objetos y pueda acceder a los datos
mediante sus propios mtodos.
Encapsulamiento
La capacidad que tienen los objetos de construir una
cpsula a su alrededor ocultando la informacin que
contienen (aquella que es necesaria para su
funcionamiento interno, pero innecesaria para los dems
objetos) es lo que se llama encapsulamiento.

El encapsulamiento asegura que los objetos no pueden
cambiar el estado interno de otros objetos de maneras
inesperadas; solamente los propios mtodos internos del
objeto pueden acceder a su estado.

Encapsulamiento
Encapsulamiento
Encapsulamiento
O
c
u
l
t
a
m
i
e
n
t
o

d
e

l
a


I
N
F
O
R
M
A
C
I

N

En las siguientes figuras
podemos ver que solo los
miembros pblicos de una clase
son los que interactan con el
exterior, protegiendo as el
acceso a los miembros privados
de un objeto.
Encapsulamiento
O
c
u
l
t
a
m
i
e
n
t
o

d
e

l
a


I
N
F
O
R
M
A
C
I

N

Encapsulamiento
O
c
u
l
t
a
m
i
e
n
t
o

d
e

l
a


I
N
F
O
R
M
A
C
I

N

Encapsulamiento
Ocultamiento de la
INFORMACIN
public class Semaforo
{
private String EstadoSemaforo = Rojo;

public void PonColor (String Color)
{
EstadoSemaforo = Color;
}

public String DimeColor()
{
return EstadoSemaforo;
}
}
Interface
Encapsulamiento
O
c
u
l
t
a
m
i
e
n
t
o

d
e

l
a


I
N
F
O
R
M
A
C
I

N

Acceso Pblico (+)
Acceso Privado (-)
Encapsulamiento
Ocultamiento de la
INFORMACIN
Terminologa de la POO
Modularidad: La modularidad es la propiedad que
permite dividir una aplicacin en partes ms
pequeas ( llamadas mdulos ), cada una de las
cuales debe ser tan independiente como sea posible
de la aplicacin en si y de las restantes partes.
La modularidad consiste en la descomposicin de algo grande
y complejo, en partes ms sencillas y manejables.
Terminologa de la POO
Modularidad
La Modularidad es la propiedad que permite subdividir una aplicacin en partes
ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicacin en s y de las restantes partes.
Terminologa de la POO
Modularidad
Terminologa de la POO
Modularidad
Terminologa de la POO
M
o
d
u
l
a
r
i
d
a
d

Terminologa de la POO
Modularidad
Objetos
Terminologa de la POO
Modularidad
Terminologa de la POO
Herencia: Es una propiedad que permite que los
objetos sean creados a partir de otros ya existentes,
obteniendo caractersticas (mtodos y atributos)
similares a los ya existentes..
Simple
Multiple
Terminologa de la POO
Herencia de Clases
Terminologa de la POO
Herencia: Del mismo modo, cuando definimos una
clase a partir de una clase padre estamos creando
una subclase. La definicin de una subclase se le
denomina herencia.
Terminologa de la POO
Clases y Superclases
Terminologa de la POO
Herencia
Mamfero
Gato Perro
Terminologa de la POO
Herencia:
public class Mamifero
{

private int patas;
private String nombre;

public void imprimirPatas()
{
System.out.println(nombre + tiene + patas + patas\n);
}
Terminologa de la POO
Herencia:
public Mamifero(String nombre, int patas)
{
this.nombre = nombre;
this.patas = patas;
}
}

public class Perro extends Mamifero
{
public Perro(String nombre){
super(nombre, 4);
}
}

Terminologa de la POO
Herencia:
public class Gato extends Mamifero
{
public Gato(String nombre){
super(nombre, 4);
}
}

public class CreaPerro {
public static void main(String [] args)
{
Perro bobi = new Perro(Bobi);
bobi.imprimirPatas(); /*Est en la clase mamfero*/
}
}
Terminologa de la POO
Herencia:
Terminologa de la POO
Herencia:
Superclase
Subclase
Terminologa de la POO
Herencia:
Terminologa de la POO
Generalizacin: Una clase que comparte atributos y
mtodos similares con otras clases se le llama
superclase o clase padre. Cuando definimos una
clase padre estamos generalizando.

Terminologa de la POO
Asociacin: Una asociacin es una relacin
semntica entre objetos. Cuando un objeto accede a
los atributos y mtodos de otro objeto estamos
definiendo una asociacin entre ellos.

Agregacin: La agregacin es una relacin que
define que un objeto es parte de otro objeto. Cuando
definimos que un objeto tiene como atributo otro
objeto decimos que es una agregacin. A travs de la
agregacin se definen objetos compuestos.
Terminologa de la POO
Polimorfismo: Es el mecanismo de definir un
mismo mtodo en varios objetos de diferentes clases
pero con distintas formas de implementacin.

Constructor: Es un mtodo que se invoca cuando
un objeto es construido

Destructor: Es un mtodo que se invoca cuando un
objeto es destruido.
Terminologa de la POO
Sintaxis para declarar una Clase:



modificadoresDeClase class NombreDeClase [extends NombreDeSuperClase]
{
// Miembros de la clase: variables, mtodos

// [constructores y otras clases]
}
Terminologa de la POO
Modificadores utilizados para declarar clases y sus miembros
Terminologa de la POO
Modificadores de Acceso utilizados en Mtodos y Variables

Sintaxis para declarar Mtodos:


[modificadores de acceso] tipoDeDatoRegresado

nombreDelMtodo (lista de parmetros) [throws listadeExcepciones]

Terminologa de la POO
Modificadores de Acceso utilizados en Mtodos y Variables

Terminologa de la POO
Miembro Pblico: Atributo o mtodo de una clase
que puede ser accesado desde cualquier parte del
programa.

Miembro Privado: Atributo o mtodo de una clase
que puede ser accesado solo dentro de esa clase.

Miembro Protegido: Atributo o mtodo de una
clase que puede ser accesado desde esa clase y sus
clases heredadas.
Terminologa de la POO
Identificar clases y objetos
Los elementos pblicos forman la interfaz externa del objeto, mientras que los
elementos privados son los aspectos internos que no necesitan ser accesibles
para usar el objeto. Los elementos de una clase sin especificador y los protected
tienen las mismas propiedades que los pblicos respecto a las clases del paquete.
Terminologa de la POO
Visibilidad, x indica que el acceso est permitido
Programacin Orientada a Objetos
Elementos grficos del paquete
javax.awt
HERENCIA
Programacin Orientada a Objetos
Terminologa de la POO
Trabajando con clases predefinidas del paquete javax.swing - java.awt
Componentes de una Interfaz Grafica de usuario
Terminologa de la POO
Componentes de una Interfaz Grafica de usuario
Terminologa de la POO
Trabajando con clases predefinidas del paquete javax.swing - java.awt
Componentes de una Interfaz Grafica de usuario
Programacin Orientada a Objetos
import javax.swing.*;

public class Ventana extends JFrame
{
public Ventana()
{
super("Ventana vaca");
}

public static void main(String[] arg)
{
Ventana frmVacia = new Ventana();
frmVacia.setBounds(0,0,450,350);
frmVacia.setVisible(true);
}
}
Ttulo
Constructor
Invocacin al constructor de
la super clase (padre).
Creacin de una VENTANA Vaca (con Herencia)
Programacin Orientada a Objetos
Creacin de una VENTANA Vaca (sin utilizar la Herencia)
import javax.swing.*;

public class Ventana
{
public static void main(String[] arg)
{
JFrame frmVacia = new JFrame("Ventana vaca");
frmVacia.setBounds(0,0,450,350);
frmVacia.setVisible(true);
}
}
Titulo de la ventana
Creacin del objeto
Creacin de una Ventana con un Botn
Creacin de una ventana con un
botn (No usa Herencia)
Creacin de una Ventana a partir de una Clase Base
Uso de la Herencia para crear una Ventana
Ventana con Botn y Herencia
Objeto
Creacin de una ventana con
un botn ( con Herencia)
Creacin del Objeto
Creacin de una ventana de Dialogo
OBJETOS: Cajas de Dialogo
Programacin Orientada a Objetos
import javax.swing.*;

public class SumaDos
{
public static void main( String args[] )
{
String strNumero1;
String strNumero2;
int intNumero1;
int intNumero2;
int suma;

strNumero1 = JOptionPane.showInputDialog( "Ingrese el numero 1: " );
strNumero2 = JOptionPane.showInputDialog( "Ingrese el numero 2: " );

intNumero1 = Integer.parseInt( strNumero1 ); //convertir a entero
intNumero2 = Integer.parseInt( strNumero2 );

suma = intNumero1 + intNumero2;

JOptionPane.showMessageDialog(null, "La suma es " +suma);
}
}
OBJETOS: Cajas de Dialogo
Entrada de Datos
Salida de Datos
Programacin Orientada a Objetos
JOptionPane.showInputDialog( "Ingrese el numero 1: " );
JOptionPane.showInputDialog( "Ingrese el numero 2: " );
JOptionPane.showMessageDialog(null, "La suma es " +suma);
OBJETOS: Cajas de Dialogo
Programacin Orientada a Objetos
OBJETO: Campos de Texto
Campo de Texto
Programacin Orientada a Objetos
OBJETO: Campos de Texto
Campo de Texto
Programacin Orientada a Objetos
OBJETO: Campos de Texto Y Botn
Continua
Programacin Orientada a Objetos
OBJETO: Campos de Texto Y Botn
continua de la anterior
Programacin Orientada a Objetos
OBJETO: Campos de Texto
Campo de Texto
Programacin Orientada a Objetos
Programacin Orientada a Objetos
Programacin Orientada a Objetos
OBJETO: Area de Texto
Campo de Texto
Terminologa de la POO
import javax.swing.*;
public class Formulario extends JFrame
{
private JTextField texElementoBuscar;
private JTextArea texTexto;

public Formulario()
{
setLayout(null);
texElementoBuscar = new JTextField();
texElementoBuscar.setBounds(10,10,200,30);
add(texElementoBuscar);
texTexto = new JTextArea();
texTexto.setBounds(10,50,400,300);
add(texTexto);
}
Terminologa de la POO
public static void main(String[] ar)
{
Formulario formaBuscar = new Formulario();
formaBuscar.setBounds(0,0,540,400);
formaBuscar.setVisible(true);
}
}
Terminologa de la POO
Terminologa de la POO
TAREA: Realizar un buscador de palabras
utilizando un objeto de rea de Texto.

Vous aimerez peut-être aussi