Sei sulla pagina 1di 34

ANLISIS Y DISEO DE ALGORITMOS

Anlisis y Diseo de Algoritmos

Programacin Orientado a Objetos en Java


Introduccin
CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Contenido

Clases Polimorfismo Paquetes Resumen

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases
Definir clases Tipos de clases Declarar e instanciar clases. Miembros de Datos. Mtodos de Clases. Constructores y finalizadores. Herencia de Clases. Modificadores de acceso. Mtodos para acceso. Clases abstractas. Crear instancias. Arreglos de objetos.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Definir clases

Acceso a las clases import <paquete1.paquete2.ClaxeX> (opcional *)

Declarar una clase <mbito> class claseX [<extends> SuperClase] [<implements> InterfaceX { ....<Instrucciones de la clase> }

donde Todas las clases predefinidas tiene la primera letra en mayscula. mbito: public private extends: se realiza la herencia implements: se implementan los mtodos predefinidos.
CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Tipos de Clases del Java


Abstract: Tiene por lo menos un mtodo abstracto, esta clase no se instancia, sino que se utiliza como clase base para la herencia. Ejemplo la clase Reader

Final: Se declara como la clase que termina una cadena de herencia, no se puede heredar de una clase final. Ejemplo la clase Math

Public: Accesible desde otras clases dentro del mismo paquete, por herencia. Para acceder desde otros paquetes primero tiene que ser importadas.

Synchronizable: Modificador que especifica que todos los mtodos definidos en la clase son sincronizados, que no se pueden acceder al mismo tiempo desde diferentes hilos de ejecucin.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Declarar e Instanciar Clases

Definicin de una clase: class MyClass {


}

Para crear una instancia de una clase se utiliza el operador new: myObject = new MyClass(); No tiene que preocuparse de destruir el objeto. Java implementa el concepto de garbage collect.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Miembros de datos


Puede incluir cualquier tipo como miembro de datos de una clase (primitivo, compuesto o tipo objeto.) public class DogClass { String name, eyeColor; int age; boolean hasTail; }

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Mtodos de Clases

Declaracin de un mtodo: <ambito> <TipoRetorno> NombreMtodo(<parametros>){ ...... <Instrucciones del mtodo> } donde: Ambito es un control de acceso: private, public, protected TipoRetorno: es void si no retorna nada. La clase tiene constructores con el mismo nombre y no tienen tipo de retorno

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Mtodos de Clases

Paso por valor: Pasa el valor del argumento al parmetro del mtodo. Puede ser de un tipo primitivo. Primitivo son: int, long, float double, char, etc Paso por referencia: Pasa la referencia del argumento al parmetro del mtodo. Referenciado son: Objetos, vectores, etc Variaciones que puede incluir un mtodo (tambin variables): [ final ] TipoRetorno NombreMtodo : Mtodo final [ static ] TipoRetorno NombreMtodo : Mtodo de clase [ abstract ] TipoRetorno NombreMtodo : Mtodo abstracto [ synchronized ] TipoRetorno NombreMtodo: Mtodo sincronizado

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Mtodos de Clases


No hay funciones o procedimientos independientes en Java. Ejemplo: public class DogClass { String name, eyeColor; int age; boolean hasTail; public void speak() { Message msgSpeak = new Message(); msgSpeak.setMessage(arf, arf); msgSpeak.setFrame( new Frame() ); msgSpeak.show(); } }

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Mtodos de Clases


Cuando se define mtodos, la implementacin del mismo aparece directamente debajo de la declaracin. Para llamar al mtodo, debe accesarse con punto. Por ejemplo: DogClass dog = new DogClass(); dog.age = 4; dog.speak();

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Constructores y Finalizadores


El constructor siempre tiene el mismo nombre que la clase y no puede especificar valor de retorno. Cuando usa el operador new, realmente est llamando al constructor. El valor de retorno es siempre la instancia del objeto.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Constructores y Finalizadores


Java se encarga de deasignar todos los recursos por ud., as no hay mecanismo de destruccin en Java. Sin embargo, hay otro mtodo especial denominado finalizador. Este mtodo (si existe) es llamado inmediatamente antes de la destruccin del objeto.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Herencia de Clases


La herencia en Java es manejada a travs de la palabra clave extends.

public class DogClass extends MammalClass { . . . }

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Herencia de Clases


Las clases en Java slo pueden heredar de una clase a la vez (herencia simple). Java tiene un mecanismo que proporciona muchos de los beneficios de la herencia mltiple sin mucha complejidad, llamado interfaces.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Herencia de Clases


Si no llamamos explcitamente al constructor del padre, Java llama automticamente al constructor del padre por nosotros como la primera lnea del constructor del hijo.

CARRERA DE

INGENIERA DE SOFTWARE

Clases. Herencia de Clases. Uso de this y super


super() va a llamar al constructor del padre. Es posible que exista ms de un constructor para una clase. Puede llamar al constructor de una clase usando la palabra clave this(), con sus respectivos parmetros.

ANLISIS Y DISEO DE ALGORITMOS

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Modificadores de Acceso


Acceso desde dentro del paquete de la clase
Modificador de Acceso Por defecto (sin modificador) public protected private Heredado Si Si Si No Accesible Si Si Si No

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Modificadores de Acceso


Acceso desde fuera del paquete de la clase
Modificador de Acceso Por defecto (sin modificador) public protected private Heredado No Si Si No Accesible No Si No No

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Mtodos Accesores


Son mtodos que proporcionan la interfase pblica a la clase a la vez que se mantiene el almacenamiento real de los datos privado para la clase. Tpicamente viene en pares: uno para obtener el valor interno y otro para establecer el valor interno.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Mtodos Accesores


Por convencin, el mtodo obtener utiliza el nombre interno con get como prefijo y el mtodo Establecer hace lo mismo con set. Por lo general, los Mtodos Obtener para Booleanos utilizan como prefijos is o has.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Clases. Clases abstractas


Declarar una clase como abstracta significa que no hay implementacin para los mtodos de esa clase, pero todas las clases que extienden esta clase deben proporcionar una implementacin.

Una clase que incluye por lo menos un mtodo abstracto no se puede instanciar.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Polimorfismo

Sobrecarga de Mtodos. Uso de interfaces.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Polimorfismo. Sobrecarga de Mtodos


En Java es posible sobrecargar mtodos, es decir crear varios mtodos de una clase con el mismo nombre pero con diferentes parmetros y/o valores de retorno.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Polimorfismo. Uso de interfaces


Una interfaz es una declaracin especializada de clase , en la cual se puede declarar constantes y mtodos, pero no la implementacin. Ejemplo: package Oop3; interface SoundInterface { public void speak(); }

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Polimorfismo. Uso de interfaces


Se utiliza interface en vez de class. Todos los mtodos declarados en una interfaz son pblicos por defecto. Una clase puede implementar una interfaz usando la palabra clave implements. Una clase puede implementar tantas interfaces como se desee.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Crear instancias

Declara una variable objeto: ClaseX NombreObjeto donde: NombreObjeto apunta a un objeto nulo. Instanciacin de un objeto NombreObjeto = new ClaseX(<argumentos>) donde: Se crea la objeto. Se asigna la referencia del objeto a la variable Se llama al constructor respectivo de la clase. Uso de los mtodos y variables del objeto: NombreObjeto.variable = <Valor> NombreObjeto.Mtodo(<argumentos>)

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Arreglos de objetos

Acceso a los elementos del arreglo: Tipo primitivo: NombreArreglo[Indice] = <valor> Tipo referenciado: NombreArreglo[Indice] = VariableObjeto1 NombreArreglo[Indice].Atributo = VariableObjeto2.Atributo NombreArreglo[Indice].Atributo = Variable VariableObjeto2.Atributo = NombreArreglo[Indice].Atributo Variable = NombreArreglo[Indice].Atributo

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Paquetes

La sentencia import. Declaracin de paquetes. Opciones de proyecto referentes a paquetes.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Paquetes
Para facilitar la reusabilidad, Java permite agrupar varias definiciones de clases en una agrupacn lgica llamada paquete.

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Paquetes. La sentencia import

En Java, uno puede importar un paquete que use frecuentemente: import java.applet.*;

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Paquetes. Declaracin de paquetes


El nombre de paquete debera estar en una carpeta con el mismo nombre. Esto permite al compilador Java localizar fcilmente el paquete.

CARRERA DE

INGENIERA DE SOFTWARE

Paquetes. Opciones de proyecto referentes a paquetes


Source Path: Ruta que usa JDeveloper para ubicar fuentes. Class Path: Ruta donde buscar archivos .class.

ANLISIS Y DISEO DE ALGORITMOS

CARRERA DE

INGENIERA DE SOFTWARE

ANLISIS Y DISEO DE ALGORITMOS

Resumen
Creamos una instancia de objeto con la palabra clave new. Un constructor asigna recursos y un finalizador es un mtodo que se llama automticamente antes de destruir un objeto. Para herencia se utiliza extends. Una interfaz como una clase abstracta pero no puede contener cdigo o variables no constantes.

CARRERA DE

INGENIERA DE SOFTWARE

Potrebbero piacerti anche