0% encontró este documento útil (0 votos)
222 vistas98 páginas

Programación Orientada a Objetos en Java

Este documento presenta los contenidos y objetivos de un curso de Programación de Computación III. El curso se enfoca en los fundamentos de la programación orientada a objetos y su aplicación en interfaces de sistemas de control, computación gráfica y tiempo real. El curso cubre temas como tipos de datos, jerarquías, estructuras de datos, gráficos 2D, eventos, librerías Java y procesamiento 3D. Los estudiantes aprenderán a modelar soluciones mediante programación orientada a objetos y desarrollarán un proyecto mecat

Cargado por

Daniel Roberto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
222 vistas98 páginas

Programación Orientada a Objetos en Java

Este documento presenta los contenidos y objetivos de un curso de Programación de Computación III. El curso se enfoca en los fundamentos de la programación orientada a objetos y su aplicación en interfaces de sistemas de control, computación gráfica y tiempo real. El curso cubre temas como tipos de datos, jerarquías, estructuras de datos, gráficos 2D, eventos, librerías Java y procesamiento 3D. Los estudiantes aprenderán a modelar soluciones mediante programación orientada a objetos y desarrollarán un proyecto mecat

Cargado por

Daniel Roberto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación de computación III

Ing. Victor Daniel Angulo Morales MsC

Universidad Militar Nueva Granada.


Facultad de Ingeniería.

Ingeniería Mecatrónica
2020
Competencia General
• Las competencias necesarias para manejar los
fundamentos de la programación orientada a
objetos en aplicaciones concretas de interfaces de
sistemas de control, el manejo de computación
gráfica y en tiempo real.

2
Competencias específicas
• Desarrolla un aplicativo para dar solución a un problema relacionado con la vida real utilizando programación
estructurada y programación orientada a objetos
• Reconoce y maneja la sintaxis de un lenguaje de programación
• Entiende los conceptos necesarios para el manejo de Estructura de datos
• Modela soluciones mediante la aplicación de los conceptos de la programación orientada a objetos
• Reconoce los conceptos básicos de gráficos bidimensionales.
• Propone alternativas de solución a un problema
• Indica las instrucciones básicas para la elaboración de un programa
• Expresa inquietudes con respecto a aspectos semánticos y sintácticos del lenguaje
• Detecta y corrige los errores de lógica y sintaxis obtenidos al depurar un programa
• Formula, argumenta y da soluciones para la creación de un aplicativo orientado a objetos
• Manifiesta interés en aprender de forma autónoma
• Desarrolla habilidades para buscar, procesar y analizar información procedente de diferentes fuentes

3
Habilidades
• Analizar y explicar el comportamiento de programas
estructurados.
• Analizar y explicar el comportamiento de programas
de acuerdo con el paradigma de la programación
orientada a objetos.
• Crear algoritmos para resolver problemas.
• El diseño de programas utilizando Java.
4
Contenidos Generales
1. Introducción del curso
2. Programación Orientada a objetos
3. Tipos de datos
4. Jerarquias
5. Parcial

5
Contenidos Generales II
6. Estructura de datos
7. Listas, pilas, colas y arboles
8. Gráficos 2D
9. Eventos en geometrías
10. Librerias Java
11. Parcial II

6
Contenidos Generales III
12. Procesos de manejo de CAD
13. Espacio 3D
14. Librería Java 3D
15. Librerías de manejo de comunicación datos RxTx
16. Arduino-motores-Java

7
Evaluación
• Primer corte (30%): Quices(20%) – Talleres(30%) –
Parcial(50%)
• Segundo corte (30%): Quices(20%) – Talleres(30%) –
Parcial(50%)
• Tercer corte (40%): Quices(10%) – Talleres(30%) – Proyecto
Final(60%)

8
Proyecto Mecatrónico
• Grupos: 3 estudiantes
• Documentación
• Implementación mecatrónica
• Implementación software

9
Material complementario
• Aula Virtual
• Bibliografía

10
Lecturas recomendadas I
• Object-Oriented Analysis and Design
with Applications. Third Edition.
Addison-Wesley (2007). Booch G. et al.
• Es un libro donde se sientan las bases de la tecnología de objetos, así
como los conceptos metodológicos para hacer análisis y diseño
orientado a objetos. El libro incide más en el diseño que en el análisis.

11
Lecturas recomendadas II
• UML Distilled: A Brief Guide to the
Standard Object Modeling Language
(3rd Edition). Addison-Wesley (2003).
Martín Fowler.
• Es un libro para principiantes en UML. Trae un resumen breve y
escueto de la notación UML. Es un libro práctico para entender
rápidamente la notación. Existe una versión en castellano.

12
Lecturas recomendadas III
• The Unified Modeling Language User
Guide. 2nd Edition. Grady Booch,
James Rumbaugh and Ivar Jacobson.
Addison-Wesley (2005).
• Es un libro para ya iniciados en UML. Es un buen complemento para
“UML distilled”. Profundiza más en los distintos diagramas.

13
Herramientas
Integrated Development Environment (IDE)
• https://www.oracle.com/technetwork/es/java/java
se/downloads/jdk-netbeans-jsp-3413139-esa.html

14
Herramientas
UML
• GIMP
• Visio
• Enterprise Architect
• Otros

15
Introducción - Repaso
• Algoritmo, tipos de datos, variables, constantes.

16
Introducción - Repaso

17
Introducción - Repaso
• Semántica y sintaxis.

18
Introducción - Repaso

19
Introducción - Repaso

20
Introducción - Repaso

21
Introducción - Repaso

22
Introducción – Repaso
Bucles
• For
• While
• Do-While

23
Introducción – Repaso
Funciones

24
Introducción – Repaso
Taller programación
1. Hacer un programa que imprima el nombre y la edad de una persona tomando los datos de variables
2. Hacer un programa que imprima el nombre y la edad de una persona tomando los datos de teclado
3. Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla el mayor de ellos.
4. Realizar un programa que lea por teclado dos números, si el primero es mayor al segundo informar su suma y diferencia, en
caso contrario informar el producto y la división del primero respecto al segundo.
5. Hacer un programa que pida por teclado tres notas de un alumno (1-10), calcule el promedio e imprima alguno de estos
mensajes
Si el promedio es >=7 mostrar "Aprobó".
Si el promedio es >=4 y <7 mostrar "Regular".
Si el promedio es <4 mostrar "Reprobó".
6. Hacer un programa que permita cargar un número entero positivo de hasta tres cifras y muestre un mensaje indicando si tiene
1, 2, o 3 cifras. Mostrar un mensaje de error si el número de cifras es mayor.
7. Realizar un programa que imprima en pantalla los números del 1 al 100
8. Desarrollar un programa que permita la carga de 10 valores por teclado y nos muestre posteriormente la suma de los valores
ingresados y su promedio(utilizar for).
9. Desarrollar un programa que solicite la carga de 10 números e imprima la suma de los últimos 5 valores ingresados
10. Hacer un programa que permita ingresar un valor n y nos muestre la tabla de multiplicar

25
JAVA
Lenguaje de programación multiplataforma de
propósito general orientado a objetos desarrollado
por Sun Microsystems. Un programa Java (.java) se
compila y se obtiene un código llamado bytecode
(.class), el cual es interpretado por la Java Virtual
Machine (JVM), posibilitando que un mismo código
fuente pueda ser ejecutado en múltiples plataformas.

26
El método main
• Es un estándar para iniciar la ejecución de cualquier
programa Java. Es el punto principal de ejecución, al
crear un Java Application este se genera por
defecto.

27
Clase Scanner

28
Clase BufferedReader y
InputStreamReader

29
IF

30
while

31
Do - while

32
for

33
Switch Case

34
AOO – DOO - POO

35
AOO – DOO - POO

36
AOO – DOO - POO

37
Objeto – Clase - Abstracción

38
Objeto - Clase

39
Objeto - Clase

40
Objeto - Clase
Una clase es un conjunto de objetos que comparten
una estructura común y un comportamiento común
[Booch 2007]

• Los objetos en el sistema se deben de tratar como


seres vivos que nacen(constructores), viven (están
activos), duermen (están pasivos), se reproducen
(copia de objetos), y mueren por eutanasia
(destructores) o por inanición (recolector de
basura)
• En las clases se definen las propiedades y
operaciones comunes de los objetos. Los nombres
de las clases son nombres comunes.
• Los nombres de los métodos son verbos, pues
especifican las acciones que realizan los objetos
41
Diagrama de Clases

42
Diagrama de Clases

43
Diagrama de Clases

44
Diagrama de Clases

45
Declaración de atributos

46
Declaración de constructores

47
Declaración de métodos selectores

48
Declaración de métodos selectores

49
Declaración de método toString

50
Prueba unitaria

51
Diagrama de Clases UML I

52
Clase Vehiculo

53
Convenciones
• Los nombres de los paquetes se escriben en minúsculas:
package tutoria.clases;
• Los nombres de las clases deben empezar por
mayúsculas: Perro, Pato
• Los métodos deben ser verbos escritos con la palabra
inicial en minúscula: balanceCuenta()
• Las variables deben escribirse con la inicial en minúscula
pero con iniciales de otras palabras en mayúsculas para
indicar separación: pasajeroFrecuente

54
Conclusiones diseño de clases
• Una clase es un tipo definido por el usuario, que permite crear objetos. Las clases tienen miembros formados por campos y
métodos.
• Los campos miembro suelen declararse protegidos (protected), salvo en casos especiales que se declaran privados (privated)
• Los métodos públicos (public) permiten acceder a los campos miembro desde el exterior de la clase
• Los métodos selectores no modifican el valor de los campos miembro. Se suelen denominar:
• – ver...campoMiembro( ) (en castellano). ¡ ver, pero no tocar !
• – get...campoMiembro( ) (en inglés).
• – Suele declararse un método por cada tipo de campo miembro accesible
• – Son una garantía para que no se modifiquen accidentalmente los campos miembro
• Los métodos modificadores permiten modificar los campos miembro de la clase. Se suelen denominar
• – pon...campoMiembro( ) (en castellano).
• – set...campoMiembro( ) (en inglés).
• – Suele declararse un método por cada tipo de campo miembro accesible
• – Establecen el camino de cómo se modifican los campos miembro y realizan las comprobaciones necesarias.
• Los constructores crean los objetos
• – Pueden estar sobrecargados (overload). Se pueden definir varios métodos con el mismo identificador pero que difieran en
número o tipo de parámetros.
• – Se aconseja poner siempre constructores, para saber donde y cuando se crean los objetos.
• – Se puede poner un mensaje que indique cuando y donde se están construyendo los objetos. Muy aconsejable para depurar
programas.

55
Tipos de datos (Primitivos)

Deitel, P. J., & Deitel, H. M. (2008). Java: como


programar. Pearson Educación,.
56
Clase Math

57
Sentencias de control
Es común en un programa que las instrucciones se ejecuten una después de otra, en el orden
en que están escritas. Este proceso se conoce como ejecución secuencial. Varias
instrucciones en Java, permiten al programador especificar que la siguiente instrucción a
ejecutarse tal vez no sea la siguiente en la secuencia. Esto se conoce como transferencia de
control.
El término programación estructurada se hizo casi un sinónimo de la “eliminación del
goto”. No fue sino hasta la década de 1970 cuando los programadores comenzaron a
tomar en serio la programación estructurada.

58
Diagrama de actividades

https://www.omg.org/spec/UML/2.5.1/PDF

59
Diagrama de actividades
Notación - Básicos
• Inicio:

• Final:

• Decisión:

• Acción:

60
Diagrama de actividades
Notación - Básicos
• Merge (Fusión):

• Notas:

61
Diagrama de actividades
Instrucción de selección IF

62
Diagrama de actividades
Instrucción de repetición While

63
Diagrama de actividades
Instrucción de repetición For

64
Diagrama de actividades
Instrucción de repetición Do..While

65
Diagrama de actividades
Instrucción de selección Switch..Case

66
Operadores Lógicos AND OR

Operador && (AND condicional) Operador || (OR condicional)

67
Diagrama de actividades
Formas de control

Secuencia:

68
Diagrama de actividades
Formas de Control - Selección

69
Diagrama de actividades
Formas de Control - Repetición

70
Diagrama de actividades

71
Arreglos - Java

72
Arreglos - Java

73
Arreglos - Java

74
Arreglos - Java

75
Arreglos - Java

76
Arreglos - Java

77
Taller
• Identificar una lista de objetos (10 Objetos)
• De la lista de objetos obtener una lista de clases utilizando la
abstracción y las características comunes de los objetos (8
Clases)
• De la lista de clases elegir una clase que sea representativa
• Diseñar la clase en UML (Diagrama de Clases)
• Implementar la clase en Java
• Realizar el Diagrama de Actividades UML
• Hacer pruebas unitarias de la clase con objetos.

78
Quiz
• Realice el diagrama de actividades de:
• Leer un entero, que corresponde a la edad de una
persona (en días) e imprimirlo en años, meses y días,
seguido del respectivo mensaje “ano(s)”, “mes(es)”,
“dia(s)”.
– Nota: Para facilitar el cálculo, considere al año con 365
días y al mes con 30. En los casos de prueba nunca habrá
una situación que permita 12 meses y algunos días, como
360, 363 ó 364.
79
Jerarquía
En programación orientada a objetos, estas
abstracciones pueden ordenarse y clasificarse, a
esto se le conoce como Jerarquia.

80
Jerarquía - Generalización o Herencia
Extensión (en Java)
La herencia o generalización es una relación entre
una clase general (llamada superclase o padre) y una
clase más específica (llamada hija o subclase). La
clase hija hereda todos los atributos y operaciones de
la clase padre.

81
Jerarquía - Generalización o Herencia

82
Jerarquía - Generalización o Herencia

83
Jerarquía - Generalización o Herencia

84
Jerarquía - Generalización o Herencia

85
Jerarquía - Generalización o Herencia

86
Polimorfismo
Es un mecanismo que permite a un método realizar
distintas acciones al ser aplicado sobre distintos tipos
de objetos que son instancias de una misma jerarquía
de clases

•Polimorfismo significa “muchas formas”


•No se debe confundir polimorfismo con sobrecarga.

87
Polimorfismo
Clase Vehiculo

Clase Carro
Clase Camion

88
Polimorfismo

89
Clase Abstracta
•Las clases abstractas son clases que contienen uno
más métodos abstractos
•Un método abstracto es un método declarado pero
no implementado. La implementación se hace en una
clase derivada

90
Clase Abstracta

91
Clase Abstracta

92
Clase Abstracta

93
Clase Abstracta

94
Interfaz

95
Agregación y composición
• La agregación y la composición plantean el problema de la propiedad, vida y
relaciones entre los componentes agregados y la clase contenedora que los contiene.

• Las relaciones de agregación y composición son jerarquías “parte de” o “tiene un”

• La agregación no liga las vidas de la clase contenedora y de las partes que la


componen.
• La composición es una forma de agregación con una fuerte relación de
pertenencia y vidas coincidentes de las partes con el todo.

96
Agregación y composición

97
Taller

98

También podría gustarte