Sunteți pe pagina 1din 63

Programacin II - POO

Universidad Nacional del Comahue Facultad de Informtica

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:

estado (datos), comportamiento (mtodos) identidad (propiedad lo diferencia del resto)

Programacin II - POO

Paradigma de la POO

El programador debe pensar en trminos de atributos y mtodos


atributos mtodos
Interaccin que produce cambios de estado.

Objetos de la misma clase Objetos de otra clase

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

Ejemplo: Date hoy ;

OJO Las declaraciones NO crean nuevos objetos.


Programacin II - POO

Objetos - Instancia de una Clase

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

Objetos - Instancia de una Clase

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

Objetos - Instancia de una Clase

Como asignamos a una variable la referencia al objeto creado ?

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

Ejemplo de constructores Date cumpleaos; //declaracin de variable cumpleaos = new Date();


//constructor por defecto

cumpleaos = new Date(1963, 8, 30);

//Constructor que inicializa la fecha con Ao, mes y da

Programacin II - POO

Objetos - Declaracin y creacin

Objetos en Java

En Java podemos:
declarar instanciar e inicializar un objeto de una clase en una sentencia

Date hoy = new Date();

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:

la declaracin y el cuerpo de la clase.

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

Clase - Cuerpo de una Clase Java

Contiene la implementacin de la propia clase y consta de dos secciones:


la declaracin de variables y la de mtodos.

DeclaracindeClase { DeclaracionesdeVariables DeclaracionesdeMtodos }

Programacin II - POO

Clase - Cuerpo de una Clase Java

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

Implementacin de Mtodos en Java

Implementar mtodos de una clase

Programacin II - POO

Mtodos

Implementacin de Mtodos en Java

La implementacin de un mtodo consiste de dos partes


la declaracin y el cuerpo del mtodo

declaracindeMtodo { cuerpodeMtodo }
Programacin II - POO

Mtodos - La Declaracin de Mtodo

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

Rectangulo unirRectangulo( Rectangulo rec1, Rectangulo rec2 ){ . } //cierra mtodo

Programacin II - POO

Mtodos - La Declaracin de Mtodo

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

Mtodos - La Declaracin de Mtodo

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

Mtodos - La Declaracin de Mtodo

Es importante aclarar que los mtodos sobrecargados deben devolver el mismo tipo de dato

void dibujarRec (Rectangulo rec) int dibujarRec (Rectangulo rec1)


//declarados en la misma clase producirn un error en tiempo de compilacin.

Programacin II - POO

Mtodos - La Declaracin de Mtodo

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

Mtodos La Declaracin de Mtodo

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 :

Tipos de Argumentos Nombre de Argumentos

Los argumentos se utilizan para enviar informacin al mtodo


Programacin II - POO

Mtodos La Declaracin de Mtodo

Tipos de Argumentos en Java

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

Mtodos El Cuerpo de un Mtodo

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

Mtodos El Cuerpo de un Mtodo

Analicemos mtodo esPuntoRectangulo de la clase Rectngulo

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

Mtodos El Cuerpo de un Mtodo

Analicemos mtodo

superficie de la clase Rectngulo

float superficie(){ float sup; sup = this.base * this.altura; return sup; } //cierra cuerpo mtodo

Programacin II - POO

Mtodos El Cuerpo de un Mtodo

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

Mtodos El Cuerpo de un Mtodo

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

Mtodos El Cuerpo de un Mtodo

Estas variables son variables locales y viven slo mientras el control permanezca dentro del mtodo.

Programacin II - POO

Mtodos El Cuerpo de un Mtodo

Despus del retorno del mtodo aux ya no existir ms.

int mayor(int x, int y) int aux; aux =(x>y) ?x : y; return aux; }

Programacin II - POO

Control de acceso

Programacin II - POO

Control de Acceso a los miembros de una clase

Por qu cree importante que las clases puedan proteger sus variables y mtodos frente al acceso de otros objetos ?
Programacin II - POO

Control de Acceso a los miembros de una clase

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

Control de Acceso a los miembros de una clase

El lenguaje Java soporta cuatro niveles de acceso:


private, default, protected, public,

Programacin II - POO

Control de Acceso a los miembros de una clase

Modificadores
Mismo paquete Subclase Mundo

Modificador Misma clase private default protected public si si si si

si si si si si si

Programacin II - POO

Control de Acceso a los miembros de una clase

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

Control de Acceso a los miembros de una clase

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

S-ar putea să vă placă și