Documente Academic
Documente Profesional
Documente Cultură
Programacin II - POO
Paradigma de la POO
POO es un paradigma de programacin que define los programas en trminos de "clases de objetos". Los objetos son entidades que combinan:
Programacin II - POO
Paradigma de la POO
Objeto
Programacin II - POO
Paradigma de la POO
Datos de entrada Programacin orientada a objetos
Programacin estructurada
se definen
separa
se trabaja
atributos mtodos
Datos
Procedimientos
Escribir funciones
Objetos
se envan
Pasarles datos Mensajes para que los objetos realicen los mtodos Datos de salida
Programacin II - POO
Objetos
Programacin II - POO
Objetos
Un objeto es una instancia de una clase provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("mtodos") Hay objetos fsicos, por ejemplo: el objeto persona, el objeto libro, el objeto rectngulo; Hay objetos abstractos como una reserva de pasaje, una inscripcin a una materia, una solicitud de beca.
Programacin II - POO
Objetos
Pueden tener componentes (variables o mtodos) pblicos o privados La encapsulacin del comportamiento y de los datos permite que el cdigo de un objeto pueda escribirse y mantenerse de forma independiente a los dems objetos
Programacin II - POO
Objetos
Los objetos tienen un tiempo de vida que comienza cuando el objeto es creado, desde este momento esta en condiciones de recibir mensajes hasta que son destruidos.
Programacin II - POO
Objetos
Declaracin Instancia de una Clase Inicializacin Declaracin y creacin Objetos en Java Destruccin de Objetos en Java
Programacin II - POO
Objetos - Declaracin
Como declarbamos una variable de un tipo primitivo ?
Programacin II - POO
Objetos - Declaracin
Declarar una variable para contener un objeto es exactamente igual que declarar una variable que va a contener un tipo primitivo tipo nombre tipo es el tipo de dato del objeto nombre es el nombre que se va a utilizar para referenciar al objeto
Programacin II - POO
Objetos - Declaracin
Para crear una instancia de una clase se utiliza el operador new en combinacin con un mtodo constructor. Luego del operador new se encuentra una llamada al mtodo constructor de la clase, responsable de la inicializacin de los objetos de esa clase.
Programacin II - POO
Ejemplo: new Date(2007, 10, 02); El operador new devuelve una referencia al objeto recin creado. Esta referencia puede ser asignada a una variable del tipo apropiado.
(Date es una clase del paquete java. Util)
Programacin II - POO
Date fecha ; //declaramos variable fecha de tipo Date fecha = new Date(2007, 10, 02);
//new Date(2007, 10, 02) crea objeto de tipo Date // la referencia al objeto Date se asigna a fecha
Programacin II - POO
Objetos - Inicializacin
Las clases proporcionan mtodos constructores para inicializar los nuevos objetos de ese tipo En el cdigo de una clase, los constructores se reconocen porque tienen el mismo nombre que la clase y no tienen tipo de retorno. Un constructor que no tiene ningn argumento es conocido como constructor por defecto. Si una clase tiene varios constructores, todos ellos tienen el mismo nombre pero se deben diferenciar en el nmero o el tipo de sus argumentos.
Programacin II - POO
Objetos - Inicializacin
Programacin II - POO
Objetos en Java
En Java podemos:
declarar instanciar e inicializar un objeto de una clase en una sentencia
Programacin II - POO
Objetos - Destruccin de
Objetos en Java
Muchos lenguajes orientados a objetos necesitan que los objetos que se han creado, se destruyan cuando ya no se necesiten. En Java, el programador puede crear tantos objetos como quiera limitado por los que el sistema pueda manejar. El entorno de ejecucin Java se encarga de la destruccin de los objetos por medio de un proceso de recoleccin de basura.
Programacin II - POO
Objetos - Destruccin de
Objetos en Java
El recolector de basura escanea la memoria buscando objetos y marcando aquellos que han sido referenciados. Luego los que no estn marcados son eliminados. Se puede pedir explcitamente al recolector de basura que se ejecute en cualquier momento con una llamada a System.gc().
Programacin II - POO
Clases
Programacin II - POO
Clases
Una clase es una fbrica que se puede utilizar para crear objetos. La implementacin de una clase consta de dos partes:
Programacin II - POO
Clases
DeclaracinDeLaClase { CuerpoDeLaClase }
Programacin II - POO
Clases Declaracin
Como mnimo la declaracin de una class NombredeClase { clase contiene la palabra clave class . . . y el nombre de la } clase que se est definiendo.
Programacin II - POO
Clases Declaracin
El nombre de una clase debe ser un identificador legal de Java y, por convencin, debe empezar con una letra mayscula. En la declaracin de una clase cuando se utiliza el modificador public se declara que la clase puede ser utilizada por objetos que estn fuera del paquete actual. Si no se especifica ningn modificador en la declaracin de una clase, slo puede ser utilizada por otras clases del mismo paquete.
Programacin II - POO
Clases Declaracin
class NumeroImaginario { ... } //esta clase solo ser accedida por clases del mismo paquete public class NumeroImaginario { ... } //esta clase podr ser accedida por clases de otros paquetes
Programacin II - POO
Programacin II - POO
class Rectangulo { float base; float altura; float superficie; void superficie //variable instancia 1 //variable instancia 2 //variable instancia 3 ( float dimBase, float dimAltura ) {
.
} //cierra el metodo } //cierra clase
Programacin II - POO
Mtodos
Programacin II - POO
Mtodos
Implementacin asociada a un mensaje cuya ejecucin se desencadena a partir de la recepcin de un "mensaje Implementacin del comportamiento de los objetos, es decir de lo que el objeto puede hacer. Puede producir un cambio en el valor de las variables instancia del objeto o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema.
Programacin II - POO
Mtodos - invocacin
Para llamar a un mtodo de un objeto, se utiliza la notacin . ,se aade al nombre del objeto referenciado el nombre del mtodo, separados por un punto ('.')
objetoReferenciado.nombreMtodo(listaArgumentos); objetoReferenciado.nombreMtodo(); //sin argumentos:
Programacin II - POO
Mtodos - invocacin
Ejemplo :
Contamos con una clase Rectangulo, que contiene un mtodo que implementa el cdigo necesario para lograr el movimiento de un rectngulo. Para aplicar la accin del movimiento sobre un rectngulo en particular, se le enva al objeto rectngulo el mensaje mover(x,y) donde x,y contienen la nueva posicin del rectngulo
Programacin II - POO
Mtodos - invocacin
Cdigo.
Rectangulo rect = new Rectangulo (); rect.mover(15, 37); //envi del mensaje mover a un objeto Rectangulo //la nueva posicin de rect ser x= 15 y=37 Rectangulo cubo = new Rectangulo (); cubo.mover(244, 47); //envi del mensaje mover a un objeto Rectangulo //la nueva posicin de cubo ser x= 15 y=37
Programacin II - POO
Mtodos - invocacin
El mtodo mover() no devuelve ningn valor. Supongamos que Rectangulo tiene otro mtodo dentroDe() que toma dos coordenadas x e y, y devuelve true si este punto est dentro del rectngulo. El mtodo dentroDe() lo podemos utilizar para hacer algo especial en algn punto del objeto rectangulo, como mostrar un mensaje que nos diga si el mause se encuentra o no sobre el rectangulo.
Programacin II - POO
Mtodos - invocacin
Cdigo:
dentro = (rect.dentroDe(mouse.x, mouse.y) ) ? el ratn esta dentro del rectngulo : ratn fuera del rectngulo;
Programacin II - POO
Mtodos
Programacin II - POO
Mtodos
declaracindeMtodo { cuerpodeMtodo }
Programacin II - POO
Proporciona mucha informacin sobre el mtodo al compilador, al sistema en tiempo de ejecucin y a otras clases y objetos. Junto con el nombre del mtodo, la declaracin lleva informacin como:
el tipo de retorno del mtodo, el nmero y el tipo de los argumentos necesarios, visibilidad de un mtodo es decir, qu otras clases y objetos pueden llamar al mtodo.
Programacin II - POO
Mtodos - Analicemos
el tipo de retorno del mtodo el nmero y el tipo de los argumentos necesarios visibilidad
void setearBase( double x ){ . } //cierra mtodo void setearAltura( double x ){ . } //cierra mtodo
Programacin II - POO
Mtodos - Analicemos
boolean esPuntoRectangulo( double x, double y ){ . } //cierra mtodo
Programacin II - POO
Mtodos - Analicemos
float superficie( ){ . } //cierra mtodo
Programacin II - POO
Mtodos - Analicemos
Programacin II - POO
Conclusiones:
Si un mtodo devuelve un valor se debe especificar el tipo de retorno Si un mtodo no devuelve ningn valor, debe ser declarado con tipo de retorno void (nulo) Los mtodos pueden devolver tipos de datos primitivos o tipos de datos de referencia (o sea objetos)
Programacin II - POO
Nombre de un Mtodo
El nombre de un mtodo puede ser cualquier identificador legal en Java Java soporta la sobrecarga de mtodos, lo que permite que varios mtodos pueden compartir el mismo nombre. Los mtodos son diferenciados por el compilador basndose en el nmero y tipo de sus argumentos. No se puede declarar mas de un mtodo con el mismo encabezado, darn un error del compilador.
Programacin II - POO
Es importante aclarar que los mtodos sobrecargados deben devolver el mismo tipo de dato
Programacin II - POO
Todo mtodo cuyo nombre sea igual que el de su clase es un constructor Los constructores se utilizan para inicializar un objeto nuevo del tipo de la clase Los constructores slo pueden ser llamados con el operador new.
Programacin II - POO
Argumentos de un mtodo
En la cabecera de un mtodo se declaran los argumentos y el tipo de los argumentos requeridos por el mtodo Se debe especificar :
cualquier tipo de dato vlido (tipos primitivos, como enteros, dobles, etc y tipos de referencia como arrays, objetos, etc...) Los nombres de los argumentos de un mtodo no pueden repetirse y deben ser diferentes a los nombres utilizados para identificar las variables locales del mtodo.
Programacin II - POO
Nombres de Argumentos
El cuerpo de un mtodo es donde se encuentra la declaracin de variables locales y el cdigo que debe ejecutarse cuando el mtodo es invocado.
Programacin II - POO
boolean esPuntoRectangulo( double x, double y ){ bolean esPunto ; esPunto = (rect.inside(mouse.x, mouse.y) ) ?true : false; return esPunto; } //cierra cuerpo mtodo
Programacin II - POO
Analicemos mtodo
float superficie(){ float sup; sup = this.base * this.altura; return sup; } //cierra cuerpo mtodo
Programacin II - POO
Utilizar this en el cuerpo de un mtodo para referirse a los miembros del objeto actual. (tanto variables instancias como mtodos) Todo mtodo que no sea declarado como void debe contener una sentencia return para devolver un valor. El tipo de dato del valor devuelto por la sentencia return debe corresponder con el tipo de dato que el mtodo tiene que devolver segun fue declarado
Programacin II - POO
Variables Locales
Dentro del cuerpo de un mtodo se puede declarar variables para usarlas dentro del mtodo.
}
int mayor(int x, int y){ int aux; if (x>y) aux = x; else aux = y; return aux;
Programacin II - POO
Estas variables son variables locales y viven slo mientras el control permanezca dentro del mtodo.
Programacin II - POO
Programacin II - POO
Control de acceso
Programacin II - POO
Por qu cree importante que las clases puedan proteger sus variables y mtodos frente al acceso de otros objetos ?
Programacin II - POO
Se ha escrito una clase que representa una peticin a una base de datos que contiene informacin sensible Se desea proteger las variables y mtodos privados a nivel del lenguaje y prohibir el acceso desde objetos de otros tipos
En Java se utilizan los modificadores de acceso los modificadores de acceso se utilizan en las declaraciones de clases, variables y mtodos.
Programacin II - POO
Programacin II - POO
Modificadores
Mismo paquete Subclase Mundo
si si si si si si
Programacin II - POO
Constructores
Cuando se declaran constructores para las clases, se pueden utilizar los Modificadores de acceso para especificar si otros objetos pueden crear ejemplares de su clase
Programacin II - POO
private Ninguna otra clase puede crear un objeto de su clase. La clase puede contener mtodos pblicos que pueden construir un objeto y devolverlo protected Slo las subclases de la clase pueden crear ejemplares de ella Public Cualquiera puede crear un ejemplar de la clase package-access Nadie externo al paquete puede construir un ejemplar de su clase
Programacin II - POO
- FIN UNIDAD 1 -
Programacin II - POO