Programacion Orientada a Objetos

48
INTRODUCCION A LA INTRODUCCION A LA PROGRAMACION PROGRAMACION ORIENTADA A OBJETOS ORIENTADA A OBJETOS Michael Alex Acosta Torres Cesar Augusto Rosero Estudiantes de Sistemas Instituto Colombiano de Aprendizaje Junio de2009

Transcript of Programacion Orientada a Objetos

Page 1: Programacion Orientada a Objetos

INTRODUCCION A LA INTRODUCCION A LA PROGRAMACION PROGRAMACION

ORIENTADA A OBJETOSORIENTADA A OBJETOS

Michael Alex Acosta TorresCesar Augusto RoseroEstudiantes de SistemasInstituto Colombiano de AprendizajeJunio de2009

Page 2: Programacion Orientada a Objetos

PROGRAMACIÓN ORIENTADA PROGRAMACIÓN ORIENTADA A OBJETOSA OBJETOS

Facilita la creación de software de calidad: potencia el mantenimiento, la extensión y la reutilización

Basada en el modo de pensar del hombre y no al modo de operar de la máquina

El elemento básico no es la función (Programación estructurada), sino un ente denominado objeto

Page 3: Programacion Orientada a Objetos

LOS OBJETOSLOS OBJETOS

Encapsulamiento de un conjunto de operaciones (métodos) que pueden ser invocados externamente, y de un estado que recuerda el efecto de los servicios

Un objeto presenta además una interfaz para actuar con el exterior

Une datos y procesos. En PE la variables y funciones estaban separadas

Page 4: Programacion Orientada a Objetos

COMPOSICION DE UN COMPOSICION DE UN OBJETOOBJETOTiempo de vida: duración de un objeto en

un programa. Los objetos se crean mediante la instanciacióninstanciación y dejan de existir cuando son destruidos

Estado: definido por sus atributosComportamiento: definida por sus

métodos

Page 5: Programacion Orientada a Objetos

LAS CLASESLAS CLASESAbstracciones que representan a

un conjunto de objetos con un comportamiento e interfaz común

Plantilla para la creación de objetos

Cuando se crea un objeto (instanciación) se ha de especificar de qué clase es el objeto instanciado, para que el compilador comprenda sus características

Page 6: Programacion Orientada a Objetos

ESTRUCTURA DE CLASEESTRUCTURA DE CLASEAtributos: variables que

representan el estado de los objetos

Métodos: funciones mediante las cuales se representa el comportamiento de los objetos. Estos métodos modifican los valores de los atributos y representan las capacidades del objeto (servicios)

Page 7: Programacion Orientada a Objetos

EJEMPLOS DE CLASES Y EJEMPLOS DE CLASES Y OBJETOSOBJETOSClase: Persona Objeto: juan,

alberto, carlos, mariaClase: Figura Objeto: circulo,

cuadrado, trianguloClase: Web Objeto:

www.incap.edu.coClase: Transporte Objeto: carro,

barco, avión

Page 8: Programacion Orientada a Objetos

PRINCIPIOS BASICOS DE PRINCIPIOS BASICOS DE POOPOO

Existen una serie de principios fundamentales para comprender cómo se modeliza la realidad al crear un programa bajo el paradigma de la orientación a objetos

Principios: abstracción, encapsulamiento, modularidad, jerarquía, paso de mensajes y poliformismo

Page 9: Programacion Orientada a Objetos

PRINCIPIO DE PRINCIPIO DE ABSTRACCIONABSTRACCION

Mediante la abstracción la mente humana modeliza la realidad en forma de objetos

Buscar parecidos entre la realidad y la posible implementación de objetos del programa que simulen el funcionamiento de los objetos reales

La abstracción humana se gestiona de manera jerárquica, dividiendo sistemas complejos en pequeños subsistemas

Page 10: Programacion Orientada a Objetos

PRINCIPIO DE PRINCIPIO DE ENCAPSULAMIENTOENCAPSULAMIENTO

Permite a los objetos elegir qué información es publicada y que información es ocultada al resto de objetos.

Para ello los objetos presentan métodos como interfaces públicas y sus atributos como datos privados.

Para consultar o modificar los atributos de los objetos, las clases presentan métodos de acceso (get y set).

Con esto se utiliza un objeto tan sólo comprendiendo su interfaz, más no su implementación.

Page 11: Programacion Orientada a Objetos

PRINCIPIO DE PRINCIPIO DE MODULARIDADMODULARIDAD

Propone dividir la aplicación en varios módulos (clases, paquetes o componentes) cada uno de ellos con un sentido propio.

Disminuye el grado de dificultad del problema al que da respuesta el programa.

Facilita la comprensión del programa.

Page 12: Programacion Orientada a Objetos

PRINCIPIO DE PRINCIPIO DE JERARQUIAJERARQUIA

Las distintas clases de un programa se organizan mediante la jerarquía. Esta representación da lugar a los árboles de herencia

Mediante la herencia una clase hija toma las propiedades de la clase padre. Así se simplifican diseños y se evita la duplicación de código

El acto de tomar las propiedades de una clase padre se denomina heredarheredar

Clase Padre

Clase Hija 1

Clase Hija 2

Page 13: Programacion Orientada a Objetos

PRINCIPIO DEL PASO DE PRINCIPIO DEL PASO DE MENSAJESMENSAJESUn objeto puede solicitar de otro

objeto que realice una acción determinada o que modifique su estado

El paso de mensajes se suele implementar como llamadas a los métodos de otros objetos

Page 14: Programacion Orientada a Objetos

PRINCIPIO DE PRINCIPIO DE POLIMORFISMOPOLIMORFISMOUn objeto y muchas formasPropiedad que permite que un

objeto presente diferentes comportamientos en función del contexto en que se encuentre

Page 15: Programacion Orientada a Objetos

UML – Lenguaje Unificado UML – Lenguaje Unificado de Modeladode Modelado

Lenguaje estándar para escribir planos de software

Visualiza, especifica, construye y documenta los artefactos de un sistema de software

A través de diagramas representa de manera gráfica un conjunto de elementos, visualizado la mayoría de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones)

Page 16: Programacion Orientada a Objetos

DIAGRAMAS UMLDIAGRAMAS UMLD. de ClasesD. de ClasesD. de ObjetosD. de Casos de UsoD. de SecuenciaD. de ColaboraciónD. de EstadosD. de ActividadesD. de ComponentesD. de Despliegue

Page 17: Programacion Orientada a Objetos

DIAGRAMA DE CLASESDIAGRAMA DE CLASES

Un diagrama de clases muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones

Son los más comunes en el modelo de sistemas orientados a objetos

Cubren la vista de diseño estática del sistema

Page 18: Programacion Orientada a Objetos

DIAGRAMA DE CLASESDIAGRAMA DE CLASES

Clase

Atributos

Métodos

Relación

Page 19: Programacion Orientada a Objetos

JAVAJAVA

Michael Alex AcostaCesar Augusto RoseroEstudiantes de SistemasInstituto Colombiano de AprendizajeJunio de 2099

Page 20: Programacion Orientada a Objetos

HISTORIAHISTORIAAntes: C y Fortran. Sistemas

complejos en lenguajes de programación estructurada

Finales de los 60: aparece Simula67 primer lenguaje OO

C++Java

Page 21: Programacion Orientada a Objetos

QUE NO HEREDA JAVA DE QUE NO HEREDA JAVA DE C++C++PunterosVariables GlobalesgotoAsignación de memoria: malloc y

freeConversión de tipos insegura:

type casting

Page 22: Programacion Orientada a Objetos

COMIENZOS DE JAVACOMIENZOS DE JAVA

Diseñado en 1990 por James Gosling de Sun Microsystems, como software para dispositivos electrónicos de consumo

Inicialmente se llamó Oak (roble)Bill Joy (Cofundador de Sun y

desarrollador de Unix de Berckley) en 1995 presenta en sociedad a Java (enfocado al desarrollado de aplicaciones para internet)

Page 23: Programacion Orientada a Objetos

¿POR QUE JAVA?¿POR QUE JAVA?Lenguaje orientado a objetosSencillo pero potente. Riqueza

semánticaRobusto. Java verifica su código al

mismo tiempo que lo escribe, y una vez más antes de ejecutarse

La ejecución del código es segura y fiable

Diferentes tipos de aplicaciones: aplicaciones standalone y en red, applets, javabeans, servlets, jsp

MultiplataformaBasado en C++

Page 24: Programacion Orientada a Objetos

ESTRUCTURA DE UNA ESTRUCTURA DE UNA APLICACIONAPLICACION

Framework de desarrollo: Eclipse, Jbuilder, NetBeans, BlueJ

JDK (Compiler, Interpreter,

Debugger, Applet Viewer)

Código Fuente: HolaMundo.java

Byte Code: HolaMundo.class

Plataforma de Ejecución: (Unix, Linux, Windows, MacOS) + JRE

Page 25: Programacion Orientada a Objetos

FUNDAMENTOS DEL FUNDAMENTOS DEL LENGUAJELENGUAJE

Page 26: Programacion Orientada a Objetos

TOKENSTOKENS

Identificadores: nombres de variables, métodos y clases◦ Son Case Sensitive◦ Comienzan por una letra, un subrayado o el

símbolo $◦ Estándares:

Clases: Clase o MiClase Interfaces: Interfaz o MiInterfaz Métodos: metodo() o miMetodo() Variables: altura o alturaMedia Constantes: CONSTANTE o CONSTANTE_LARGA Paquetes: java.paquete.subpaquete

Page 27: Programacion Orientada a Objetos

TOKENSTOKENSPalabras claves: identificadores

reservados por java◦ abstract, boolean, break, byte, byvalue, case,

cast, catch, char, class, const, continue, default, do, double, else, extends, false, final, finally, float, for, future, generic, goto, if, implements, import, inner, instanceof, int, interface, long, native, new, null, operator, outer, package, private, protected, public, rest, return, short, static, super, switch, syncroniced, this, throw, throws, transient, true, try, var, void, volatile, while

Page 28: Programacion Orientada a Objetos

TOKENSTOKENSLiterales y constantes

◦Literales: sintaxis para asignar valores a las variables.

◦int y=5; float x=5.6; String c=“Cadena”;

◦Constantes: no modifican su valor durante la ejecución de un programa. final static int ALTURA_MAXIMA=200;

Page 29: Programacion Orientada a Objetos

TOKENSTOKENSOperadores: indican una

evaluación o computación para ser realizada en objetos o datos, y en definitiva sobre identificadores o constantes

Aritmeticos: + - * / %Lógicos: && || !Otros: ++ -- += -= /= *= () [] ^=

> >= < <= = == != ^

Page 30: Programacion Orientada a Objetos

TOKENSTOKENSSeparadores: informar al

compilador como están agrupadas las sentencias en el código

{} , : ;

Page 31: Programacion Orientada a Objetos

TOKENSTOKENSComentarios y espacios en

blanco/* Comentarios */// Comentarios/** Comentarios */

Page 32: Programacion Orientada a Objetos

EXPRESIONESEXPRESIONES

int contador=1;contador++;in.read() != -1 //in es un flujo

entrada

Page 33: Programacion Orientada a Objetos

BLOQUES Y AMBITOBLOQUES Y AMBITO{//Bloque externoint x=1;

◦{◦//Bloque interno invisible al exterior◦int y=2;◦}x=y; // Da error, Y esta fuera del ámbito

}

Page 34: Programacion Orientada a Objetos

TIPOS DE DATOSTIPOS DE DATOSSimples: tipos nucleares que no

se derivan de otros tipos: enteros, flotantes, booleanos y carácter

Compuestos: se basan en los tipos simples: cadenas, matrices, clases como las interfaces

Page 35: Programacion Orientada a Objetos

TIPOS DE DATOS: TIPOS DE DATOS: ENTEROSENTEROSbyte: 1 Byteshort: 2 Bytesint: 4 Byteslong: 8 Bytes

◦byte edad=35;

Page 36: Programacion Orientada a Objetos

TIPOS DE DATOS: TIPOS DE DATOS: FLOTANTESFLOTANTESfloat: 4 Bytesdouble: 8 Bytes

◦double miPi=314.16e-2;◦float temperatura=(float)36.6;

Page 37: Programacion Orientada a Objetos

TIPOS DE DATOS: TIPOS DE DATOS: BOOLEANOSBOOLEANOSboolean reciboPagado=false;

Page 38: Programacion Orientada a Objetos

TIPOS DE DATOS: TIPOS DE DATOS: CARACTERCARACTERchar letraMayuscula=‘A’;

Page 39: Programacion Orientada a Objetos

CONVERSIONESCONVERSIONESfloat x=(float)3.8;double y=(double)x;

Page 40: Programacion Orientada a Objetos

VECTORES Y MATRICESVECTORES Y MATRICESint vectorNumeros[];int vectorNumeros=new int[5];int vectorIni={2,5,8};int vectorNumeros[3]=new

int[3];

Page 41: Programacion Orientada a Objetos

CADENASCADENASString

capitalColombia=“Colombia”;

Page 42: Programacion Orientada a Objetos

ESTRUCTURAS DE ESTRUCTURAS DE CONTROLCONTROLif(condicion)

◦{ Bloque de código a ejecutar si la

condición es cierta◦}

else◦{

Bloque de código a ejecutar si la condición es falsa

◦}

Page 43: Programacion Orientada a Objetos

ESTRUCTURAS DE ESTRUCTURAS DE CONTROLCONTROLswitch(expresionMultivalor){

◦case valor1: sentencias; break;◦case valor2: sentencias; break;◦case valor3: sentencias; break;◦default: sentencias; break;

}

Page 44: Programacion Orientada a Objetos

SENTENCIAS DE SENTENCIAS DE ITERACIONITERACIONwhile(condicion){

◦ sentencias;}

do{◦ sentencias;

}while(condicion);

for(inicio;fin;incremento){◦ sentencias;

}

Page 45: Programacion Orientada a Objetos

EXCEPCIONESEXCEPCIONESForma avanzada de controlar el

flujo de un programa. Se utiliza para la gestión de errores

Page 46: Programacion Orientada a Objetos

CLASE MODELOCLASE MODELO class MiCalculadora{class MiCalculadora{

private int valor1,valor2,resultado; MiCalculadora(int valor1,int valor2){

this.valor1=valor1; this.valor2=valor2;

} MiCalculadora(){

valor1=-1;valor2=-1;

} public int getValor1(){

return valor1; } public int getValor2(){

return valor2; } public void setValor1(int valor1){

this.valor1=valor1; } public void setValor2(int valor2){

this.valor2=valor2; } public int metodoSuma(){

resultado=valor1+valor2; return resultado;

}

}}

Atributos

Métodos Constructores

Métodos de consulta y acceso a los atributos

Métodos operaciones o servicios

Clase

Page 47: Programacion Orientada a Objetos

INSTANCIACION DE CLASES: LOS INSTANCIACION DE CLASES: LOS OBJETOSOBJETOS

MiCalculadora personal;MiCalculadora personal; personal=new MiCalculadora();personal=new MiCalculadora();

O también se puede

MiCalculadora personal=new MiCalculadora();MiCalculadora personal=new MiCalculadora();

O también se puede

MiCalculadora personal=new MiCalculadora(3,2);MiCalculadora personal=new MiCalculadora(3,2);

Objeto de tipo class miCalculadora

Page 48: Programacion Orientada a Objetos

ACCESO AL OBJETOACCESO AL OBJETO

MiCalculadora personal=new MiCalculadora(3,2);

System.out.println(personal.metodoSuma());

personal.setValor1(5); personal.setValor2(10);

System.out.println(personal.metodoSuma());

personal=null;