Sie sind auf Seite 1von 42

Ing.

Giovanny Moncayo
gmoncayo@fing.uce.edu.ec giovanny.moncayo@gmail.com

CAPTULO II
PROGRAMACIN ORIENTADA A OBJETOS CON JAVA

095 026 736 081 869 725

En esta presentacin
Introduccin

a la POO (Programacin Orientada a

Objetos) Conceptos Bsicos de Programacin en Java Qu son los Objetos? Unified Modeling Language UML Descripcin de una Clase Introduccin a la Clase System

Palabras clave
Objeto

Clase
Atributo Mtodo

Accesores, Mutadores, Personalizados Argumentos de un mtodo Valores de retorno en un mtodo Constructor

Palabras clave - Continuacin


Modificadores

de acceso Relaciones entre Objetos UML Instancia de una Clase Herencia Encapsulacin Garbage Collector Recolector de Basura de Java

Introduccin a la Programacin Orientada a Objetos


La

Programacin Orientada a Objetos es muy diferente de la Programacin Procedimental. PROGRAMACIN PROCEDIMENTAL


Se basa en una secuencia de instrucciones que se

ejecutan una tras otra. Difcil de mantener.


PROGRAMACIN

ORIENTADA A OBJETOS

Se basa en una coleccin de Objetos que interactan

entre s a travs de mensajes (mtodos). Los Objetos tienen datos e instrucciones. El cdigo puede ser reutilizado Fcil de mantener.

Conceptos Bsicos de Programacin en Java


Objeto:

Contiene datos e instrucciones para procesar datos (Se encuentra en la memoria HEAP) Clase: Representacin fsica de un Objeto (estructura, molde o esqueleto). Atributo: Describe el estado de un objeto, se llaman datos (Lo que conoce el objeto lo que se conoce del objeto). Tipo de Dato: Describe el tipo de Informacin que almacena un atributo. Ej: String, int, double, etc.

Conceptos Bsicos de Programacin en Java


Mtodo:

Es un grupo de instrucciones Comportamiento: Describe lo que el objeto puede hacer Herencia: Capacidad de los objetos para derivar atributos y mtodos de otros objetos ms generales. Encapsulacin: Ocultacin de la informacin que almacenan los objetos. (Atributos privados y acceso a los mismos a travs de Mtodos pblicos)

Qu son los Objetos?


INTRODUCCIN

Cualquier cosa Tangible o Abstracta que es relevante. Pueden tener Atributos y Mtodos.

Los Atributos describen las caractersticas del Objeto, lo que conoce lo que se conoce de l. Los Mtodos describen definen su comportamiento, lo que el Objeto puede hacer.

Qu son los Objetos?

Qu son los Objetos?


CLASIFICACIN

DE LOS OBJETOS

Objetos que interactan con el usuario

Ej: Elementos de una GUI

Objetos del entorno Operativo

Ej: Computador, Servidor, etc.

Objetos relacionados a tareas especficas

Ej: Documentos, Sonido, Audio, etc.

Qu son los Objetos?


CMO

SE DEFINE UN OBJETO

Lo primero que se debe tener en cuenta es:

Cules son los Atributos del Objeto. Cules son los Mtodos del Objeto.

A travs de una clase se pueden definir un sin nmero de Objetos. Cada Objeto definido es una Instancia de la Clase.

Qu son los Objetos?


CREACIN

DE UN OBJETO

Un Objeto es creado a travs del constructor, utilizando el operador new. El constructor contiene las instrucciones para la creacin del Objeto. Todos los Objetos se almacenan en el HEAP.
public Cliente(String nombreCliente, int edadCliente){

nombreCliente = nombre; edad = edadCliente;


}

Qu son los Objetos?


INTERACIN

OPERACIN CON OBJETOS

Un Objeto interacta a travs de sus mtodos. Los mtodos son usados para enviar y recibir mensajes entre los objetos. Los Objetos obtienen informacin de otros Objetos por medio de los Mtodos Accesores (GET). Los Objetos alteran la informacin de otros Objetos por medio de los Mtodos Mutadores (SET). El operador para acceder a los mtodos de un Objetos es el Punto ( . )

Qu son los Objetos?

LA ENCAPSULACIN

Significa:

Ocultacin de la Informacin Proteccin de datos

Se restringe el acceso a la informacin del Objeto (sus


Atributos). En java se implementa a travs de los modificadores de acceso public, private y protected. Para encapsular un Objeto, los atributos de la clase deben ser definidos como privados y se debe proporcionar acceso a cada uno de ellos a travs de mtodos pblicos (get/set mutadores/accesores). Esto es casi un JavaBean, slo falta definir el constructor de la clase.

Qu son los Objetos?

LA ENCAPSULACIN MODIFICADORES DE ACCESO

Qu son los Objetos?


RELACIONES

ENTRE OBJETOS

Asociacin: Un objeto tiene una referencia a otro Objeto, o lo que es lo mismo, crea una Instancia de otro Objeto. Dependencia: Un objeto no puede existir sin la existencia previa de otro Objeto. Generalizacin: Un Objeto deriva Atributos Comportamientos de otro Objeto (Herencia). y

Qu son los Objetos?

HERENCIA

Es uno de los conceptos ms importantes de la POO. Consiste en la capacidad de crear clases que reutilicen el cdigo de clases ms generales (atributos y mtodos), y que al mismo tiempo puedan aadir atributos y mtodos propios. Ventajas de la Herencia:

Reutilizacin del cdigo. Mantenimiento de las aplicaciones (Escalabilidad).

En Java NO existe herencia mltiple. Slo se puede heredar de

una clase. SI es posible herencia multinivel (Varios niveles de herencia). Una misma clase, puede ser heredada por varias clases.

Qu son los Objetos?


HERENCIA

Para hacer herencia,

se usa la palabra reservada extends en la clase Hija. La Herencia entre dos clases establece una relacin es un, en el ejemplo, un Profesor es una Persona

Qu son los Objetos?


DESTRUCCIN

- GARBAGE COLLECTOR

En Java NO es posible saber en qu momento exacto un Objeto ser destruido, slo es posible determinar a partir de qu momento esto puede suceder (cuando se elimine la ltima referencia al mismo) El Garbage Collector es una aplicacin que forma parte de la JVM, la cual se encarga de liberar de la memoria los objetos No Referenciados. Si un Objeto es asignado a null, ste pierde su referencia y es marcado como basura. El Garbage Collector no es controlable, lo maneja directamente el Sistema Operativo.

Qu son los Objetos?


DESTRUCCIN

- GARBAGE COLLECTOR

Se puede hacer la llamada al Garbage Collector a travs de la siguiente lnea de cdigo:


System.gc();

Esta llamada har que el Recolector de Basura empiece a competir por tiempo de CPU, ya que como se dijo anteriormente, es el Sistema Operativo quin lo controla, y se ejecutar cada vez que el HEAP est prximo a llenarse.

Unified Modeling Language UML


Lenguaje utilizado Orientados a Objetos.

para

modelar

Programas

Consiste de un conjunto de smbolos para representar Clases, las relaciones entre ellas, sus niveles de acceso y su estado. Existen diferentes tipos de diagramas UML, entre ellos los ms utilizados son: Casos de Uso, Secuencia y Clases.
Otros tipos de diagramas UML son: Colaboracin, Actividad, Componentes, Despliegue, etc.

UML Diagrama de Clases


Permite modelar: Los Atributos y Comportamientos de una Clase. Las relaciones entre clases.

UML Smbolos del Diagrama de Clases


Las Clases se representan a travs de Rectngulos, divididos en tres zonas: La primera para el nombre de la Clase, la segunda para los Atributos y la tercera para los Mtodos o Comportamientos. Las lneas describen las relaciones entre las Clases u Objetos (Asociacin, Dependencia Generalizacin)

UML Smbolos del Diagrama de Clases


Algunos smbolos especiales describen el nivel de acceso, estos son:

UML Caractersticas de un Diagrama de Clases


Los Atributos por lo general sern

privados, seguidos del Tipo de Dato y en algunos casos de una inicializacin Explcita. Los Mtodos por lo general sern pblicos, seguidos de la lista de argumentos y del Tipo de Retorno. Los mtodos dentro del diagrama UML deben ser ordenados de la siguiente manera:
Constructor 2. Mtodos get/set 3. Mtodos personalizados
1.

Descripcin de una Clase


DEFINICIN DE LA CLASE Una clase es definida utilizando la palabra reservada class y el modificador de acceso public El nombre del archivo .java debe tener exactamente el mismo nombre de la clase. Un mismo archivo .java puede contener ms de una clase, pero slo una de ellas podr ser pblica. Varias clases pblicas deben ser almacenadas en archivos separados. Una clase NO es un Objeto, pero es usada para CREAR Objetos a travs del operador new

Descripcin de una Clase


DEFINICIN DE LA CLASE La firma para la definicin de una clase:
[public] class NombreClase { // Atributos

// Mtodos
}

Lo que est entre [ ] puede obviarse, en ese caso, la clase

tiene acceso por default. Las clases no pueden ser private ni protected.

Descripcin de una Clase


DEFINICIN DE LA CLASE El NombreClase, debe cumplir con las siguientes caractersticas:

Debe ser un sustantivo. La primera letra debe ser mayscula y el resto minsculas. Se pueden mezclar varios sustantivos, iniciando cada uno de ellos con una letra mayscula, lo que se conoce como CamelCase. De preferencia evitar colocar caracteres raros dentro del Nombre de la Clase.

Descripcin de una Clase


DEFINICIN DE LOS ATRIBUTOS Los Atributos en una Clase, se representan a travs de Variables Identificadores, y son los que definen el Estado de un Objeto. Por lo general, se inicializan en el Constructor de la Clase. Cada atributo debe estar asociado a un Tipo de Dato de acuerdo a la informacin que almacena, y pueden ser:

Tipos de Dato Primitivos: byte, short, int, long, float, double, char y boolean Tipos de Dato Referencia: Cualquier clase a la que se haga Referencia. Ej: String

Descripcin de una Clase


DEFINICIN DE LOS ATRIBUTOS El uso de uno u otro Tipo de Dato, se ver reflejado en el uso de la memoria dentro del computador y en las operaciones que se puedan realizar con dichos atributos. La firma para la definicin de un Atributo: [ModifAcceso] TipoDato nombreAtributo;

[ModifAcceso]: public, private, protected default (cuando no se pone, pero como atributo de clase) TipoDato: Primitivo de Referencia

Los atributos definidos dentro de un mtodo (atributo

local) no tienen modificador de acceso, estn disponibles nicamente durante la ejecucin del mtodo.

Descripcin de una Clase


DEFINICIN DE LOS ATRIBUTOS El nombreAtributo debe cumplir con las siguientes reglas:

Debe comenzar con una letra minscula. Si contiene ms de una palabra, stas se separarn con una letra mayscula. No debe tener espacios, ni caracteres especiales como el %, #, $, &. No debe ser una palabra reservada (Keyword) de java.

Descripcin de una Clase


DEFINICIN DEL CONSTRUCTOR La definicin del mtodo Constructor puede ser incluida dentro de la definicin de la clase. El Constructor contiene tareas e instrucciones necesarias que deben ejecutarse al momento de la creacin de un Objeto, como por ejemplo, la inicializacin de los atributos. El Constructor puede ser llamado a travs del operador new.

Ejemplo:
Libro pensandoJava = new Libro();

pensandoJava es una variable de Referencia.

Descripcin de una Clase


DEFINICIN DEL CONSTRUCTOR Toda clase java tiene al menos un constructor, llamado Constructor vaco, nulo por defecto, y es creado automticamente por la JVM al momento de compilar la clase, no necesita ser escrito. Se pueden definir constructores personalizados, tomando en cuenta las siguientes reglas:

El nombre del constructor debe ser exactamente el mismo de nombre de la clase. El constructor no devuelve nada, ni siquiera void(). Los constructores se pueden sobrecargar (Modificando la lista de argumentos). Si se define un constructor personalizado, el constructor por defecto desaparece y debe ser escrito si queremos utilizarlo.

Descripcin de una Clase


DEFINICIN DE LOS METODOS Los mtodos definen el comportamiento de un Objeto, es decir lo que el Objeto puede hacer . Consisten en un conjunto de tareas que se ejecutan paso a paso, de manera procedimental. En java, los mtodos de una Clase, se implementan a travs de funciones. Los mtodos deben tener:

Un nombre significativo que describa lo que hace. Informacin requerida para realizar la tarea (Argumentos). Un valor de retorno para mostrar los resultados (Tipo de Dato Primitivo, de Referencia void cuando no retorna nada).

Descripcin de una Clase


DEFINICIN DE LOS METODOS Firma para la definicin de un Mtodo:
[ModifAcceso] TipoRetorno nombreMetodo(TipoDato param1, TipoDato param2,,){

//Definicin del Mtodo


}

[ModifAcceso]: public, private, protected default TipoRetorno: Primitivo, de Referencia void nombreMetodo: reglas: Debe ser un verbo y comenzar con una letra minscula. Se pueden agregar otras palabras, separndolas con una letra mayscula. No debe tener espacios, ni guiones bajos. No debe ser una palabra reservada (Keyword) de java TipoDato: Tipo de Dato Primitivo de Referencia del argumento param1, param2: La lista de argumentos.

Descripcin de una Clase


DEFINICIN DE LOS METODOS Tipos de Mtodos:

Mutadores: Cambian el estado de un Objeto (set) Accesores: Devuelven el estado de un Objeto (get) Que requieren argumentos: metodo(param1, param2, .. , ..) Que no requieren argumentos: metodo( ) Mtodos que retornan valores: Dentro de su definicin utilizan la palabra reservada return para devolver un Tipo de Dato Primitivo o de Referencia. Ej: mtodos get Mtodos que no retornan valores: Mtodos que tienen como tipo de retorno void, no necesitan un return. Ej: mtodos set

Descripcin de una Clase


DEFINICIN DE LOS METODOS El mtodo main
public static void main(String args[ ]){ }

Contiene las instrucciones para ejecutar una aplicacin

Java. Es conocido como el punto de entrada a una aplicacin. Toda aplicacin Java debe tener al menos un mtodo main. Es un mtodo esttico, lo cual significa que no est asociado a un objeto en particular, y se lo puede invocar sin la necesidad de crear una instancia de la Clase.

Descripcin de una Clase


DEFINICIN DE LOS METODOS Mtodos Sobrecargados
Son mtodos dentro de la misma clase, que tienen las siguientes caractersticas:
1. 2.

3.

Tienen el mismo nombre La lista de argumentos debe ser diferente, ya sea en los tipos de datos o en el nmero de argumentos. Slo modificar el orden de los argumentos NO es sobrecarga. El valor devuelto puede o no ser el mismo, siempre y cuando la lista de argumentos sea diferente en los mtodos sobrecargados. Lo contrario llevar a un error de compilacin.

Descripcin de una Clase


Laboratorio 2.0: Opcional Definir la siguiente Clase utilizando BlueJ

Descripcin de una Clase


Laboratorio 2.1: Creacin de Clases basadas en diagramas UML En el mtodo main, utilizar ambos constructores de la clase Estudiante, para crear 2 estudiantes s1 y s2 en el primer caso, setear los valores con los mtodos set(), y en ambos casos imprimir los resultados utilizando los mtodos get().

Introduccin a la Clase System


Clase utilizada para realizar tareas propias del Sistema, como por ejemplo la entrada y salida de datos (A travs de sus atributos in, out). Se encuentra dentro del paquete java.lang.
System.out.println() Para desplegar textos System.gc() Para hacer la llamada al Garbage Collector

Referencias Bibliogrficas
Pensando en Java - Thinking in Java ECKEL, Bruce. Prentice Hall, Madrid 2002 Cmo programar en Java. DEITEL & DEITEL. Pearson - Prentice Hall. 2004 Introduccin a la Programacin orientada a objetos con JAVA. WU, C. Thomas. McGraw-Hill. 2001

Das könnte Ihnen auch gefallen