FPJUCE - Capitulo2
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

FPJUCE - Capitulo2

  • 2,103 views
Uploaded on

Temas tratados en el Capítulo 2 del Curso de Fundamentos de Programación en Java - PROGRAMACIÓN ORIENTADA A ...

Temas tratados en el Capítulo 2 del Curso de Fundamentos de Programación en Java - PROGRAMACIÓN ORIENTADA A
OBJETOS CON JAVA.
Unidad de Educación Contínua - UNIDEC
Universidad Central del Ecuador
Ing. Giovanny Moncayo Unda

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

Views

Total Views
2,103
On Slideshare
2,098
From Embeds
5
Number of Embeds
1

Actions

Shares
Downloads
69
Comments
0
Likes
0

Embeds 5

http://www.slideshare.net 5

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. Ing. Giovanny Moncayo [email_address] [email_address] 095 026 736 081 869 725 CAPÍTULO II PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
  • 2. En esta presentación
    • Introducción a la POO (Programación Orientada a Objetos)
    • Conceptos Básicos de Programación en Java
    • Qué son los Objetos?
    • Unified Modeling Language – UML
    • Descripción de una Clase
    • Introducción a la Clase System
  • 3. Palabras clave
    • Objeto
    • Clase
    • Atributo
    • Método – Accesores, Mutadores, Personalizados
    • Argumentos de un método
    • Valores de retorno en un método
    • Constructor
  • 4. Palabras clave - Continuación
    • Modificadores de acceso
    • Relaciones entre Objetos
    • UML
    • Instancia de una Clase
    • Herencia
    • Encapsulación
    • Garbage Collector – Recolector de Basura de Java
  • 5. Introducción a la Programación Orientada a Objetos
    • La Programación Orientada a Objetos es muy diferente de la Programación Procedimental.
    • PROGRAMACIÓN PROCEDIMENTAL
      • Se basa en una secuencia de instrucciones que se ejecutan una tras otra.
      • Difícil de mantener.
    • PROGRAMACIÓN ORIENTADA A OBJETOS
      • Se basa en una colección de Objetos que interactúan entre sí a través de mensajes (métodos).
      • Los Objetos tienen datos e instrucciones.
      • El código puede ser reutilizado – Fácil de mantener.
  • 6. Conceptos Básicos de Programación en Java
    • Objeto: Contiene datos e instrucciones para procesar datos (Se encuentra en la memoria HEAP)
    • Clase: Representación física de un Objeto (estructura, molde o esqueleto).
    • Atributo: Describe el estado de un objeto, se llaman datos (Lo que conoce el objeto ó lo que se conoce del objeto).
    • Tipo de Dato: Describe el tipo de Información que almacena un atributo. Ej: String, int, double, etc.
  • 7. Conceptos Básicos de Programación en Java
    • Método: Es un grupo de instrucciones
    • Comportamiento: Describe lo que el objeto puede hacer
    • Herencia: Capacidad de los objetos para derivar atributos y métodos de otros objetos más generales.
    • Encapsulación: Ocultación de la información que almacenan los objetos. (Atributos privados y acceso a los mismos a través de Métodos públicos)
  • 8. Qué son los Objetos?
    • INTRODUCCIÓN
      • Cualquier cosa Tangible o Abstracta que es relevante.
      • Pueden tener Atributos y Métodos.
      • Los Atributos describen las características del Objeto, lo que conoce ó lo que se conoce de él .
      • Los Métodos describen definen su comportamiento, lo que el Objeto puede hacer .
  • 9. Qué son los Objetos?
  • 10. Qué son los Objetos?
    • CLASIFICACIÓN DE LOS OBJETOS
      • Objetos que interactúan con el usuario
        • Ej: Elementos de una GUI
      • Objetos del entorno Operativo
        • Ej: Computador, Servidor, etc.
      • Objetos relacionados a tareas específicas
        • Ej: Documentos, Sonido, Audio, etc.
  • 11. Qué son los Objetos?
    • CÓMO SE DEFINE UN OBJETO
      • Lo primero que se debe tener en cuenta es:
        • Cuáles son los Atributos del Objeto.
        • Cuáles son los Métodos del Objeto.
      • A través de una clase se pueden definir un sin número de Objetos.
      • Cada Objeto definido es una “Instancia de la Clase”.
  • 12. Qué son los Objetos?
    • CREACIÓN DE UN OBJETO
      • Un Objeto es creado a través del constructor, utilizando el operador new .
      • El constructor contiene las instrucciones para la creación del Objeto.
      • Todos los Objetos se almacenan en el HEAP.
    public Cliente(String nombreCliente, int edadCliente){ nombreCliente = nombre; edad = edadCliente; }
  • 13. Qué son los Objetos?
    • INTERACIÓN – OPERACIÓN CON OBJETOS
      • Un Objeto interactúa a través de sus métodos.
      • Los métodos son usados para enviar y recibir mensajes entre los objetos.
      • Los Objetos obtienen información de otros Objetos por medio de los Métodos Accesores (GET).
      • Los Objetos alteran la información de otros Objetos por medio de los Métodos Mutadores (SET).
      • El operador para acceder a los métodos de un Objetos es el “Punto ( . )”
  • 14. Qué son los Objetos?
    • LA ENCAPSULACIÓN
      • Significa:
        • Ocultación de la Información
        • Protección de datos
      • Se restringe el acceso a la información del Objeto (sus Atributos).
      • En java se implementa a través de los modificadores de acceso public, private y protected.
      • Para encapsular un Objeto, los atributos de la clase deben ser definidos como privados y se debe proporcionar acceso a cada uno de ellos a través de métodos públicos (get/set – mutadores/accesores). Esto es casi un JavaBean, sólo falta definir el constructor de la clase.
  • 15. Qué son los Objetos?
    • LA ENCAPSULACIÓN – MODIFICADORES DE ACCESO
  • 16. Qué son los Objetos?
    • RELACIONES ENTRE OBJETOS
      • Asociación: Un objeto tiene una referencia a otro Objeto, o lo que es lo mismo, crea una Instancia de otro Objeto.
      • Dependencia: Un objeto no puede existir sin la existencia previa de otro Objeto.
      • Generalización: Un Objeto deriva Atributos y Comportamientos de otro Objeto (Herencia).
  • 17. Qué son los Objetos?
    • HERENCIA
      • Es uno de los conceptos más importantes de la POO.
      • Consiste en la capacidad de crear clases que reutilicen el código de clases más generales (atributos y métodos), y que al mismo tiempo puedan añadir atributos y métodos propios.
      • Ventajas de la Herencia:
        • Reutilización del código.
        • Mantenimiento de las aplicaciones (Escalabilidad).
      • En Java NO existe herencia múltiple. Sólo se puede heredar de una clase.
      • SI es posible herencia multinivel (Varios niveles de herencia).
      • Una misma clase, puede ser heredada por varias clases.
  • 18. Qué son los Objetos?
    • HERENCIA
      • Para hacer herencia, se usa la palabra reservada extends en la clase Hija.
      • La Herencia entre dos clases establece una relación “es un” , en el ejemplo, un Profesor es una Persona
  • 19. Qué son los Objetos?
    • DESTRUCCIÓN - GARBAGE COLLECTOR
      • En Java NO es posible saber en qué momento exacto un Objeto será destruido, sólo es posible determinar a partir de qué momento esto puede suceder (cuando se elimine la última referencia al mismo)
      • El Garbage Collector es una aplicación que forma parte de la JVM, la cual se encarga de liberar de la memoria los objetos “No Referenciados”.
      • Si un Objeto es asignado a null, éste pierde su referencia y es marcado como “basura”.
      • El Garbage Collector no es controlable, lo maneja directamente el Sistema Operativo.
  • 20. Qué son los Objetos?
    • DESTRUCCIÓN - GARBAGE COLLECTOR
      • Se puede hacer la llamada al Garbage Collector a través de la siguiente línea de código:
      • System.gc();
      • Esta llamada hará que el Recolector de Basura empiece a competir por tiempo de CPU, ya que como se dijo anteriormente, es el Sistema Operativo quién lo controla, y se ejecutará cada vez que el HEAP esté próximo a llenarse.
  • 21. Unified Modeling Language – UML
    • Lenguaje utilizado para modelar Programas Orientados a Objetos.
    • Consiste de un conjunto de símbolos para representar Clases, las relaciones entre ellas, sus niveles de acceso y su estado.
    • Existen diferentes tipos de diagramas UML, entre ellos los más utilizados son: Casos de Uso, Secuencia y Clases.
    • Otros tipos de diagramas UML son: Colaboración, Actividad, Componentes, Despliegue, etc.
  • 22. UML – Diagrama de Clases
    • Permite modelar:
      • Los Atributos y Comportamientos de una Clase.
      • Las relaciones entre clases.
  • 23. UML – Símbolos del Diagrama de Clases
    • Las Clases se representan a través de Rectángulos, divididos en tres zonas: La primera para el nombre de la Clase, la segunda para los Atributos y la tercera para los Métodos o Comportamientos.
    • Las líneas describen las relaciones entre las Clases u Objetos (Asociación, Dependencia ó Generalización)
  • 24. UML – Símbolos del Diagrama de Clases
    • Algunos símbolos especiales describen el nivel de acceso, estos son:
  • 25. UML – Características de un Diagrama de Clases
    • Los Atributos por lo general serán privados , seguidos del Tipo de Dato y en algunos casos de una inicialización Explícita.
    • Los Métodos por lo general serán públicos , seguidos de la lista de argumentos y del Tipo de Retorno.
    • Los métodos dentro del diagrama UML deben ser ordenados de la siguiente manera:
      • Constructor
      • Métodos get/set
      • Métodos personalizados
  • 26. Descripción de una Clase
    • DEFINICIÓN DE LA CLASE
      • Una clase es definida utilizando la palabra reservada class y el modificador de acceso public
      • El nombre del archivo .java debe tener exactamente el mismo nombre de la clase.
      • Un mismo archivo .java puede contener más de una clase, pero sólo una de ellas podrá ser pública.
      • Varias clases públicas deben ser almacenadas en archivos separados.
      • Una clase NO es un Objeto, pero es usada para CREAR Objetos a través del operador new
  • 27. Descripción de una Clase
    • DEFINICIÓN DE LA CLASE
      • La firma para la definición de una clase:
      • [public] class NombreClase
      • {
      • // Atributos
      • // Métodos
      • }
      • Lo que está entre [ ] puede obviarse, en ese caso, la clase tiene acceso por default.
      • Las clases no pueden ser private ni protected.
  • 28. Descripción de una Clase
    • DEFINICIÓN DE LA CLASE
      • El NombreClase , debe cumplir con las siguientes características:
        • Debe ser un sustantivo.
        • La primera letra debe ser mayúscula y el resto minúsculas.
        • Se pueden mezclar varios sustantivos, iniciando cada uno de ellos con una letra mayúscula, lo que se conoce como CamelCase.
        • De preferencia evitar colocar caracteres raros dentro del Nombre de la Clase.
  • 29. Descripción de una Clase
    • DEFINICIÓN DE LOS ATRIBUTOS
      • Los Atributos en una Clase, se representan a través de Variables ó Identificadores, y son los que definen el Estado de un Objeto.
      • Por lo general, se inicializan en el Constructor de la Clase.
      • Cada atributo debe estar asociado a un Tipo de Dato de acuerdo a la información que almacena, y pueden ser:
        • Tipos de Dato Primitivos: byte, short, int, long, float, double, char y boolean
        • Tipos de Dato Referencia: Cualquier clase a la que se haga “Referencia”. Ej: String
  • 30. Descripción de una Clase
    • DEFINICIÓN DE LOS ATRIBUTOS
      • El uso de uno u otro Tipo de Dato, se verá reflejado en el uso de la memoria dentro del computador y en las operaciones que se puedan realizar con dichos atributos.
      • La firma para la definición de un Atributo:
      • [ModifAcceso] TipoDato nombreAtributo;
        • [ModifAcceso ] : public, private, protected ó default (cuando no se pone, pero como atributo de clase)
        • TipoDato : Primitivo ó de Referencia
      • Los atributos definidos dentro de un método (atributo local) no tienen modificador de acceso, están disponibles únicamente durante la ejecución del método.
  • 31. Descripción de una Clase
    • DEFINICIÓN DE LOS ATRIBUTOS
      • El nombreAtributo debe cumplir con las siguientes reglas:
        • Debe comenzar con una letra minúscula.
        • Si contiene más de una palabra, éstas se separarán con una letra mayúscula.
        • No debe tener espacios, ni caracteres especiales como el %, #, $, &.
        • No debe ser una palabra reservada (Keyword) de java.
  • 32. Descripción de una Clase
    • DEFINICIÓN DEL CONSTRUCTOR
      • La definición del método Constructor puede ser incluida dentro de la definición de la clase.
      • El Constructor contiene tareas e instrucciones necesarias que deben ejecutarse al momento de la creación de un Objeto, como por ejemplo, la inicialización de los atributos.
      • El Constructor puede ser llamado a través del operador new .
        • Ejemplo:
          • Libro pensandoJava = new Libro();
      • pensandoJava es una variable de Referencia.
  • 33. Descripción de una Clase
    • DEFINICIÓN DEL CONSTRUCTOR
      • Toda clase java tiene al menos un constructor, llamado Constructor vacío , nulo ó por defecto , y es creado automáticamente por la JVM al momento de compilar la clase, no necesita ser escrito.
      • Se pueden definir constructores personalizados, tomando en cuenta las siguientes reglas:
        • El nombre del constructor debe ser exactamente el mismo de nombre de la clase.
        • El constructor no devuelve nada, ni siquiera void().
        • Los constructores se pueden sobrecargar (Modificando la lista de argumentos).
        • Si se define un constructor personalizado, el constructor por defecto desaparece y debe ser escrito si queremos utilizarlo.
  • 34. Descripción de una Clase
    • DEFINICIÓN DE LOS METODOS
      • Los métodos definen el comportamiento de un Objeto, es decir lo que el Objeto puede hacer .
      • Consisten en un conjunto de tareas que se ejecutan paso a paso, de manera procedimental.
      • En java, los métodos de una Clase, se implementan a través de funciones.
      • Los métodos deben tener:
        • Un nombre significativo que describa lo que hace.
        • Información requerida para realizar la tarea (Argumentos).
        • Un valor de retorno para mostrar los resultados (Tipo de Dato Primitivo , de Referencia ó void cuando no retorna nada).
  • 35. Descripción de una Clase
    • DEFINICIÓN DE LOS METODOS
      • Firma para la definición de un Método:
    • [ModifAcceso] TipoRetorno nombreMetodo(TipoDato param1, TipoDato param2,……,…){
    • //Definición del Método
    • }
        • [ModifAcceso ] : public, private, protected ó default
        • TipoRetorno : Primitivo, de Referencia ó void
        • nombreMetodo : reglas:
          • Debe ser un verbo y comenzar con una letra minúscula.
          • Se pueden agregar otras palabras, separándolas con una letra mayúscula.
          • No debe tener espacios, ni guiones bajos .
          • No debe ser una palabra reservada (Keyword) de java
        • TipoDato : Tipo de Dato Primitivo ó de Referencia del argumento
        • param1, param2 : La lista de argumentos.
  • 36. Descripción de una Clase
    • DEFINICIÓN DE LOS METODOS
      • Tipos de Métodos:
        • Mutadores: Cambian el estado de un Objeto (set)
        • Accesores: Devuelven el estado de un Objeto (get)
        • Que requieren argumentos: metodo(param1, param2, .. , ..)
        • Que no requieren argumentos: metodo( )
        • Métodos que retornan valores: Dentro de su definición utilizan la palabra reservada return para devolver un Tipo de Dato Primitivo o de Referencia. Ej: métodos get
        • Métodos que no retornan valores: Métodos que tienen como tipo de retorno void , no necesitan un return . Ej: métodos set
  • 37. Descripción de una Clase
    • DEFINICIÓN DE LOS METODOS
      • El método main
      • public static void main(String args[ ]){
      • }
      • Contiene las instrucciones para ejecutar una aplicación Java. Es conocido como el punto de entrada a una aplicación.
      • Toda aplicación Java debe tener al menos un método main.
      • Es un método estático, lo cual significa que no está asociado a un objeto en particular, y se lo puede invocar sin la necesidad de crear una instancia de la Clase.
  • 38. Descripción de una Clase
    • DEFINICIÓN DE LOS METODOS
      • Métodos Sobrecargados
      • Son métodos dentro de la misma clase, que tienen las siguientes características:
        • Tienen el mismo nombre
        • La lista de argumentos debe ser diferente, ya sea en los tipos de datos o en el número de argumentos. Sólo modificar el orden de los argumentos NO es sobrecarga.
        • El valor devuelto puede o no ser el mismo, siempre y cuando la lista de argumentos sea diferente en los métodos sobrecargados. Lo contrario llevará a un error de compilación.
  • 39. Descripción de una Clase
    • Laboratorio 2.0: Opcional
      • Definir la siguiente Clase utilizando BlueJ
  • 40. Descripción de una Clase
    • Laboratorio 2.1: Creación de Clases basadas en diagramas UML
      • En el método main, utilizar ambos constructores de la clase Estudiante, para crear 2 estudiantes s1 y s2 en el primer caso, setear los valores con los métodos set(), y en ambos casos imprimir los resultados utilizando los métodos get().
  • 41. Introducción a la Clase System
    • Clase utilizada para realizar tareas propias del Sistema, como por ejemplo la entrada y salida de datos (A través de sus atributos in , out ).
    • Se encuentra dentro del paquete java.lang.
    • System.out.println() – Para desplegar textos
    • System.gc() – Para hacer la llamada al Garbage Collector
  • 42. Referencias Bibliográficas
    • “ Pensando en Java” - “Thinking in Java”
    • ECKEL, Bruce.
    • Prentice Hall, Madrid 2002
    • “ Cómo programar en Java”.
    • DEITEL & DEITEL.
    • Pearson - Prentice Hall. 2004
    • ” Introducción a la Programación orientada a objetos con JAVA”.
    • WU, C. Thomas.
    • McGraw-Hill. 2001