• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Programacion Orientada a Objetos
 

Programacion Orientada a Objetos

on

  • 6,391 views

 

Statistics

Views

Total Views
6,391
Views on SlideShare
6,371
Embed Views
20

Actions

Likes
0
Downloads
225
Comments
0

2 Embeds 20

http://tecnisistemaspc02.blogspot.com 14
http://www.slideshare.net 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Programacion Orientada a Objetos Programacion Orientada a Objetos Presentation Transcript

    • INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Michael Alex Acosta Torres Cesar Augusto Rosero Estudiantes de Sistemas Instituto Colombiano de Aprendizaje Junio de2009
    • 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
    • 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
    • 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
    • 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
    • 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)
    • 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
    • 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
    • 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
    • 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.
    • 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.
    • 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
    • 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
    • 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
    • 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)
    • 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
    • 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
    • DIAGRAMA DE CLASES Clase Atributos Métodos Relación
    • JAVA Michael Alex Acosta Cesar Augusto Rosero Estudiantes de Sistemas Instituto Colombiano de Aprendizaje Junio de 2099
    • HISTORIA
      • Antes: C y Fortran. Sistemas complejos en lenguajes de programación estructurada
      • Finales de los 60: aparece Simula67 primer lenguaje OO
      • C++
      • Java
    • QUE NO HEREDA JAVA DE C++
      • Punteros
      • Variables Globales
      • goto
      • Asignación de memoria: malloc y free
      • Conversión de tipos insegura: type casting
    • 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)
    • ¿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++
    • 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
    • FUNDAMENTOS DEL LENGUAJE
    • 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
    • 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
    • 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;
    • 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: ++ -- += -= /= *= () [] ^= > >= < <= = == != ^
    • TOKENS
      • Separadores: informar al compilador como están agrupadas las sentencias en el código
      • {} , : ;
    • TOKENS
      • Comentarios y espacios en blanco
      • /* Comentarios */
      • // Comentarios
      • /** Comentarios */
    • EXPRESIONES
      • int contador=1;
      • contador++;
      • in.read() != -1 //in es un flujo entrada
    • 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
      • }
    • 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
    • TIPOS DE DATOS: ENTEROS
      • byte: 1 Byte
      • short: 2 Bytes
      • int: 4 Bytes
      • long: 8 Bytes
        • byte edad=35;
    • TIPOS DE DATOS: FLOTANTES
      • float: 4 Bytes
      • double: 8 Bytes
        • double miPi=314.16e-2;
        • float temperatura=(float)36.6;
    • TIPOS DE DATOS: BOOLEANOS
      • boolean reciboPagado=false;
    • TIPOS DE DATOS: CARACTER
      • char letraMayuscula=‘A’;
    • CONVERSIONES
      • float x=(float)3.8;
      • double y=(double)x;
    • VECTORES Y MATRICES
      • int vectorNumeros[];
      • int vectorNumeros=new int[5];
      • int vectorIni={2,5,8};
      • int vectorNumeros[3]=new int[3];
    • CADENAS
      • String capitalColombia=“Colombia”;
    • 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
        • }
    • ESTRUCTURAS DE CONTROL
      • switch(expresionMultivalor){
        • case valor1: sentencias; break;
        • case valor2: sentencias; break;
        • case valor3: sentencias; break;
        • default: sentencias; break;
      • }
    • SENTENCIAS DE ITERACION
      • while(condicion){
        • sentencias;
      • }
      • do{
        • sentencias;
      • }while(condicion);
      • for(inicio;fin;incremento){
        • sentencias;
      • }
    • EXCEPCIONES
      • Forma avanzada de controlar el flujo de un programa. Se utiliza para la gestión de errores
    • 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
    • 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
    • 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;