You are on page 1of 6

Programacin Orientada a Objetos (POO)

en Java !: !ntroduccin
Franco Guidi Polanco
Escuela de Ingenieria Industrial
Pontificia Universidad Catolica de Jalparaiso, Chile
fguidiucv.cl
Franco Guidi Polanco 2
Clases y objetos
Pez
Clase PEZ
Los objetos de esta clase tienen
color
y tienen la capacidad de
respirar bajo el agua,
nadar y alimentarse.
PECES
Estas son instancias de la
clase pez.
Una clase es un tipo al cual pertenecen objetos
o instancias de la clase.
Franco Guidi Polanco 3
Clases y objetos de software
Una clase es una unidad de software que posee
memoria y comportamiento.
Una clase es el "plano" que permite "construir"
un objeto: define sus propiedades (datos que
almacena el objeto) y el cdigo de sus mtodos
(comportamiento).
memoria
propiedades
comportamiento
mtodos
Franco Guidi Polanco +
Componentes de una clase en Java
Una clase en Java tiene:
atributos: propiedades de los objetos de la clase.
mtodos: procedimientos que comparten los objetos de
la clase.
constructores: procedimientos que se ejecutan en el
momento de la instanciacin del objeto (tienen el mismo
nombre de la clase).
Franco Guidi Polanco 5
Uso de clases y objetos
Los objetos deben instanciarse
Cada objeto tiene su propia identidad
Cada objeto se "referencia" desde una variable
BufferedReader Iector = new BufferedReader( )
Operador
para instanciar
1 Crea una instancia de
la clase BufferedReader
2 Asigna el objeto
a la variable lector
Variable de reIerencia
Tipo de la variable
de reIerencia
Franco Guidi Polanco 6
!nstanciacin de objetos
Para utilizar un objeto primero se debe definir
una variable que lo referenciara, con el formato:
Clase variable
Luego se debe crear el objeto (instancia de
clase), de la siguiente forma:
variable = new Constructor(lista de parametros)
Franco Guidi Polanco 7
!nstanciacin de objetos (cont.)
Nota:
La lista de parametros son datos que se ha
especificado como requeridos para crear el
objeto.
Una misma clase puede tener distintas
especificaciones de parametros requeridos para
su instanciacin, o podria no requerirlos.
Los datos de la lista de parametros se separan
con comas.
Franco Guidi Polanco 8
!nstanciacin de objetos: ejemplo
Tiene los siguientes mtodos:
depositar{int monto) : permite abonar el valor de monto a la
cuenta.
girar{int monto): permite registrar un giro por el valor de monto.
obtenerSaldo{): retorna el saldo de la cuenta (valor int).
obtenerTransacciones{): retorna la cantidad total de
transacciones (giros y depsitos) que se han hecho sobre la cuenta
(valor int).
Y el siguiente constructor:
CajaAhorro{) : inicializa la cuenta con saldo y contador de
transacciones en cero.
Suponer la clase CajaAhorro que permite mantener el
registro de depsitos y giros de una cuenta.
Franco Guidi Polanco 9
!nstanciacin de objetos: ejemplo (cont.)
public class Ejemplo {
public static void main (String arg[]) {
CajaAhorro cta1 = new CajaAhorro();
cta1.depositar(1000);
cta1.depositar(500);
cta1.girar(300);
int saldo = cta1.obtenerSaldo();
int trans = cta1.obtenerTransacciones();
System.out.println( El saldo es + saldo );
System.out.println( Se han hecho + trans + transacciones );
}
}
Se creara una instancia de CajaAhorro y se accesaran sus
mtodos:
Franco Guidi Polanco 10
!nstanciacin de objetos: ejemplo (cont.)
public class Ejemplo {
public static void main (String arg[]) {
CajaAhorro cta1 = new CajaAhorro();
CajaAhorro cta2 = new CajaAhorro();
cta1.depositar(1000);
cta2.depositar(500);
cta1.girar(800);
System.out.println( El saldo de cuenta 2 es +
cta2.obtenerSaldo() );
System.out.println( Hubo + cta1.obtenerTransacciones() +
transacciones en cuenta 1 );
}
}
Es perfectamente posible trabajar con mas de una instancia
de la clase:
500
2
Franco Guidi Polanco 11
Ejemplo de una clase
Se encuentra en el
archivo
CajaAhorro.java
public class CajaAhorro {
private int saldo;
private int transacciones;
public CajaAhorro() {
saldo = 0;
transacciones = 0;
}
public void depositar( int monto ) {
saldo = saldo + monto;
transacciones++;
}
public void girar( int monto ) {
saldo = saldo - monto;
transacciones++;
}
public int obtenerSaldo() {
return saldo;
}
public int obtenerTransacciones() {
return transacciones;
}
}
Variables de instancia
Constructor
Metodos
Franco Guidi Polanco 12
import java.io.*;
class Banco {
public static void main(String argum[]) throws IOException {
BufferedReader op = new BufferedReader(new InputStreamReader(System.in));
String opc; int cant,opcion;
CajaAhorro cuenta = new CajaAhorro();
boolean continuar = true;
while( continuar ){
System.out.println("Seleccione una opcin");
System.out.println("1.-Depositar 2.-Girar 3.-Cons. Saldo 4.- Salir");
opcion= Integer.parseInt( op.readLine() );
switch (opcion) {
case 1:
System.out.println("Ingrese la Cantidad a depositar");
cant= Integer.parseInt( op.readLine() );
cuenta.depositar(cant);
break;
case 2:
System.out.println("Ingrese la Cantidad a girar");
cant=Integer.parseInt( op.readLine() );
cuenta.girar(cant);
break;
case 3:
System.out.println("Saldo :" + cuenta.obtenerSaldo());
System.out.println("Trans.: + cuenta.obtenerTransacciones());
break;
case 4:
continuar = false;
}
}
}
} // fin clase
Ejemplo de programa que utiliza una clase
Franco Guidi Polanco 13
Ejemplo: clase CajaAhorro
Objeto
Saldo
Transacciones
girar
depositar
obtenerSaldo
obtenerTransacciones
0
0
Se requiere la
instanciacin
de un objeto
de la clase
CajaAhorro.
Aplicacion
Franco Guidi Polanco 1+
Ejemplo: depositar
Saldo
Transacciones
girar
depositar
obtenerSaldo
obtenerTransacciones
Objeto Aplicacion
Usuario
Opcion Depositar
Monto $: 1000
depositar (1000)
0
0 1000
1
Franco Guidi Polanco 15
Ejemplo: depositar (otra vez)
Saldo
Transacciones
girar
depositar
obtenerSaldo
obtenerTransacciones
Objeto
Usuario
Opcion Depositar
Monto $: 500
depositar (500)
1
1000 1500
2
Aplicacion
Franco Guidi Polanco 16
Ejemplo: girar
Saldo
Transacciones
girar
depositar
obtenerSaldo
obtenerTransacciones
Objeto
Usuario
Opcion Girar
Monto $: 300
girar (300)
2
1500 1200
3
Aplicacion
Franco Guidi Polanco 17
Ejemplo: consultar estado
Saldo
Transacciones
girar
depositar
obtenerSaldo
obtenerTransacciones
Objeto
Usuario
Opcion consultar
estado
obtenerSaldo ()
2
1500 1200
3
1200
Saldo $1200
obtenerTransacciones()
3
Transacciones: 3
Aplicacion
Franco Guidi Polanco 18
Posibilidades de la POO
Usar clases previamente implementadas.
Ejemplos:
BufferedReader
String
Definir e implementar nuevas clases.
Franco Guidi Polanco 19
Fundamentos de la P.O.O.
La POO (Programacin Orientada a Objetos) se
basa en cuatro conceptos:
Abstraccin EncapsuIacin Herencia PoIimorfismo
Franco Guidi Polanco 20
Fundamentos de la POO: Abstraccin
Un objeto es capaz de desempenar una funcin de forma
completamente independiente del contexto en que ste
es utilizado.
En otras palabras, en cualquier ambito (incluso diferente
a aquel en que fue creado), un objeto expone las
mismas propiedades y sus operaciones se comportan de
la misma forma.
Abstraccin
Franco Guidi Polanco 21
Fundamentos de la POO: Encapsulacin
Un objeto es capaz de responder a peticiones sin
exponer la forma en que estas son ejecutadas.
En otras palabras, la invocacin de una operacin sobre
un objeto gatilla un proceso cuyo efecto es logrado sin
dar a conocer sus estructuras internas, ni sus algoritmos.
EncapsuIacin
Franco Guidi Polanco 22
Fundamentos de la POO: Herencia
Una clase puede ser generada a partir de otra clase
preexistente, heredando las propiedades de esta ultima.
Herencia
Franco Guidi Polanco 23
Fundamentos de la POO: Polimorfismo
Objetos de un mismo (super)tipo pueden realizar una
misma operacin de forma distinta.
PoIimorfismo

You might also like