Programacion Orientada a Objetos

  • 5,215 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,215
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
234
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Michael Alex Acosta Torres Cesar Augusto Rosero Estudiantes de Sistemas Instituto Colombiano de Aprendizaje Junio de2009
  • 2. PROGRAMACIÓN ORIENTADA A 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
  • 3. LOS 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
  • 4. COMPOSICION DE UN OBJETO
    • Tiempo de vida: duración de un objeto en un programa. Los objetos se crean mediante la instanciación y dejan de existir cuando son destruidos
    • Estado: definido por sus atributos
    • Comportamiento: definida por sus métodos
  • 5. LAS CLASES
    • Abstracciones 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
  • 6. ESTRUCTURA DE CLASE
    • Atributos: 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)
  • 7. EJEMPLOS DE CLASES Y OBJETOS
    • Clase: Persona Objeto: juan, alberto, carlos, maria
    • Clase: Figura Objeto: circulo, cuadrado, triangulo
    • Clase: Web Objeto: www.incap.edu.co
    • Clase: Transporte Objeto: carro, barco, avión
  • 8. PRINCIPIOS BASICOS DE POO
    • 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
  • 9. PRINCIPIO DE ABSTRACCION
    • 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
  • 10. PRINCIPIO DE ENCAPSULAMIENTO
    • 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.
  • 11. PRINCIPIO DE MODULARIDAD
    • 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.
  • 12. PRINCIPIO DE JERARQUIA
    • 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 heredar
    Clase Padre Clase Hija 1 Clase Hija 2
  • 13. PRINCIPIO DEL PASO DE MENSAJES
    • Un 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
  • 14. PRINCIPIO DE POLIMORFISMO
    • Un objeto y muchas formas
    • Propiedad que permite que un objeto presente diferentes comportamientos en función del contexto en que se encuentre
  • 15. UML – Lenguaje Unificado de 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)
  • 16. DIAGRAMAS UML
    • D. de Clases
    • D. de Objetos
    • D. de Casos de Uso
    • D. de Secuencia
    • D. de Colaboración
    • D. de Estados
    • D. de Actividades
    • D. de Componentes
    • D. de Despliegue
  • 17. DIAGRAMA 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
  • 18. DIAGRAMA DE CLASES Clase Atributos Métodos Relación
  • 19. JAVA Michael Alex Acosta Cesar Augusto Rosero Estudiantes de Sistemas Instituto Colombiano de Aprendizaje Junio de 2099
  • 20. HISTORIA
    • Antes: C y Fortran. Sistemas complejos en lenguajes de programación estructurada
    • Finales de los 60: aparece Simula67 primer lenguaje OO
    • C++
    • Java
  • 21. QUE NO HEREDA JAVA DE C++
    • Punteros
    • Variables Globales
    • goto
    • Asignación de memoria: malloc y free
    • Conversión de tipos insegura: type casting
  • 22. COMIENZOS 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)
  • 23. ¿POR QUE JAVA?
    • Lenguaje orientado a objetos
    • Sencillo pero potente. Riqueza semántica
    • Robusto. 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
    • Multiplataforma
    • Basado en C++
  • 24. ESTRUCTURA DE UNA APLICACION 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
  • 25. FUNDAMENTOS DEL LENGUAJE
  • 26. TOKENS
    • 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
  • 27. TOKENS
    • Palabras 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
  • 28. TOKENS
    • Literales 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;
  • 29. TOKENS
    • Operadores: 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: ++ -- += -= /= *= () [] ^= > >= < <= = == != ^
  • 30. TOKENS
    • Separadores: informar al compilador como están agrupadas las sentencias en el código
    • {} , : ;
  • 31. TOKENS
    • Comentarios y espacios en blanco
    • /* Comentarios */
    • // Comentarios
    • /** Comentarios */
  • 32. EXPRESIONES
    • int contador=1;
    • contador++;
    • in.read() != -1 //in es un flujo entrada
  • 33. BLOQUES Y AMBITO
    • {
    • //Bloque externo
    • int x=1;
      • {
      • //Bloque interno invisible al exterior
      • int y=2;
      • }
      • x=y; // Da error, Y esta fuera del ámbito
    • }
  • 34. TIPOS DE DATOS
    • Simples: 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
  • 35. TIPOS DE DATOS: ENTEROS
    • byte: 1 Byte
    • short: 2 Bytes
    • int: 4 Bytes
    • long: 8 Bytes
      • byte edad=35;
  • 36. TIPOS DE DATOS: FLOTANTES
    • float: 4 Bytes
    • double: 8 Bytes
      • double miPi=314.16e-2;
      • float temperatura=(float)36.6;
  • 37. TIPOS DE DATOS: BOOLEANOS
    • boolean reciboPagado=false;
  • 38. TIPOS DE DATOS: CARACTER
    • char letraMayuscula=‘A’;
  • 39. CONVERSIONES
    • float x=(float)3.8;
    • double y=(double)x;
  • 40. VECTORES Y MATRICES
    • int vectorNumeros[];
    • int vectorNumeros=new int[5];
    • int vectorIni={2,5,8};
    • int vectorNumeros[3]=new int[3];
  • 41. CADENAS
    • String capitalColombia=“Colombia”;
  • 42. ESTRUCTURAS DE CONTROL
    • if(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
      • }
  • 43. ESTRUCTURAS DE CONTROL
    • switch(expresionMultivalor){
      • case valor1: sentencias; break;
      • case valor2: sentencias; break;
      • case valor3: sentencias; break;
      • default: sentencias; break;
    • }
  • 44. SENTENCIAS DE ITERACION
    • while(condicion){
      • sentencias;
    • }
    • do{
      • sentencias;
    • }while(condicion);
    • for(inicio;fin;incremento){
      • sentencias;
    • }
  • 45. EXCEPCIONES
    • Forma avanzada de controlar el flujo de un programa. Se utiliza para la gestión de errores
  • 46. CLASE MODELO
    • 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
  • 47. INSTANCIACION DE CLASES: LOS OBJETOS
    • MiCalculadora personal;
    • personal=new MiCalculadora();
    • O también se puede
    • MiCalculadora personal=new MiCalculadora();
    • O también se puede
    • MiCalculadora personal=new MiCalculadora(3,2);
    Objeto de tipo class miCalculadora
  • 48. ACCESO 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;