Programacion Orientada a Objetos
-
Upload
chutas666 -
Category
Technology
-
view
5.410 -
download
4
Transcript of Programacion Orientada a Objetos
![Page 1: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/1.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/18.jpg)
DIAGRAMA DE CLASESDIAGRAMA DE CLASES
Clase
Atributos
Métodos
Relación
![Page 19: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/19.jpg)
JAVAJAVA
Michael Alex AcostaCesar Augusto RoseroEstudiantes de SistemasInstituto Colombiano de AprendizajeJunio de 2099
![Page 20: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/23.jpg)
¿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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/25.jpg)
FUNDAMENTOS DEL FUNDAMENTOS DEL LENGUAJELENGUAJE
![Page 26: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/28.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/29.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/30.jpg)
TOKENSTOKENSSeparadores: informar al
compilador como están agrupadas las sentencias en el código
{} , : ;
![Page 31: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/31.jpg)
TOKENSTOKENSComentarios y espacios en
blanco/* Comentarios */// Comentarios/** Comentarios */
![Page 32: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/32.jpg)
EXPRESIONESEXPRESIONES
int contador=1;contador++;in.read() != -1 //in es un flujo
entrada
![Page 33: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/34.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/35.jpg)
TIPOS DE DATOS: TIPOS DE DATOS: ENTEROSENTEROSbyte: 1 Byteshort: 2 Bytesint: 4 Byteslong: 8 Bytes
◦byte edad=35;
![Page 36: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/36.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/37.jpg)
TIPOS DE DATOS: TIPOS DE DATOS: BOOLEANOSBOOLEANOSboolean reciboPagado=false;
![Page 38: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/38.jpg)
TIPOS DE DATOS: TIPOS DE DATOS: CARACTERCARACTERchar letraMayuscula=‘A’;
![Page 39: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/39.jpg)
CONVERSIONESCONVERSIONESfloat x=(float)3.8;double y=(double)x;
![Page 40: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/40.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/41.jpg)
CADENASCADENASString
capitalColombia=“Colombia”;
![Page 42: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/42.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/43.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/44.jpg)
SENTENCIAS DE SENTENCIAS DE ITERACIONITERACIONwhile(condicion){
◦ sentencias;}
do{◦ sentencias;
}while(condicion);
for(inicio;fin;incremento){◦ sentencias;
}
![Page 45: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/45.jpg)
EXCEPCIONESEXCEPCIONESForma avanzada de controlar el
flujo de un programa. Se utiliza para la gestión de errores
![Page 46: Programacion Orientada a Objetos](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/46.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/47.jpg)
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](https://reader035.fdocuments.es/reader035/viewer/2022062308/5591335f1a28abbe628b46ca/html5/thumbnails/48.jpg)
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;