Sie sind auf Seite 1von 8

PARADIGMAS DE PROGRAMACIN

Paradigma Orientado a Objeto Java

INTRODUCCION
En el Paradigma orientado a objeto el problema se resuelve a considerar los objetos involucrados y las relaciones entre ellos. Los objetos se comunicarn a travs de mensajes. Un programa orientado a objeto puede ser considerado una coleccin de objetos que interactan entre s. Cada objeto es capaz de enviar y recibir mensajes, adems de procesar datos. Enviar mensajes significa decir "ejecute el metodo xx", "ejecute la operacion xx". Los mensajes hacen que los objetos realicen algn procesamiento de datos. (Ejecuten un mtodo). Lo primero que se debe hacer es identificar los objetos relevantes en el dominio del problema. Dependiendo del alcance del problema (el dominio) los objetos sern ms o menos relevantes. Ejemplo: video de msica Instrumentos o Percusin Platillo Tambor Xilofn o Cuerda Varillas Objetos o Pelotitas o Lanzadores

Ejemplo auto y semforo El semforo cambia de color y enva un mensaje al conductor. Este recibe el mismo y enva otro mensaje de acelerar o desacelerar el vehculo. A su vez, el auto enva el msj de que est acelerando, por ejmplo, a travs del velocmetro. ---> Auto <--Conductor <--- Semforo

El conductor enva el msj "acelerar" al auto, el parmetro de este mensaje seria la intensidad de la aceleracin. Son esenciales las estrategias de JERARQUIZACIN y CLASIFICACIN

ORIENTADO A OBJETO Y JAVA, JERARQUA DE CLASES, LENGUAJE PURO


La Clase define cmo va a ser el objeto, no es el objeto. El objeto posee atributos y mtodos, estos ltimos definen el comportamiento del objeto. Tanto los atributos como los mtodos se definen en la clase. A travs de un proceso de instanciacin se crea un Objeto de una determinada clase. El objeto es la instancia de la clase. Ejemplo: Se instancia un nuevo objeto de la clase Xilofn: Xilofon xilo = new Xilofon ();

En donde xilo es una variable de referencia que direcciona al nuevo objeto. Luego se sigue el operador New con el constructor En la programacin O.O. todo es una jerarqua de clases. En Java la clase ms "alta" es object. En un lenguaje de Programacin O.O puro slo hay objetos y variables de referencia. Java no es un lenguaje de programacin puro porque los tipos primitivos de datos no son objetos. Estos son: 1- char 8 bits 2- byte 8 3- short 16 4- int 32 5- long 64 6- float 32 7- double 64 8- boolean (treu,false)

CONCEPTOS DE LA PROGRAMACIN ORIENTADA A OBJETO


CLASE
Una clase define las caractersticas de un objeto. Es una generalizacin de los objetos que engloba. Es la que provee el proceso de encapsulamiento. Es una especie de modelo del objeto, especifica la manera en que estar constituido, esto incluye: Atributos, propiedades Comportamiento , definido por los mtodos, operaciones..En JAVA mtodos y operaciones se consideran sinnimo de funcin.

Los atributos de la clase siempre tienen que ser privados, para lograr el ocultamiento de la informacin. Los mtodos, al pertenecer a la interfaz, deben ser pblicos. Asociado a las clases existes los procesos de generalizacin y de especializacin. (De abajo hacia arriba, y de arriba hacia abajo, en la jerarqua.)

OBJETO
Es una instancia de una clase. La creacin de un objeto es la "instanciacin".

MTODO
Es el comportamiento del objeto. El mtodo se aplica sobre el objeto, sobre UNO en particular. Un mtodo hace una operacin especifica, una operacin bien definida. No es conveniente que haga ms de una cosa.

PASAJE DE MENSAJES
Proceso en donde un objeto enva datos a otro objeto, o le indica que ejecute otro mtodo.

HERENCIA
Mecanismo que permite que la subclase herede los atributos y mtodos de la superclase. La subclase puede a su vez incluir sus propios atributos y mtodos Personas o Paciente o Medico

Medico ES UNA persona. Paciente ES UNA persona. Se usa el "es un" para identificar la relacin. Si no se va a especificar comportamiento (si no hay diferencia en el comportamiento), no es conveniente usar herencia, puede distinguirse por medio de atributos. No debe aplicarse arbitrariamente. El uso o no de herencia va a depender siempre del contexto del problema.

Mecanismo por el cual una clase hereda atributos y mtodos de otra clase La principal ventaja de la herencia es la reutilizacin de cdigo .

INSTANCIACION
Se da por medio del operador new seguido del constructor. La direccin de memoria se la pasa a una variable de referencia que apunta al objeto. Esta variable es la que permite trabajar con el objeto, lo direcciona, pero NO es el objeto.

ABSTRACCION
Proceso de reducir los detalles de manera que uno puedo concentrarse en unos cuantos conceptos. Para centrar la atencin en lo relevante. La abstraccin en OO seria las clases y la herencia.

POLIMORFISMO
Se distinguen dos tipos: Asociado a parmetros o por sobrecarga de mtodos o funciones: al mismo mtodo le paso distintos tipos de parmetros. Ejemplo el constructor con parmetros y el sin parmetros. Llamar a los mtodos con distintos tipos y cantidad de argumentos. Polimorfismo se resuelve en tiempo de compilacin. El compilador decide cual funcin se va a cargar. Al cambiar los parmetros se cambia el comportamiento del objeto. Polimorfismo asociado a herencia o por redefinicin de mtodos o funciones, se resuelve en tiempo de ejecucin. Una clase puede heredar los atributos y mtodos(operaciones) de otra clase, y el comportamiento luego se especializa. La Clase es un tipo abstracto de datos.

ENCAPSULAMIENTO
Se basa en ocultar los detalles de funcionamiento de una clase de los objetos que interactan con el. Ocultar el detalle de implementacin. Protege la integridad de un objeto impidiendo que usuarios cambien datos internos del objeto a algo invalido. Adems reduce la complejidad del sistema e incrementa la robustez, al limitar las interdependencias entre los distintos componentes. El encapsulamiento hace que los objetos interacten a travs de la interfaz.

Se cierra el objeto, no se puede ver lo que hay adentro. Slo dispongo de la interfaz para interactuar con el objeto. Se puede mantener estable la interfaz y cambiar lo de adentro (la implementacin)

CONSTRUCTOR
El constructor es un mtodo que permite instanciar un objeto a partir de una clase Ejemplo del constructor sin parmetros de la clase Comision, en Java: public Comision(){ } Se utiliza: Comision com = new Comision(); en donde el operador new devuelve la direccin de memoria y la asigna a la VARIABLE DE REFERENCIA "com". La declaracin del mtodo no lleva void

CONVERSION A STRING, MTODO toString(), CLASE ENVOLVENTE


La redefinicin del mtodo toString(), que todas las clases heredan de la clase object, represente un ejemplo del polimorfismo asociado a herencia. El mtodo toString() convierte un objeto y lo muestra como String. Por ejemplo en la clase Persona: cmo se hace para concatenar dni y fecha de nacimiento?

Redefinicin de toString() en la definicin de Persona:


@Override public String toString() { return "Persona [ Nombre: " + getNombre() + ", DNI: " + getDni() + ", Fecha Nac: " + getFechaNacimiento() + " ]"; getDni() -> devuelve int getFechaNacimiento() -> devuelve un objeto Fecha

Cada tipo de dato tiene implementado un mtodo que lo transforma a cadena, este es el toString(). Herdado de la clase object , por defecto muestra: NombreClase@hashcode (nro hexa). Por eso en Fecha se redefine toString.

+ getFechaNacimiento() -> el operador "+" le ejecuta toString()


En el caso de int, que es un tipo primitivo de datos (por lo que no tiene mtodos), la clase envolvente es la que se encarga. Clase envolvente del tipo primitivo de dato: Integer encapsula el tipo de dato "int", tiene el metodo toString() Integer.toString(int i) -> y lo devuelve como string. Tambin existen, por ejemplo, las Clases Float y Double. "+" usa una clase envolvente para transformar el tipo primitivo de dato en String. Entonces en cualquier caso donde se use "+" o System.out.print se utiliza toString()

RELACIONES ENTRE CLASES


ASOCIACIONES Agregacin (estructural) Composicin (estructural) De uso (no lo tiene como atributo pero si lo utiliza para realizar algn clculo) Composicin : crea el objeto dentro del objeto. Ejemplo: Persona per = new Persona(37456180,"Gaston",29,5,1993); en donde public Persona(int dni, String nombre, int dia, int mes, int anio) { this.dni = dni; this.nombre = nombre; this.fechaNacimiento = new Fecha(dia, mes, anio); }

Agregacin: crea el objeto fuera del objeto Ejemplo: Persona per2 = new Persona(); per2.setDni(37311375); per2.setNombre("Maxi"); Fecha fechamaxi = new Fecha(19,1,1993); //crea el objeto fecha per2.setFechaNacimiento(fechamaxi); // le asigna el objeto

OPERADOR SUPER()
Con esta clausula se reutiliza el constructor de la clase base Ej: public class Alumno extends Persona { private int legajo; private String carrera; //CONSTRUCTOR public Alumno(int dni, String nombre, int dia, int mes, int anio, int legajo, String carrera) { super(dni,nombre,dia,mes,anio); // <--- inicializar los atributos de la clase base this.legajo = legajo; this.carrera = carrera;

Para reutilizar el mtodo toString() se establece super.toString();

JERARQUA DE LOS CONCEPTOS


1) Concepto base y el ms relevante: ABSTRACCION (centrar la atencin en los aspectos relevantes dejando de lado los detalles) Abstraccin de DATO -> lo relevante del dato son las operaciones mediante las cuales interacta, no la estructura. Lo hace por medio de mensajes, los msjs son activar operaciones de determinados objetos. Tipo abstracto de datos -> estructura definida por las operaciones que pueden hacerse sobre ellas. Es el mecanismo que nos permite resolver de mejor manera los problemas.

2) Operaciones, mtodos. <<por lo de arriba>>. los mtodos pblicos conforman la interfaz del objeto y definen el comportamiento del objeto.

3) Ocultamiento - ocultar la estructura interna y dejar solo visible el comportamiento (a travs de la interfaz) - encapsulamiento de los atributos, solo se puede acceder a travs de los mtodos ACCESORES y MUTADORES. El concepto de Clase es la que provee el mecanismo de encapsulamiento. en donde a travs de la instanciacin se llega a los objetos.

4) Clase, obejto

5) Polimorfismo.

6) Herencia: la programacin o.o. es una evolucin de la prog modular. El concepto de TAD es de la prog. modular. La programacin orientada a objeto se distingue de la modular cuando a sta se la agrega el concepto de HERENCIA.

ESTNDAR DE CODIFICACIN
Todo archivo java tiene al menos una clase publica cuyo nombre es igual al archivo que los contiene. Los nombres de clases siempre comienzan con maysculas. (Notacin Camel) Los paquetes se designan con minsculas. Atributos y mtodos con minsculas. En general el nombre de un mtodo tiene que ser un verbo

Das könnte Ihnen auch gefallen