SlideShare una empresa de Scribd logo
1 de 38
CATEDRATICO:
ING. Y MI. JORGE ALBERTO CAMPOS ROSA
MATERIA :
PROGRAMACION
ORIENTADA A OBJETOS
CONTENIDO
 Presentación de Materia
 Del Profesor
 Contenido Programático
 Evaluación del Curso.
 Programacion Orientada a Objetos
 Generalidades de JAVA
DEL CATEDRATICO
 Profesor : Jorge Alberto Campos Rosa
 Profesión : Ingeniero en Sistemas, Master en Informática,
 Experiencia Laboral:
 mas de 30 años de experiencia en el área de informática.
 Programador para PHP/ Visual Studio Microsft/JAVA,
 Administrador de Servidores en LINUX y Servidores Windows.
 Catedrático de las Materias de Redes en U Evangélica.
 Cursos de CISCO, Routing and Switch HP (3COM)
 Cursos de Administración de Redes Windows y Linux.
 PARA CONSULTAS SOBRE LAS CLASES Y DUDAS DE LOS TEMAS DESARROLLADOS:
 Correo Electrónico : jcamposr@gmail.com
 Facebook : buscar por nombre completo
 Tel Celular : 7874-8988, 7416-4998
PRESENTACION DE LA MATERIA
 Nombre : PROGRAMACION ORIENTADA A
OBJETOS.
 Código: POO01
 Prerrequisito: Ofimática y Tecnologías Eficaces
 Duración del ciclo en semanas: 16
 Duración de la hora clase: 50 minutos
 Horario : Miercoles 06:10 am a 08:20 am
 Laboratorio :
CONTENIDO PROGRAMATICO
 OBJETIVO
 Cimentar los conocimientos necesarios sobre la programación orientada a
objetos con el lenguaje de programación Java, para poder seguir con
normalidad el desarrollo de aplicaciones de consola y escritorio
 ESPECIFICOS
 Identificar y aplicar correctamente los diferentes conceptos que integran el
paradigma de orientación a objetos como herramienta de análisis y diseño de
software.
 Comprender y utilizar las relaciones válidas dentro de POO para modelar los
vínculos existentes entre los componentes de un sistema software.
 Integrar UML con el paradigma de orientación a objetos como un estándar
actualmente utilizado en el área de diseño y modelado de software
 Unidad I: Conceptos generales de POO.
 Objetivo: Conocer y aplicar de forma clara y adecuada, los conceptos
básicos del paradigma de la programación orientada a objetos.
 I.1 Lenguaje de Programación Java.
 I.2 Estructuras de control Condicionales e Iterativas.
 I.3 Clases, objetos, atributos y métodos
 I.4 Mensajes
 I.5 Elementos estáticos
 I.6 Herencia y polimorfismo
 I.7 Clases abstractas
 I.8 Interfaces
 I.9 Relación de clases
 I.10 Paquetes
CONTENIDO PROGRAMATICO
Unidad II: Herencia y generalización
 Objetivo: Modelar sistemas basados en clases y objetos, mediante las relaciones
válidas dentro del paradigma de orientación a objetos.
 II.1 Relaciones de generalización/especialización.
 II.2 Herencia múltiple y repetida.
 II.3 Relaciones de agregación y asociación
 II.4 Cardinalidad de las relaciones.
Unidad III: Modelado con UML
 Objetivo: Introducir al estudiante en los conceptos fundamentales de UML como
metodología para el análisis, diseño y desarrollo de sistemas software.
 III.1 El proceso unificado de desarrollo.
 III.2 UML y la orientación a objetos.
 III.3 Casos de uso.
 III.4 Arquitectura de software
CONTENIDO PROGRAMATICO
 Utilizaremos Pseudocodigo, colección de palabra
reservadas que se usaran como comandos.
 Diagramas de Flujo, para representar gráficamente una
solución.
 Libros de la Biblioteca de UPES.
 Libros en Formato Digital
 Cualquier otro recurso que esta a disposición de los
alumnos.
 Campus Virtual para colocar clases.
RECURSOS TECNOLOGICOS
PROGRAMACION ORIENTADA A
OBJETOS
PROGRAMACION ORIENTADA A
OBJETOS
 Los problemas suelen tener varias soluciones posibles.
 En programación existen diversas metodologías que
nos ayudan a enfrentar un problema.
 Cada metodología tiene diversos lenguajes que las
soportan.
 Algunos lenguajes soportan varias metodologías.
Metodología Lenguaje
Estructurada Fortran, C, Pascal, Basic
Orientada a objetos
(OOP)
C++, Java, Smalltalk
Orientada a eventos VisualBasic
Programación Orientada a
Objetos
Definición:
La Programación Orientada a Objetos (OOP) es un método de
programación en el cual los programas se organizan en colecciones
cooperativas de objetos, cada uno de los cuales representa una instancia
de alguna clase, y cuyas clases son, todas ellas, miembros de una
jerarquía de clases unidas mediante relaciones de herencia.
Comentarios:
 Usamos objetos en lugar de algoritmos como bloque fundamental
 Cada objeto es una instancia de una clase
 Las clases están relacionadas entre sí por relaciones tan complejas como la herencia
Ventajas de la POO
 Proximidad de los conceptos modelados respecto a objetos del mundo
real
 Facilita la reutilización de código
 Y por tanto el mantenimiento del mismo
 Se pueden usar conceptos comunes durante las fases de análisis, diseño
e implementación
 Disipa las barreras entre el qué y el cómo
Desventajas de la POO
 Mayor complejidad a la hora de entender el flujo de
datos
 Pérdida de linealidad
 Requiere de un lenguaje de modelización de problemas
más elaborado:
 Unified Modelling Language (UML)
 Representaciones gráficas más complicadas
Conceptos de la OOP
Conceptos básicos
 Objeto
 Clase
Características de la OOP
 Abstracción:
 Encapsulamiento:
 Modularidad:
 Jerarquía
Otros conceptos OOP
 Tipos
 Persistencia
Tipos de relaciones
 Asociación
 Herencia
 Agregación
 Instanciación
Representaciones gráficas
 Diagramas estáticos (de
clases, de objetos...)
 Diagramas dinámicos (de
interacción...)
Objeto y Clase
Un objeto es algo de lo
que hablamos y que
podemos manipular
 Existen en el mundo real (o en
nuestro entendimiento del
mismo)
Una clase describe los
objetos del mismo tipo
 Todos los objetos son instancias de
una clase
 Describe las propiedades y el
comportamiento de un tipo de
objetos
Clase
Atributos
Operaciones
Objeto:Clase
Atributo1=valor
Atributo2=valor
...
Conceptos OOP: Abstracción
 Nos permite trabajar con la complejidad del mundo real
 Resaltando los aspectos relevantes de los objetos de una clase
 Ocultando los detalles particulares de cada objeto
 Separaremos el comportamiento de la implementación
 Es más importante saber qué se hace en lugar de cómo se hace:
Un sensor de temperatura
 Se define porque...
 mide la temperatura
 nos muestra su valor
 se puede calibrar...
 No sabemos... (no nos importa)
 cómo mide la temperatura
 de qué está hecho
 cómo se calibra
Conceptos OOP: Abstracción
 La abstracción no es única:
Un coche puede ser...
 Una cosa con ruedas, motor, volante y pedales
(conductor)
 Algo capaz de transportar personas (taxista)
 Una caja que se mueve (simulador de tráfico)
 Conjunto de piezas (fabricante)
Conceptos OOP:
Encapsulamiento
 Ninguna parte de un sistema complejo debe depender de los
detalles internos de otra.
 Complementa a la abstracción
 Se consigue:
 Separando la interfaz de su implementación
 Ocultando la información interna de un objeto
 Escondiendo la estructura e implementación de los métodos
(algoritmos).
 Exponiendo solo la forma de interactuar con el objeto
Conceptos OOP:
Encapsulamiento
Vemos que se puede...
 Construir con:
 4 puntos (y restricciones)
 1 punto y 2 vectores
 1 punto, 1 vector, 1
ángulo y 1 lado
 Transformaciones:
 Escalado
 Rotación
 Desplazamiento
 Dibujar
No vemos...
 Como está representado
internamente
 4 puntos?
 1 punto y 2 vectores?
 ...
 Como se modifica su escala
 Guardando el factor?
 Escalando en el momento?
 Idem para rotación, traslación,
etc...
Ejemplo: Un paralelogramo
Conceptos OOP: Modularidad
 Consiste en separar el sistema en bloques poco ligados entre sí:
módulos.
 Organización del código
 Es una especie de encapsulamiento de más alto nivel.
 El C++ no lo impone aunque lo soporta (namespace)
 El Java es más formal (packages)
 Difícil pero muy importante en sistemas grandes.
 Suele aplicarse refinando el sistema en sucesivas iteraciones
 Cada módulo debe definir una interfaz clara
Conceptos POO: Jerarquía
 Es una clasificación u ordenamiento de las abstracciones
 Hay dos jerarquías fundamentales:
 Estructura de clases:
 Jerarquía “es un/a”
 Relaciones de herencia
 Estructura de objetos:
 Jerarquía “parte de”
 Relaciones de agregación
 Está implementada de manera genérica en la estructura
de clases
Conceptos OOP: Persistencia
 Propiedad de un objeto de trascender en el tiempo y
en el espacio a su creador (programa que lo generó)
 No se trata de almacenar sólo el estado de un objeto
sino toda la clase (incluido su comportamiento)
 No está directamente soportado por el C++
 Existen librerías y sistemas completos (OODBMS)
que facilitan la tarea
 Frameworks (entornos) como ROOT lo soportan
parcialmente (reflex)
 El concepto de serialización del Java está
directamente relacionado con la persistencia
Relaciones
 Están presentes en cualquier sistema
 Definen como se producen los intercambios de
información y datos
 También ayudan a comprender las propiedades de
unas clases a partir de las propiedades de otras
 Existen 4 tipos de relaciones:
 Asociación
 Herencia
 Agregación
 Instanciación
LENGUAJE DE PROGRAMACION JAVA
¿Qué es
JAVA?
Es un lenguaje de programación para añadir interactividad,
dinamismo entre otras funcionalidades al contenido de una pagina
web.
¿Qué puede hacer
JAVA?
 Puede hacer un
APPLET , que es un
programa mas
pequeño dentro de
un programa, que
es un programa del
navegador por
ejemplo
El lenguaje de programación JAVA
fue desarrollado para tener las
siguientes características :
 Orientado a objetos. Busca crear objetos o piezas de código autónomo, que pueda
interactuar con otros objetos para resolver un problema.
 Distribuido. Proporciona una colección de clases para su uso en aplicaciones de red,
que permiten abrir sockets y establecer y aceptar conexiones con servidores o
clientes remotos.
 Simple. Posee una curva de aprendizaje muy rápida.
 Multihilo. Soporta la sincronización de múltiples hilos de ejecución a nivel de
lenguaje.
 Seguro. Se implementaron barreras de seguridad en el lenguaje y en el sistema de
ejecución en tiempo real.
 Independiente de la plataforma. No requiere que sus programas sean compilados ni
ligados en cada máquina.
 En diciembre de 1950 Patrick Naughton,
ingeniero de Sun Microsystems, reclutó a
varios colegas entre ellos James Gosling y
Mike Sheridan para trabajar sobre un nuevo
proyecto conocido como "El proyecto
verde". Con la ayuda de otros ingenieros,
empezaron a trabajar en una pequeña
oficina en Sand Hill Road en Menlo Park,
California.
JAVA Y SUS INICIOS
 JAVA surge en 1991 cuando un grupo de ingenieros de
Sun Microsystems trataron de diseñar un nuevo lenguaje
de programación destinado a electrodomésticos. No fue
creado originalmente para la red internet. Sun
Microsysteam comenzó a desarrollarlo con el objetivo
de crear un lenguaje independiente de la plataforma y
del sistema operativo. Para el desarrollo de electrónica
de consumo (dispositivos electrónicos inteligentes ,
como televisores, videos, televisores , equipos de
música, etc)
Sucesos
importantes
 1992 El equipo ya había desarrollado un sistema en un prototipo
llamado Star7 (*7).
 1995 JAVA se introduce como lenguaje de programación para
computadoras.
 incorporación de un intérprete Java en la versión 2.0 del programa
Netscape Navigator, produciendo una verdadera revolución en
Internet. Java 1.1 apareció a principios de 1997, mejorando
sustancialmente la primera versión del lenguaje.
 Java 1.2, más tarde rebautizado como Java 2, nació a finales de
1998. Java incorpora en el propio lenguaje muchos aspectos que en
cualquier otro lenguaje son extensiones propiedad de empresas de
software o fabricantes de ordenadores (threads, ejecución remota,
componentes, seguridad, acceso a bases de datos, etc.)
 Dispositivo e interface del prototipo denominado *7(star
seven) con el cual se hizo una demostración de la plataforma
JAVA (aún no denominada con este nombre).
Tipos
primitivos
Sin métodos; no son
objetos, no
necesitan una
invocación para ser
creados
Tipos de
objeto
 Con métodos ,
necesitan una
invocación para
ser creados
 Todas las instrucciones de código en Java deben terminar con un signo punto y coma ” ;
 Todas las variables al igual que en otros lenguajes deben iniciar con una letra mas no con
un numero o carácter especial, pueden iniciar con una letra y posteriormente usar
números para nombrarlas.
 -Otra regla importante es que para llevar
una estructura correcta, todo programa en
Java debe tener mínimo una clase, las
cuales deben tener métodos.
Las clases se crean de la siguiente manera:
public class Nombredeclase /*aqui se declara
una clase, nótese que comienza con
mayúsculas la cual es la forma correcta de
nombrar una clase*/
{
public static void main(String args[ ]){}/* este
es el metodo principal de la clase, dentro de
este se escriben instrucciones*/
}
DUKE, LA MASCOTA DE JAVA
Duke es la Mascota Oficial de Java. Fue
creado en le año de 1992, para aparecer
en un dispositivo llamado *7 (Star Seven),
creado por un grupo secreto de
programadores de Sun Microsystem,
llamado The Green Project.
Duke era "el agente de Software", era el
que "hacia" las cosas que el usuario pedía
por medio de la pantalla animada.
Podía moverse e interactuar con toda la
interfaz, incluso tenia un maletín para
llevar las cosas importantes.
PREGUNTAS

Más contenido relacionado

Similar a Clase No.01.pptx

Introducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfIntroducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfEnrique137614
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020Laura Noussan Lettry
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosEliecer Suarez
 
Trabajo investigativo sobre la programación orientada a objetos y java
Trabajo investigativo sobre la programación orientada a objetos y javaTrabajo investigativo sobre la programación orientada a objetos y java
Trabajo investigativo sobre la programación orientada a objetos y javaJulio César Rojas Maza
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6Tonymx
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POOLibertad25
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .netcampus party
 
Taller campus party
Taller campus partyTaller campus party
Taller campus partycampus party
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IEKaren Olan
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1Laura Noussan Lettry
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos BasicosEmilio Aviles Avila
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptjorgealfarol
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 
Modelado con clases instancias
Modelado con clases instanciasModelado con clases instancias
Modelado con clases instanciasCarlos Castro
 

Similar a Clase No.01.pptx (20)

Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Introducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfIntroducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdf
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado Objetos
 
Programacion orientada a_objetos
Programacion orientada a_objetosProgramacion orientada a_objetos
Programacion orientada a_objetos
 
Trabajo investigativo sobre la programación orientada a objetos y java
Trabajo investigativo sobre la programación orientada a objetos y javaTrabajo investigativo sobre la programación orientada a objetos y java
Trabajo investigativo sobre la programación orientada a objetos y java
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos Basicos
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGppt
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Modelado con clases instancias
Modelado con clases instanciasModelado con clases instancias
Modelado con clases instancias
 

Clase No.01.pptx

  • 1. CATEDRATICO: ING. Y MI. JORGE ALBERTO CAMPOS ROSA MATERIA : PROGRAMACION ORIENTADA A OBJETOS
  • 2. CONTENIDO  Presentación de Materia  Del Profesor  Contenido Programático  Evaluación del Curso.  Programacion Orientada a Objetos  Generalidades de JAVA
  • 3. DEL CATEDRATICO  Profesor : Jorge Alberto Campos Rosa  Profesión : Ingeniero en Sistemas, Master en Informática,  Experiencia Laboral:  mas de 30 años de experiencia en el área de informática.  Programador para PHP/ Visual Studio Microsft/JAVA,  Administrador de Servidores en LINUX y Servidores Windows.  Catedrático de las Materias de Redes en U Evangélica.  Cursos de CISCO, Routing and Switch HP (3COM)  Cursos de Administración de Redes Windows y Linux.  PARA CONSULTAS SOBRE LAS CLASES Y DUDAS DE LOS TEMAS DESARROLLADOS:  Correo Electrónico : jcamposr@gmail.com  Facebook : buscar por nombre completo  Tel Celular : 7874-8988, 7416-4998
  • 4. PRESENTACION DE LA MATERIA  Nombre : PROGRAMACION ORIENTADA A OBJETOS.  Código: POO01  Prerrequisito: Ofimática y Tecnologías Eficaces  Duración del ciclo en semanas: 16  Duración de la hora clase: 50 minutos  Horario : Miercoles 06:10 am a 08:20 am  Laboratorio :
  • 5. CONTENIDO PROGRAMATICO  OBJETIVO  Cimentar los conocimientos necesarios sobre la programación orientada a objetos con el lenguaje de programación Java, para poder seguir con normalidad el desarrollo de aplicaciones de consola y escritorio  ESPECIFICOS  Identificar y aplicar correctamente los diferentes conceptos que integran el paradigma de orientación a objetos como herramienta de análisis y diseño de software.  Comprender y utilizar las relaciones válidas dentro de POO para modelar los vínculos existentes entre los componentes de un sistema software.  Integrar UML con el paradigma de orientación a objetos como un estándar actualmente utilizado en el área de diseño y modelado de software
  • 6.  Unidad I: Conceptos generales de POO.  Objetivo: Conocer y aplicar de forma clara y adecuada, los conceptos básicos del paradigma de la programación orientada a objetos.  I.1 Lenguaje de Programación Java.  I.2 Estructuras de control Condicionales e Iterativas.  I.3 Clases, objetos, atributos y métodos  I.4 Mensajes  I.5 Elementos estáticos  I.6 Herencia y polimorfismo  I.7 Clases abstractas  I.8 Interfaces  I.9 Relación de clases  I.10 Paquetes CONTENIDO PROGRAMATICO
  • 7. Unidad II: Herencia y generalización  Objetivo: Modelar sistemas basados en clases y objetos, mediante las relaciones válidas dentro del paradigma de orientación a objetos.  II.1 Relaciones de generalización/especialización.  II.2 Herencia múltiple y repetida.  II.3 Relaciones de agregación y asociación  II.4 Cardinalidad de las relaciones. Unidad III: Modelado con UML  Objetivo: Introducir al estudiante en los conceptos fundamentales de UML como metodología para el análisis, diseño y desarrollo de sistemas software.  III.1 El proceso unificado de desarrollo.  III.2 UML y la orientación a objetos.  III.3 Casos de uso.  III.4 Arquitectura de software CONTENIDO PROGRAMATICO
  • 8.  Utilizaremos Pseudocodigo, colección de palabra reservadas que se usaran como comandos.  Diagramas de Flujo, para representar gráficamente una solución.  Libros de la Biblioteca de UPES.  Libros en Formato Digital  Cualquier otro recurso que esta a disposición de los alumnos.  Campus Virtual para colocar clases. RECURSOS TECNOLOGICOS
  • 10. PROGRAMACION ORIENTADA A OBJETOS  Los problemas suelen tener varias soluciones posibles.  En programación existen diversas metodologías que nos ayudan a enfrentar un problema.  Cada metodología tiene diversos lenguajes que las soportan.  Algunos lenguajes soportan varias metodologías. Metodología Lenguaje Estructurada Fortran, C, Pascal, Basic Orientada a objetos (OOP) C++, Java, Smalltalk Orientada a eventos VisualBasic
  • 11. Programación Orientada a Objetos Definición: La Programación Orientada a Objetos (OOP) es un método de programación en el cual los programas se organizan en colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son, todas ellas, miembros de una jerarquía de clases unidas mediante relaciones de herencia. Comentarios:  Usamos objetos en lugar de algoritmos como bloque fundamental  Cada objeto es una instancia de una clase  Las clases están relacionadas entre sí por relaciones tan complejas como la herencia
  • 12. Ventajas de la POO  Proximidad de los conceptos modelados respecto a objetos del mundo real  Facilita la reutilización de código  Y por tanto el mantenimiento del mismo  Se pueden usar conceptos comunes durante las fases de análisis, diseño e implementación  Disipa las barreras entre el qué y el cómo
  • 13. Desventajas de la POO  Mayor complejidad a la hora de entender el flujo de datos  Pérdida de linealidad  Requiere de un lenguaje de modelización de problemas más elaborado:  Unified Modelling Language (UML)  Representaciones gráficas más complicadas
  • 14. Conceptos de la OOP Conceptos básicos  Objeto  Clase Características de la OOP  Abstracción:  Encapsulamiento:  Modularidad:  Jerarquía Otros conceptos OOP  Tipos  Persistencia Tipos de relaciones  Asociación  Herencia  Agregación  Instanciación Representaciones gráficas  Diagramas estáticos (de clases, de objetos...)  Diagramas dinámicos (de interacción...)
  • 15. Objeto y Clase Un objeto es algo de lo que hablamos y que podemos manipular  Existen en el mundo real (o en nuestro entendimiento del mismo) Una clase describe los objetos del mismo tipo  Todos los objetos son instancias de una clase  Describe las propiedades y el comportamiento de un tipo de objetos Clase Atributos Operaciones Objeto:Clase Atributo1=valor Atributo2=valor ...
  • 16. Conceptos OOP: Abstracción  Nos permite trabajar con la complejidad del mundo real  Resaltando los aspectos relevantes de los objetos de una clase  Ocultando los detalles particulares de cada objeto  Separaremos el comportamiento de la implementación  Es más importante saber qué se hace en lugar de cómo se hace: Un sensor de temperatura  Se define porque...  mide la temperatura  nos muestra su valor  se puede calibrar...  No sabemos... (no nos importa)  cómo mide la temperatura  de qué está hecho  cómo se calibra
  • 17. Conceptos OOP: Abstracción  La abstracción no es única: Un coche puede ser...  Una cosa con ruedas, motor, volante y pedales (conductor)  Algo capaz de transportar personas (taxista)  Una caja que se mueve (simulador de tráfico)  Conjunto de piezas (fabricante)
  • 18. Conceptos OOP: Encapsulamiento  Ninguna parte de un sistema complejo debe depender de los detalles internos de otra.  Complementa a la abstracción  Se consigue:  Separando la interfaz de su implementación  Ocultando la información interna de un objeto  Escondiendo la estructura e implementación de los métodos (algoritmos).  Exponiendo solo la forma de interactuar con el objeto
  • 19. Conceptos OOP: Encapsulamiento Vemos que se puede...  Construir con:  4 puntos (y restricciones)  1 punto y 2 vectores  1 punto, 1 vector, 1 ángulo y 1 lado  Transformaciones:  Escalado  Rotación  Desplazamiento  Dibujar No vemos...  Como está representado internamente  4 puntos?  1 punto y 2 vectores?  ...  Como se modifica su escala  Guardando el factor?  Escalando en el momento?  Idem para rotación, traslación, etc... Ejemplo: Un paralelogramo
  • 20. Conceptos OOP: Modularidad  Consiste en separar el sistema en bloques poco ligados entre sí: módulos.  Organización del código  Es una especie de encapsulamiento de más alto nivel.  El C++ no lo impone aunque lo soporta (namespace)  El Java es más formal (packages)  Difícil pero muy importante en sistemas grandes.  Suele aplicarse refinando el sistema en sucesivas iteraciones  Cada módulo debe definir una interfaz clara
  • 21. Conceptos POO: Jerarquía  Es una clasificación u ordenamiento de las abstracciones  Hay dos jerarquías fundamentales:  Estructura de clases:  Jerarquía “es un/a”  Relaciones de herencia  Estructura de objetos:  Jerarquía “parte de”  Relaciones de agregación  Está implementada de manera genérica en la estructura de clases
  • 22. Conceptos OOP: Persistencia  Propiedad de un objeto de trascender en el tiempo y en el espacio a su creador (programa que lo generó)  No se trata de almacenar sólo el estado de un objeto sino toda la clase (incluido su comportamiento)  No está directamente soportado por el C++  Existen librerías y sistemas completos (OODBMS) que facilitan la tarea  Frameworks (entornos) como ROOT lo soportan parcialmente (reflex)  El concepto de serialización del Java está directamente relacionado con la persistencia
  • 23. Relaciones  Están presentes en cualquier sistema  Definen como se producen los intercambios de información y datos  También ayudan a comprender las propiedades de unas clases a partir de las propiedades de otras  Existen 4 tipos de relaciones:  Asociación  Herencia  Agregación  Instanciación
  • 25.
  • 26. ¿Qué es JAVA? Es un lenguaje de programación para añadir interactividad, dinamismo entre otras funcionalidades al contenido de una pagina web.
  • 27. ¿Qué puede hacer JAVA?  Puede hacer un APPLET , que es un programa mas pequeño dentro de un programa, que es un programa del navegador por ejemplo
  • 28. El lenguaje de programación JAVA fue desarrollado para tener las siguientes características :  Orientado a objetos. Busca crear objetos o piezas de código autónomo, que pueda interactuar con otros objetos para resolver un problema.  Distribuido. Proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos.  Simple. Posee una curva de aprendizaje muy rápida.  Multihilo. Soporta la sincronización de múltiples hilos de ejecución a nivel de lenguaje.  Seguro. Se implementaron barreras de seguridad en el lenguaje y en el sistema de ejecución en tiempo real.  Independiente de la plataforma. No requiere que sus programas sean compilados ni ligados en cada máquina.
  • 29.  En diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde". Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park, California.
  • 30. JAVA Y SUS INICIOS  JAVA surge en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. No fue creado originalmente para la red internet. Sun Microsysteam comenzó a desarrollarlo con el objetivo de crear un lenguaje independiente de la plataforma y del sistema operativo. Para el desarrollo de electrónica de consumo (dispositivos electrónicos inteligentes , como televisores, videos, televisores , equipos de música, etc)
  • 31. Sucesos importantes  1992 El equipo ya había desarrollado un sistema en un prototipo llamado Star7 (*7).  1995 JAVA se introduce como lenguaje de programación para computadoras.  incorporación de un intérprete Java en la versión 2.0 del programa Netscape Navigator, produciendo una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997, mejorando sustancialmente la primera versión del lenguaje.  Java 1.2, más tarde rebautizado como Java 2, nació a finales de 1998. Java incorpora en el propio lenguaje muchos aspectos que en cualquier otro lenguaje son extensiones propiedad de empresas de software o fabricantes de ordenadores (threads, ejecución remota, componentes, seguridad, acceso a bases de datos, etc.)
  • 32.  Dispositivo e interface del prototipo denominado *7(star seven) con el cual se hizo una demostración de la plataforma JAVA (aún no denominada con este nombre).
  • 33. Tipos primitivos Sin métodos; no son objetos, no necesitan una invocación para ser creados
  • 34. Tipos de objeto  Con métodos , necesitan una invocación para ser creados
  • 35.  Todas las instrucciones de código en Java deben terminar con un signo punto y coma ” ;  Todas las variables al igual que en otros lenguajes deben iniciar con una letra mas no con un numero o carácter especial, pueden iniciar con una letra y posteriormente usar números para nombrarlas.
  • 36.  -Otra regla importante es que para llevar una estructura correcta, todo programa en Java debe tener mínimo una clase, las cuales deben tener métodos. Las clases se crean de la siguiente manera: public class Nombredeclase /*aqui se declara una clase, nótese que comienza con mayúsculas la cual es la forma correcta de nombrar una clase*/ { public static void main(String args[ ]){}/* este es el metodo principal de la clase, dentro de este se escriben instrucciones*/ }
  • 37. DUKE, LA MASCOTA DE JAVA Duke es la Mascota Oficial de Java. Fue creado en le año de 1992, para aparecer en un dispositivo llamado *7 (Star Seven), creado por un grupo secreto de programadores de Sun Microsystem, llamado The Green Project. Duke era "el agente de Software", era el que "hacia" las cosas que el usuario pedía por medio de la pantalla animada. Podía moverse e interactuar con toda la interfaz, incluso tenia un maletín para llevar las cosas importantes.