0% encontró este documento útil (0 votos)
518 vistas152 páginas

Módulo de Fundamentos de Programación-2022

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 o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
518 vistas152 páginas

Módulo de Fundamentos de Programación-2022

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 o lee en línea desde Scribd
Fundamentos de Programacion Programa de la Facultad de Inger MODULO DE APRENDIZAJE - PRESENTACION D tabs we gg Fundamentos de programacién © Corporacién Universitaria Remington Medelin, Colombia Derechos Reservades ©: Primera edicién 2022 1022 Fundamentos de programacién Jost Antonio Polo Facultad de Ingenierias Comité académico Jorge Mauricio Sepdlveda Castafio Decano facuitac ce ingenierias, David Ernesto Gonzélez Parra Ditector de educacion » Distancia y Virtua doonzalez@[Link] Francisco Javier Alvarez Gémez CCoordinador de Virtualidad EAD-V falvarez@[Link] Edicién y Montaje Direeeién de Eduenciin a Distancia y Virtua Equipo de diseio gréico sev [Link] vitua!@[Link] Une Reducclin dot Estudio de Ly Medios Auciovisucles Es Video de presentacién del curso Derechos reservados: El médulo de estudio del curso de Fundamentos de programacién es propiedad de le Corporacién Universitaria Remington; las imSgenes fueron tomadas de ciferentes fuentes que se relacionan en los derechos de autor y las citas en ia bibiografi. El contenido de! médulo esta protegido por las leyes de erechos de autor que rigen al pals. Este materal tiene fines feducatwos y no puede usarse con. propésitos econémicos 0 ‘comerciales. E| autor(es) cerbfice (de manera verbal o escrita) No hhaber incurrido en fraude cientiico, plagioo vicios de autoria; en caso Ccontrario eximié de toda responsabilidad a la Corporacién Universitaria Remington y se deciar® coma e' Gnico responsable. @PSE Esta obra es pubilcaca bao a licencia Creative Commors. Recorocimiento-No Comercial-Comparti Igual 2.5 Colombia Powered by TABLA DE CONTENIDO Pag, 1 PROPOSITO GENERAL. 1.1 PROBLEMA PARA SOLUCIONAR 0 PREGUNTA PROBLEMATIZADORA 12 omenivos sen 121 General 10 12.2 Especiticas 10 1.3 UNIDADES.. 2. UNIDAD 1, FUNDAMENTOS DE PROGRAMACION. 21 oBiETvos 241 Genera. 212 Especifcos uu 2.2. RELACION DE CONCEPTOS.. 2.3. PRESENTACION DELA UNIDAD 2.4 DESARROLLO TEMATICO. 2.4.1 Tema i. La comprension del problema. 14 2.4.2 Tema 2. Paradigmas de programacién 7 2.43 Tema 3. Configuracién del ambiente de trabajo. 23 2.4.4 Tema. Control de versiones, 36 245 Temas. Estructura del cédigo. 40 25 RECURSOS.. 7 25.1 Documentacion Referenciada. 25.2 Material adicional 2.6 EJERCICIOS DE PROFUNDIZACION 2.7 PISTAS DE APRENDIZAJE 3. UNIDAD 2, PROGRAMACION ORIENTADA A OBIETOS. 3.1 OBJETIVOS.... 3.11 General 3.412 Especiicos 3.2. RELACION DE CONCEPTOs. 3.3. PRESENTACION DELA UNIDAD 3.4 DESARROLLO TEMATICO.... . 3.4.1 Tema 1. Elementos de la programacin orientada a objetos 3.42 [Link] de la POO. 3.43 Tema 3, Cases abstractas e interfaces Powered by 3.44 Tema4 Excepciones... oe 3.5 RECURSOS. a i 35.1 Documentacion Referenciads. 102 35.2 Material adicional i 102 3.6 EJERCICIOS DE PROFUNDIZACION 3.7 PISTAS DE APRENDIZAJE 4 UNIDAD 3, ESTRUCTURAS DE DATOS Y COLECCIONES... 4.1 OBIETIVOS... 4.11 General. : 41.2 Especifcos... 108 4.2. RELACION DE CONCEPTOS.. 4.3. PRESENTACION DELA UNIDAD 4.4 DESARROLLO TEMATICO. 2 — 444.1 Tema 1 Estructuras de datos abstractas ~ TAD. an 442 Tema2. Genérico 443 Tema3, Colecciones. ns 44.4 Tema 4, Manipulacion de archives... 4.5 RECURSOS. — . se 187 45.1 Documentacién Referenciads. 107 45.2 Material adicional o 148 4.6 EJERCICIOS DE PROFUNDIZACION 4.7 PISTAS DE APRENDIZALE.. 5 BIBLIOGRAFIA. 5.1 BASES DE DATOS INSTITUCIONALES. 5.2 CIBERGRAFIA nen a x 152 7 Tablas Tabla 1 Pasos para instalacién del JDK, Unidad 1. Autoria del autor 25 Tabla 2 Descripcién grafica del entorno del sistema Path, Unidad 1. Autoria del autor. Tabla 3 Descripcién de la linea de consola (emd), Unidad 1. Autoria del autor. a Tabla 4 Descripcién del registro de compilacion y ejecucién en cmd, Unidad 1. Autoria del autor. 129 Tabla 5 Descripcién de algunos Editores, Unidad 1. Autoria.. Tabla 6 Descarga y uso del editor Eclipse, Unidad 1. Autoria del autor ....snsnniinnnsesenesnsene 30 Powered by Tabla 7 uso del editor Eclipse para java, Unidad 1. Autoria del autor. 31 Tabla 8 Estructura de una aplicacién desde Eclipse, Unidad 1. Autoria del autor 32 Tabla 9 Clases empaquetadas en [Link], Unidad 1. Autoria del autor... 38 Tabla 10 Estructura basica de una aplicacién, Unidad 1. Autoria del autor. A? Tabla 11 Separadores o delimitadores, de una aplicacién, Unidad 1. Autoria del autor. 3 Tabla 12 Palabras reservadas empleadas en java, Unidad 1. Autoria. el autor. 46 Tabla 13 Operadores en java, Unidad 1. autoria. 51 Tabla 14 Algunos tipos de datos y su capacidad de memorias, Unidad 1. Autorfa del autor. nse. 52 Tabla 15 Asignacién en variables tipo nativa, declaracién y asignacién, Unidad 1, Autoria del autor. 53 Tabla 16 Sintaxis declaracién y asignacién de variables tipo clase, Unidad 1. Autoria del autor. ...... 55 Tabla 17 Algunos datos tipo clase, Unidad 1. autoria. autor... 57 ‘Tabla 18 Caracteristicas de algunas variabless, Unidad 1, autoria. autor... 201 57 Tabla 19 Estructuras de control condicional, Unidad 1 Autoria 60 Tabla 20 Estructura de control ciclico Unidad 1 Autoria . Tabla 21 estructura de un proyecto y una clase en java, Unidad 1. Autoria del autor. 64 Tabla 22 Estructura de un métado, Unidad 1. Autoria del autor. 65 Tabla 23 Profundizar en manejo de mensajes y captura de datos, Unidad 1, autoria, autor... 66 Tabla 24 Algunos Componentes de la Programacién O a O. (implemetacién de la clase) Unidad 2. Autori TA Tabla 25 caracteristicas fundamentals de la Programcién Orientada a Objeto. unidad 2, Autoria del autor... 76 Tabla 26 Caracteristicas de los elementos secundario de POO unidad 2. Autoria del autor snes 77 Tabla 27 Los métodos get y set unidad 2. Autoria 79 Tabla 28 Descripcién del agrupador de clases de java unidad 2. Autoria del autor... 80 Tabla 29 Algunos tipos de paquetes empleados en java y sus caracteristicas unidad 2. Autoria del autor. ene 82 86 Tabla 30 Clase y subclase abstracta (implementaci6n) unidad 2. Autoria del autor... Powered by CamScanner Tabla 31 Modelo e implemetacién de una interfaz unidad 2. Autoria del autor. a9 Tabla 32 Descripcién de la clase Scanner (para lectura desde el sistema) unidad 2. Autoria del autor.92 Tabla 33 Descripcién del cuadro de dialogo JOptionPane, unidad 2. Autoria del autor. 93 Tabla 34 Descripcion de las clases para capturar InputSteramReader y BufferReader, unidad 2. Autoria del autor. 1 96 Tabla 35 Componentes y contenedores en java del paquete awt o swing unidad 2. Autoria del autor. 98 Tabla 36 Caracteristicas de algunos tipos de excepciones unidad 2. Autoria del autor. 199 Tabla 37 Administracion de algunas excepciones Unidad 2. Autoria del autor. 100 Tabla 38 Implementacién de la excepcidn try/Catchs Unidad 2. Autoria ..c..sesinnnnnneensee 101 Tabla 39 profundizacién en el manejo de formulario Unidad 2. Autoria del autor ....nssnnsensnnee 104 Tabla 40 profundizaci6n en implementacién con excepcién sin captura unidad 2. Autoria 0... 105 Tabla 41 Estructura de la clase Arreglo (creacién, definicin y sus elementos), Unidad 3. Autoria.... 116 Tabla 42 Descripcidn de la técnica para generalizacién, Representacién Unidad 3. Autoria 119 Tabla 43 Implemetacién de la clase computador y tablets sin parametrizacién Unidad 3 Autoria.... 120 Tabla 44 Descripcién de algunos tipos de datos parametrizados Unidad 3 Autoria...... 121 Tabla 45 Algunas desventajas de la técnica basica de la Genericidad Unidad 3 Autoria... 122 Tabla 46 Implemetacién de la técnica clase Universal con métodos genericos Unidad 3 Autoria ..... 123 Tabla 47 Implementacién de la técnica generalizacién con objeto en una clase Pila Unidad 3 Autoria 124 Tabla 48 Implementacién tecnica parametrizada en la clase Pila y computadorr Unidad 3 Autoria . 125 Tabla 49 Algunos tipos de colecciones Unidad 3 Autoria /. 128 Tabla 50 Métodos de colecciones y generalizaciones Unidad 3 Autori 129 Tabla 51 Implentacién de colecciones Unidad 3 Autoria..... 130 Tabla S2 Recorrido de Colecciones Definicién e implementacién Unidad 3 Autoria 131 Tabla 53 Implementacién de tipos de datos clase Unidad 3 Autoria...... 132 Tabla 54 Implemetacién con archivo modo apertuara escritura Unidad 3 Autoria . 138 Powered by CamScanner Tabla 55 Implemetacién archivo secuencial modo escritura, lectura y principal Unidad 3 Autoria... 141 Tabla S6 Implementacién archivo binario clase principal Unidad 3 Autori 143 Tabla 57 Descripcién del modo de acceso del archivo Unidad 3 Autoria. 146 Tabla 58 descripcién del modo de acceso lectura dl archivo Unidad 3 Autoria 147 Tabla 59 Profundizacién de generalizacién Unidad 3 Autoria .. 148 Tabla 60 profundizacién para manejo de archivo Binario Unidad 3 Autoria 150 ILUSTRACIONES llustracién 1 Mapa conceptual de las Unidades autoria del autor... geld llustracién 2 Mapa Relacién de conceptos Unidad 1. Autoria del autor... 12 llustracién 3 Presentacién de la Unidad 1 autoria..... 4 llustracién 4 Sistemas de informacion unidad 1. Autoria is llustracién 5 Deficiencias en el sitema unidad 1 autoria.. AAS. llustracién 6 Comprensién del problema unidad 1 autoria 16 llustracién 7 Clasificacioén del Paradigma de programacién unidad 1 autoria llustracién 8 Tipos de paradigmas de programacién Unidad 1. Autoria: «0. 18 llustracién 9 Paradigma Imperativo Unidad 1. Autoria del autor. .. 19 llustracién 10 Paradigma estructural Unidad 1. Autoria: 19 llustracién 11 Paradigma declarativo Unidad 1. Autoria: 20 llustracién 12 Paradigma funcional Unidad 1. Autori 2. llustracién 13 Paradigma légico Unidad 1. Autori llustracién 14 Paradigma Orientado a Objetos Unidad 1. Autoria, llustracién 15 Paradigma Orientado a eventos Unidad 1. Aut os) llustracién 16 Paradigma orientado a aspectos Unidad 1. Autoria $28 llustracién 17 Ambiente de trabajo integrado Unidad 1. Autoria:.. 2 llustracién 18 IDE, algunos componentes y contenedores (etiquetas, texto y botén) Unidad 1. Autorfa: aULOT vse BE Powered by CamSeanner llustracién 19 IDE de Eclipse Unidad 1. Autoria: 35 llustracién 20 IDE de Netbeans Unidad 1. Autoria: 1 36 llustracién 21 Sistemas de control de versiones, Unidad 1. Autoria. 1 38 llustracin 22 CVS y subversiones sun Unidad 1. Autoria 40 llustracién 23 Pista para fundamentos de programaciénUnidad 1. Autoria:. 67 llustracién 24 Relacién de conceptos (mapa conceptual) Unidad 2. Autoria del autor. 68 llustracin 25 Presentacidn de la unidad 2 autoria 70 llustracién 26 Descripcién gréfica de Programacién Orientada a Objetos Unidad 2. AutoFla: nse 70 llustracién 27 Programacién Orientada aObjetos en java Unidad 2. Autoria: ail llustracién 28 Componentes de la Programacién Orientada a Objetos en java Unidad 2. Autoria:..... 71 llustracién 29 Modelo UML de una clase Articulo unidad 2. Autoria del autor. 82 llustracién 30 implementacién del modelo de una clase en el editor Eclipse unidad 2. Autoria del autor. arn llustracién 31 Clase abstracta e Interfaz unidad 2. Autoria:.. 86 llustracién 32 Pista de aprendizaje de la unidad 2 autoria del Autor: .. 106 llustracién 33 Relacién de conceptos (mapa conceptual) Unidad 3, Autoria: Autor: 109 llustracién 34 presentacién de la unidad 3. 110 llustracién 35Representacién de un arreglo en memoria Unidad 3, Autoria: 116 llustracién 36 Contenedor de generalizacién Unidad 3 Autori 120 llustracién 37 jerarquia de coleccién de datos Unidad 3 Autoria: del autor.. 126 llustracién 38 Jerarquia de colecciones de datos Unidad 3 AUtOTIa: ....unnnnnnnnnennnene DT llustracién 39 Streams Flujo de datos Unidad 3 Autorfa 133 llustracién 40 modelo (UML)de clase archivo Unidad 3. 145 llustracién 41 Pista de aprendizaje para Unidad 3 Autoria: 150 9 VIDEOS Video 1 Paradigmas unidad 1 ar Powered by CamScanner Video 2 IDE unidad 1 35 Video 3 control de versiones unidad 1 Video 4 Programacién Orientada a Objetos unidad 2 02 Video 5 Clase abstracta en java unidad 2... 86 Video 6 Excepciones en java Unidad 2 98 Video 7 TAD unidad 3 m1 Video 8 Estructuras genericas unidad 3... 118 Video 9 Colecciones unidad 3...... 126 Video 10 Archivos unidad 3 133 Powered by CamScanner 1 PROPOSITO GENERAL 1.1 PROBLEMA PARA SOLUCIONAR O PREGUNTA PROBLEMATIZADORA, El estudiante debe emplear los conceptos y herramientas vistas para disefiar aplicaciones de software que permitan solucionar problemas de la vida real realizando un correcto andlisis de requisitos, abstrayendo los elementos del mundo del problema, cumpliendo con buenas précticas y metodologias de desarrollo y entregando un producto con esténdares definidos de calidad. 1.2 OBJETIVOS 1.2.1 General Desarrollar habilidades basicas que permitan gestionar informacién en memoria o archivos con 0 sin formato haciendo uso de estructuras de datos simples y las definidas por el respectivo lenguaje para implementar paradigmas de programacién orientada a objetos. 1.2.2. Especificos ‘+ Comprender los conceptos generales del desarrollo de un producto de software comenzando por entender el problema al cual se le quiere dar una solucién informatica, identificando el paradigma o paradigmas que mejor se acogen ala solucién, haciendo una buena configuracién del ambiente de trabajo y aplicando buenas practicas para el desarrollo de software. * Aplicar los elementos y caracteristicas de la programacién orientadaa objetos en la creacién de productos de software eficientes, robustos y mantenibles en el tiempo. © Utilizar las estructuras de datos primitivos y las estructuras de colecciones definidas en el lenguaje para desarrollar soluciones de software para la gestién de la informacién en memoria, Powered by 1.3 UNIDADES Ilustracién 1 Mapa conceptual de las Unidades autoria del autor. 2 UNIDAD 1. FUNDAMENTOS DE PROGRAMACION 2.1. OBJETIVOS 2.1.1 General Comprender los conceptos generales del desarrollo de un producto de software comenzando por abstraer (comprender) el problema al cual se le quiere dar una solucién informatica, identificando el paradigma o paradigmas que mejor se acogen a la solucién, haciendo una buena configuracién del ambiente de trabajo y aplicando buenas précticas para el desarrollo de software. 2.1.2 Especificos Describir los elementos fundamentales para comprender los lineamientos y el alcance de un problema Describir los conceptos, estilos y procedimientos relacionados por el paradigma de programacién. Comprender los componentes facilitadores propios para el manejo de las herramientas integradas en el desarrollo de un programa, Comprender los elementos presentes en la gestién de configuracién de un desarrollo de software al igual que las diferentes herramientas modificadoras. Describir los conceptos, las estructuras bésicas para la elaboracion del cédigo fuente de un programa. Powered by CamScanner 2.2 RELACION DE CONCEPTOS fonia as ae Odie faced Hustracién 2 Mapa Relacién de conceptos Unidad 1. Autoria del autor. Comprensién del problema: Identificar los componentes de software requeridos para solucionar un problema correctamente. Paradigmas de programacién: Principios 0 modelos establecidos para clasificar los lenguajes de programacién y solucionar problemas por medio del software. Paradigma Imperativo: explica mediante secuencia de instrucci programa a solucionar. nes cual es el funcionamiento del Paradigma Estructurado: utiliza funciones o subprogramas y tres estructuras de control (secuencia, seleccién ¢ iteracién) para solucionar un problema. Paradigma Declarativo (programacién légica): describe el problema y establece lo que se quiere hacer en lugar de como se quiere realizar. (Es lo opuesto al imperativo por que implementa una relacién en lugar de una correspondencia).. Powered by Paradigma Funcional: (es un declarativo) establece que se quiere hacer, mediante la descripcién del problema sin entrar en la solucién mucho menos en repeticiones. Paradigma Légico: (es declarativo) soportado por reglas Idgico-matematicas caracterizando 0 relacionando la informacién (declarando un conjunto de condiciones, proposiciones y afirmaciones) para obtener conclusiones o demostraciones. Paradigma orientado a Eventos: son programas que atienden a sucesos (flujos controlados de una aplicacién) y dependiendo de la ocurrencia realiza una ejecucidn generada por el sistema o provocada por el usuario. Paradigma orientado a Objeto: Organiza los conceptos de clases métodos y abjetos para desarrollar aplicaciones. Paradigma orientado a Aspectos: (Libreria dinémica) permite una modularizacién de obligaciones transversales. Configuracién del ambiente de trabajo (IDE): encargado de manejar varias aplicaciones |lamadas herramientas facilitadoras, para la creacién de aplicaciones de forma més cmoda. Componentes: elementos que facilitan el manejo del IDE como editores de texto, compiladores intérpretes, depuradores, sistemas de disefio e interfaz gréfica entre otros. Interfaz grafica: facilita al usuario la interaccién con algunos procedimientos del programa. Control de versiones: encargada de gestionar los cam de software para evitar el descontrol. 15 generados dindmicamente en el desarrollo Gestién de la configuracién del software: administra las actividades relacionadas con el desarrollo de software y los productos generados. Sistema control de versiones: seguimiento a cada una de las versiones en que se encuentra cada elemento del mantenimiento de software. Estructura del cédigo: permite a los programadores de cualquier otro lenguale leer cédigo sin mucha dificultad Estructura del programa: utiliza una clase con el nombre del programa, el método principal llamado main (), incluye un bloque definido por {) con la o las actividades del programa. Comentarios: delimitador colocados en el cédigo fuente de un programa son ignorados por el compilador 0 el intérprete empleado para facilitar la tarea de los desarrolladores de software. Identificadores: son nombres conformados por una cadena de caracteres que se les coloca a las variables, métodos, clase entre otros, en el cédigo fuente de un programa. Powered by 2.3 PRESENTACION DE LA UNIDAD Definir de una manera clara el problema al cual se pretende darle solucién para poder hacer un correcto anélisis del problema que permitan identificar sus partes, especificar sus requerimientos y determinar el mundo o el alcance de este. Los paradigmas de programacién son estandares adoptados por la ‘comunidad y la industria que permiten resolver un tipo de problema de una manera eficiente y tiene relacién con la forma de seleccionar un determinado lenguaje de programacién y una arquitectura de software a la hora de dar solucién a un problema. Se explicard la mejor forma de configurar el ambiente de trabajo para que la eficiencia a la hora desarrollar la solucién sea dptima. Se darén a conocer conceptos y se experimentaré con entornos de desarrollo integrados, compiladores, depuradores, extensiones para facilitar la edicién del cédigo, sistemas de gestién de proyectos, entre otros. La administracién de los cambios que se desarrollan durante los, diferentes procesos de elaboracién o configuracién del software es Un proceso que permea todas las etapas de la ingenierfa del software y permite acceder a una revision o versién de un producto a fin de revertir un problema o mejorar un procedimiento en el programa, llustracién 3 Presentacién de la Unidad 1 autori Con la elaboracién de un cédigo se realiza una introduccién a las buenas Go ee ete practicas y el cuidado en la elaboracién y solucién de un programa 0. di producto de software pensando no sélo en el bienestar de quien desarrolla el cédigo sino en el de sus colaboradores y sucesores. 2.4 DESARROLLO TEMATICO 2.4.1 Tema 1. La comprension del problema Un sistema informatico esta compuesto por hardware y software. En cuanto al hardware, su produccién se realiza sistematicamente y la base de conocimiento para el desarrollo de dicha actividad esté claramente definida. La fiabilidad de! hardware es en principio equiparable, a la de cualquier otra maquina construida por el hombre. Sin embargo, respecto del software, su construccian y resultados han sido histéricamente cuestionados debido a los problemas asaciados, entre ellos podemos destacar los siguientes: + Los sistemas no responden a las expectativas de los usuarios. « Los programas “fallan” con cierta frecuencia, * Los costos del software son dificiles de prever y normalmente superan las estimaciones. Powered by + La modificacién del software es una tarea dificil y costosa + El software se suele presentar fuera del plazo establecido y con menos prestaciones de lasconsideradas inicialmente. ‘+ Normalmente, es dificil cambiar de entorno hardware usando el mismo software. + El aprovechamiento éptimo de los recursos (personas, tiempo, di suele cumplirse, lefo, herramientas, entre otros) no HARDWARE AND SOFTWARE HARDWARE SOFTWARE Tustracién 4 Sistemas de informacién unidad 1. Autoria Segiin el Centro Experimental de Ingenieria de Software (CEIS), a través de algunas investigaciones realizadas han concluido que sélo un 16% de los proyectos de software son exitosos (terminan dentro de plazos y costos y cumplen los requerimientos acordados). Otro 53% sobrepasa costos y plazos y cumple parcialmente los requerimientos. El resto ni siquiera llega al término. Algunas deficiencias, comunes en el desarrollo de software son: * Escasa o tardia validacién con el cliente. + Inadecuada gestion de los requisitos. + No existe medicién del proceso ni registro de datos histéricos. « Estimaciones imprevistas de plazos y costos. Iustracién 5, Defcencas en e! ‘sitemaunidad 1 autoria ttos://mudan. " deficiencia-ai,ah Powered by CamScanner + Excesiva e itracional presién en los plazos. + Escaso 0 deficiente control en el progreso del proceso de desarrollo. «No se hace gestién de riesgos formalmente. + No se realiza un proceso formal de pruebas. «No se realizan revisiones técnicas formales e inspecciones de cédigo. Con la creacién de la computadora y la proliferacién de los lenguajes se inicié el desarrollo de Sistemas de informacién con la finalidad de apoyar el manejo de los datos de las empresas, estos lenguajes de programacién han mejorado con el tiempo usando nuevos conceptos (Lenguajes procedurales / declarativos / Orientados a objetos / Orientados al problema, entre otros.), pero existe una constante en todo este tiempo: la insatisfaccién del usuario con respecto al producto final, esto es debido a miiltiples factores entre los cuales podemos mencionar. La definicién det alcance (no cumple con lo solicitado por el usuario], no cumple con el tiempo establecido (esto a su vez impacta sobre el costo del desarrollo el cual se eleva), en el aplicativo existen incongruencias que luego pasa a un estado de mantenimiento constante, el equipo de desarrollo no trabaja como debe de ser, se realizan modificaciones que no son informadas a todos los interesados y provaco molestias, existen factores internos y/o externos que provocan demora y no son tomados en cuenta, y Ia adquisicién de productos y/o servicios adicionales debe de seguir un seguimiento. Se ilustran algun pasos requeridos para dar solucién a un problema informatico. p= go> \ — - LCD (rosie) —> a Ez ee ae Se) = - \ <— fc) <0) R, Mra lo * nh, Tustracién 6 Comprensién del problema unidad 1 autoria Powered tps /univerad-e lor sndesgtbooks o/fundemsctoede-programaclon/content/Net/3 ProlemsSolulones him A través del tiempo y con los nuevos avances tecnolégicos se determina que es muy complicado que los programadores desarrollen un buen producto de software con solo la supervisién humana. Con la Fabrica de Software que tiene mds que supervisién humana, pretende medir y controlar la productividad y la calidad, manteniedo registros financieros para coste y planificacion. Se afiaden otras disciplinas de gestién de proyectos, metodologias, programas de formacién, entre otros. Para lograr un buen alcance, es necesarios garantizar que el proyecto incluya todo el trabajo requerido para completarlo con éxito, la idea es definir que se incluye o no en el proyecto. La gestidn del tiempo del proyecto incluye los procesos requeridos para administrar la finalizacion de este a tiempo, justo en esta etapa se desarrolla el cronograma para su seguimiento respectivo. La gestién de los costos se encarga de la estimacién, presupuestacién y control de manera que el proyecto pueda culminarse dentro del presupuesto aprobado. Se determinan politicas, objetivos y responsabilidades de calidad, para que el proyecto satistaga las, necesidades por las cuales fue emprendido, se planifica adems su aseguramiento y control. ‘Comunicacién asegura la oportuna y apropiada generacién, coleccién, distribucién, almacenamiento, recuperacién y disposicién ultima de la informacién del proyecto. Riesgos, incrementa la probabilidad ¢ impacto de los eventos positivos y disminuye la probabilidad e impacto de los eventos negativos en el proyecto (como ejemplo: falta de apoyo de los interesados). Recurso Humano, organiza, gestiona y lidera el equipo de proyecto, compra o adquisicién de productos, servicios o resultados que se necesitan dentro o fuera del equipo de proyecto. 2.4.2. Tema 2. Paradigmas de programacién Un paradigma de programacién provee y determina la visién y los métodos de un programador en la construccién de un programa o subprograma, Los paradigmas se presentan en diferentes estilos de programacién y en diferentes formas de pensar la solucién de un problema (con la solucién de multiples “problemas” se construye una aplicacién). [Link] Video 1 Paradigmas unidad 1 Powered by La Clasificacién de los paradigmas de programacién. Ported Mustracién 7 Clasificaciodn del Paradigma de programacién unidad 1 autoria tolforofesores $b unom,ma/hainagn/Paracigmast? pot Los lenguajes de programacién estén basados en uno o mas paradigmas, por ejemplo, Smalltalk y Java son lenguajes basados en el paradigma orientado a objetos, Python, soporta multiples paradigmas, el lenguaje de programacién Scheme, solo soporta programacién funcional. ustracién 8 Tipos de paradigmas de programacién Unidad 1. Autoria ps // ww sprenderprogrsmaro/2017/05/parsdlmss de programacon him) Powered by @ Camscanner Paradigma Imperativo: describe la programacién como una secuencia instrucciones o comandos que cambian el estado de un programa. El cédigo de maquina en general esta basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigma se incluye el paradigma procedimental (procedural), el estructurado, entre otros. <> — Paradigma Imperativo Iuustracién 9 Paradigma Imperative Unidad 1 fa del autor Paradigma Estructurado: la programacién se divide en bloques sencillos de cédigo (procedimientos y funciones) que pueden o no comunicarse entre si, Ademas, la programacién se controla con secuencia, seleccién e iteracién, Permite reutilizar cédigo programado y otorga una mejor compresién de la programacién al igual que su depuracién. Es contrario al paradigma inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un “bloque”, como, por ejemplo, los archivos batch (bat). tural Unidad 1. Aut Paradigma Declarativo: No se basa en el cémo se hace algo (cémo se logra un objetivo paso a paso), sino que describe (declara] cémo es algo. En otras palabras, se enfoca en describir las propiedades de Powered by CamSeanner la solucién buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solucién. Es més complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solucién de determinados problemas. Vemos como una hoja de célculo un ejemplo claro, sus celdas contienen valores 0 expresiones mateméticas que se actualizan automaticamente cuando cambiamos los valores de entrada. La relacién entre valores y resultados es totalmente matematica y para su célculo no debemos tener en cuenta pasos de ejecucién. Describe que se debe calcular, sin explicitar el cémo. (Programacién funcional y ldgica). Mustracién 11 Paradigma declarative Unidad 1. Autoria: rf com febiokhecis/osrd Paradigma Funcional: este paradigma concibe a la computacién como la evaluacién de funciones matemiéticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicacién de las funciones y composicién entre ellas, mas que en los cambios de estados y la ejecucién secuencial de comandos (coma Io hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones. Un tipo encajado en este paradigma es la programacién evolutiva 0 iterativa en ella los programas complejos se construyen a base de ir definiendo y probando elementos computacionales cada ver més complicados. (Como Abelson y Sussman comentan en el libro Structure and Implementation of Computer Programs (SICP): Abelson y Sussman sobre la programacién incremental) Powered by lustracién 12 Paradigma funcional Unidad 1. Autoria: Paradigma Logico: se basa en la definicién de reglas légicas, para luego a través de un motor de inferencias logicas responder las preguntas planteadas al sistema y asi dar solucidn al problema, se basa en la légica de predicados, ejemplo: prolog. PARADIGMA LOGICO Iustracién 13 Paradigma l6gico Unidad 1. Autorta: ‘espe com /o [dts pt arias 5) Paradigma Orientado a Objetos: La programacién orientada a objetos 0 POO es un paradigma de programacién que usa objetos y sus interacciones, para disefiar aplicaciones y programas de computadoras. Esta basado en varias técnicas, incluyendo herencia, abstraccién, polimorfismo y encapsulamiento, Un paradigma de programacién representa un enfoque particular o filosofia para la construccién del software. No es mejor uno que oto, sino que cada uno tiene ventajas y desventajas. Su principal ventaja es la reutilizacién de cédigos y su facilidad para pensar soluciones a determinados problemas incluidos dentro de sus elementos fundamentales y secundarios de la metodologia Orientada a Objetos. Entre las desventajas las limitaciones del desarrollador respecto a las Powered by @ Camscanner caracteristicas del paradigma y de hecho que siga utilizando el paradigma estructurado. No existe una forma dnica de resolver el problema planteado. ue. Lars — caprenEE S m qeeteouren tes nas aekeodee: lustracién 14 Paradigma Orientado a Objetos Unidad 1. Autorla, o/c intrest com/pin/738590907629059330/ Paradigma Orientado a Eventos: est basado en la programacién dirigida por acciones detectables (el programa decide si responde 0 no) en el que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario 0 que ellos mismos provoquen como en una interfaz erafica. El Paradigma Orientado a Eventos stracién 15 Paradigma Orientado @ eventos Unidad 1. Autoria t/a youtube com/watch BRO dE Paradigma Orientado a Aspectos: est basado en el concepto de “Aspecto” que pretende dar una determinada funcionalidad al sistema; separando esta funcionalidad del sistema, con el fin de aumentar el modularidad y disminuir el acoplamiento. Especificamente pretende entender los conceptos y eliminar la dispersién del cédigo, separando los requerimientos funcionales de los no funcionales facilitando la implementacién, (Libreria dindmica). Powered by CamScanner Mustracién 16 Paradiama orientade @ aspectos Unidad 1. Autoria, to / Jone conries cm/es acon sectn teen progr tnacincsient ne pecs trie 2.4.3. Tema 3. Confi in del ambiente de trabajo Mustracién 17 Ambiente de trabajo integrado Unidad 1. Autorfa: ‘tps: //wwr [Link]/noteas/netbeans-o-elipse-cus-elegi/ Por definici6n IDE (Integrated Development Environment) entorno integrado de desarrollo encargado de manejar varias aplicaciones llamadas herramientas facilitadoras, para la creacién de aplicaciones de forma mas cémoda del desarrollador permitiendo escribir cédigo, compilar, ejecutar, depurar y usar miltiples herramientas desde el propio entorno para programar en Java (y también en otros lenguajes). Como entorno del desarrollador y facilitador encapsula aplicaciones propias o realizadas por otros desarroliadores y las dejan disponible. Algunas de estos son el editor de cddigo (se digita el cédigo), el ‘compilador ( valida la buena escritura de todo el cédigo), un depurador( valida la buena escritura de tuna sola linea de cédigo) , el ejecutor para cuando se pone en funcionamiento la aplicacién que esta en lenguaje binario (realiza el proceso}, con la posibilidad de adicionar mas componentes y un constructor Powered by @ Camscanner de interfaz gréfica GUI, ademas cuando es posible se adicionan pluggins (cédigo de soporte adicional especifico para editores) como en el lenguaje de eclipse o netbeans. La instalacién y configuracién del JDK JDK es un entorno de desarrollo que provee heramientas para uso del programador de software. La herramienta provee libretias, clases, componentes entre otros encargados comprender lo que hace el desarrollador, el jdk se instala en el pe donde el desarrollador realizara sus diferentes actividades como aplicaciones y/o Applet, independiente del lenguaje. Ademas del Kid de desarrollo de java se dispone del compilador JRE (runtime environment java), se encarga de traducir el cédigo fuente para ser entendido por la maquina (Bytecode} La versién standard jse o Enterprais Edicion empresas servidores y servicios web. Para realizar la instalacién del EI jdk Lo primero es ir a la pdgina oficial de Oracle ([Link] [Link]) para descargar la titima versién del jdk disponible, ir a la opcién “Technologies” — “Java SE” que soporta la arquitectura para sistema operativo de 32 bit y seleccionar la pestafia “Download”, aparece una pantalla donde se especifica las caracteristicas deseadas, para comprobar (boton de inicio teclea clik derecho propiedades observa tipo de sistema operetivo). Tambien se descarga del sitio web oficial: Java SE java development kit 8 download for windows xp 32 bit segin la versién vemos la siguiente descripcion: Pasos para instalacion del JDK: Pee og eye ers eee tue Aceptar condiciones y ubicar en la unidad SL cece Lae Comprobando la ubicacién java en disco Powered by Cee Re uns cc} Rete descargar jdk desde el administrador Oracle [Link] Tabla 1 Pasos para instalacion del JOK, Unidad 1. Autoria del autor Una ver descargado e instalado correctamente, se busca la ruta donde se ubicard la instalacién se recomienda la carpeta de los archivos basicos de java ellos se alojan en la carpeta bin, por ejemplo: C:\Program Files\Java\jdk1.8.0_05\bin para luego llevarla a la ruta de entorno class path: C:\Program Files\lava\jdk1.8.0_05\[Link] en el CLASSPATH C:\Program Files\ava\idk1.8.0_05\ para el JAVA HOME El administrador del del entorno del equipo, recibe la variable de entorno Path, se siguen los siguientes paso: desde Equipo -> Click derecho -> Propiedades -> Configuracién Avanzada del Sistema -> [Pestafia] Opciones Avanzadas -> Variables de Entorno llegamos al cuadro de dialogo con el mensaje variable de nombre Path, presionamos Editar, dentro del cuadro de dialogo mostrado, con el puntero vamos hasta el final del texto escrito se coloca el separador “;” y digitamos la siguiente orden sin las comillas: "C:\Program Files\Java\jdk1.7.0_02\bin;" como se describe en la siguiente tabla nmero 2 con algunas evidencias imagenes del proceso realizableentre cuadros. Powered by CamScanner Tabla 2 Deseripcion grafiea del entorno del sistema Path, Unidad 1. Autorla del autor. Una vez que se haya afiadido la ruta, presionar aceptar y se actualiza el proceso. Para la elaboracién de una aplicacién se tienen dos pasos importantes estos son: la linea de consola (digitacién de las ordenes por comandos) y el entorno de desarrollo (Se presentan las interfaces predefinidas del lenguaje de programacién), Lalinea de consola requiere del simbolo del sistema (cmd) y del black de nota, este tipo de elaboracion desarrolla habilidades para elaborar, compreder la sintaxis y practicar el codigo, no tiene autoayuda, ni autocompletado para evitar cometer errores. La consola (cmd) primero se ubica en Ia ventana de consola procediendo, asi como sigue: Linea de Consol: Para llegar a la consola digita cmd De Rue er ke Para compilar escribimos la orden javac Para salir de consola se digita: exit Powered by CamScanner fe co ¢ 1, Autoria del ai Tabla 3 Descripeisn de sola (emd), Uric strucciones) se Para compilar (verificacién de la sintaxis correcta de todas la: ita javac espacio y el nombre del programa el punto la extensién del archivo java. La orden para compilar es javac, esto comprueba el proceso de instalacién y configuracién ajustado para manejer a aplicacién desde java. Para crear (digitar) una aplicacién llamada HolaMundo, se requiere de un editor 0 se abre el bloc de notas (para digitar el programar en Java), con o sin clase, pero empleando el método principal cédigo fuente. Se guarda el archivo con el nombre "HolaMundo java", donde java es la extensiGn del programa fuente, debe tener presente la diferencia entre mayiscula y mindscula, en este caso se cambié de ruta, por lo general esté en la unidad c: Para compilarlo (verificar la sintaxis) y Wevarlo a lenguaje de maquina (objeto) bytecode, se digita la siguiente sentencia; ruta\ javac [Link] mucha atencién con la ruta del archivo, como se especifica en la siguiente tabla con sus respectivas ilustraciones. Compilacién y ejecucién: Cer oe us er eu aR aca Re Eun eu uae sae) Puesta en ejecucion de archivo sin errores Powered by CamSeanner Tabla 4 Descripcicn del registro rompilacién y ejecucion en cmd, Unidad 1. Autoria del autor Para Ejecutar (poner a correr el c6digo objeto), en la Consola escribimos la orden: java HolaMundo Muy importante, no se coloca la extensién del archivo (es decir el .class). ELIDE Para la elaboracién de aplicaciones se har una muestra de algunos editores de java, pero en la UNIREMINGTON se tiene en cuenta a Eclipse y en unos casos @ netbeans se describen para su apreciacién otros que existen en el mercado en el siguiente cuadro. Editores de java: 2 httos:/Amww. [Link] fes/netbeans: [Link] [Link]/oroducs/downloads/ Perea eset itd ee Ceo ou Pete ee areca Puede descargar el entorno y varios complementos (plug-ins) de Java ELIDE NetBeans. Una de las herramientas de desarrollo. | ‘# Foundation Edition gratuita en su para Java més populares, de | PopUar IDE JBuilder para Java, ofrece Agadir eacunal versiones de prueba, de las ediciones Enterprise y Developer. Powered CamScanner 5 https-/ierasp org/tutorials187_ (01 installing pdt oluth ‘www. [Link] Mica ss 'ucNa Descarga, documentacién y herramienta gratuita tutoriales sobre jGRASP. _| texto escrito en Java. Curce ee cee) Herramienta con ensefiar Java orientadoa PA Pentennen er ede) de programas en Java, para Caen utc ayudar a su comprensién, he Text Editor for Windows : compile, . cedite y ejecute sus programas en lava www [Link] sCreator: | Gesde este editor, que proporciona PE eeu vecas aval coloreo de sintaxis y una interfaz fécil SCreator Lite Edition esté | Ge year, EI IDE Sun Java Studio disponible descarga gratuita. una version de prueba 30 dias de ICreator Pro Edition. oe ray eR ORG Cout Sun Microsystems. Tabla 5 Descripcion de algunos Editores, Unidad 1. Autorta -htto://[Link]/2012/03/lista-de-editores-v-entornos-de,htm! La descarga editor eclipse desde [Link] procesador de 32 bit Estndar 0 de 64 bit SE 0 EE. El editor como facilitador del desarrollador para la elaboracién del cddigo, se selecciono para este caso Eclipse SE en cualquiera de sus categorias este se describe en el siguiente cuadro hasta Seleccionar java Powered by CamScanner SE (esténdar) también existe el EE (Enterprise Edition), mas empleado en empresas, para uso de servidores y para servicios web. Se describe el estandar. Descarga y uso de editor Tabla 6 Descarga y uso del editor Eclipse, Unidad 1. Autoria del autor A partir del editor facilitador del desarrollador para la elaboracién del cddigo se debe tener en cuenta para este caso el editor eclipse SE en cualquiera de sus categorias este se describe en el siguiente cuadro hasta Seleccionar java SE (estandar) también existe el EE (Enterprise Edition), tomemos el estndar. Uso del editor eclipse: Powered by CamSeanner DMC Liem estructura para codificar (editar) mayuscula) Tabla 7 uso del edltor Eclipse para Jave Unidad 1, Autorla del autor Seleccionar de la barra de mend, el meni de archivo (file), por medio del comando nuevo la etiqueta proyecto java (project name) muestra la ventana para crear el proyecto como lo describe la tabla en la segunda fila segunda columna. Se debe nombrar el proyecto y terminar el proceso para continuar con el paquete que es el agrupador de los diferentes archivos de este proyecto, clic derecho en él y el comando nuevo, pero seleccionar paquete se crea uno debe finalizar el proceso lo indica el editor. Sobre el paquete, clic derecho se pide un nuevo archivo tipo clase a la cual se le asigna un nombre preferiblemente primera mayiscula, este presenta algunas opciones para sus métodos en especial si se requiere el main, (Principal). La ventana del editor presenta 4 divi nes para la aplicacién como lo describe a continuacién: Estructura de una aplicacion desde el editor: eres ecu aeericu Powered by Tabla 8 Estructura de una aplicacién desde Eclipse, Unidad 1. Autoria del autor La interfaz gréfica tiene como funcién intermediar entre el programa y el usuario facilitando el acceso a cada uno de los diferentes procedimientos existentes y controlados, para cuando el usuario interactue con la aplicacién, en ocasiones restringido su manejo, asi encontrar respuesta al evento. Las bibliotecas contenidas en la Apis son componentes clases, que de acuerdo con el agrupador Jerérquico de las clases modifican la apariencia desde los paquetes, el tradicional [Link] o el mejorado [Link] con controles mas actualizados, para la elaboracién de la aplicacién, independiente de plataformas camo java, cit, c++, python entre otros, al igual que del editor. Cada uno de los elementos de una interfaz gréfica de usuario en Java se representa como una instancia de una determinada clase. Por ejemplo, si queremos que nuestro interfaz tenga un botdn dentro del formulario, se declara el objeto de la respectiva clase (JButtom), se instancia, se programa el evento, se agrupa en la componente correspondiente y en la ventana contenedora (formulario). ‘omponente agrupador ventana Ventanas en Javea i) mponentes dentro del contenedor ventan Fl _ Ammacenar || Restablecer Mustracién 18 IDE, algunos companentes y contenedores (etiquetas, texto y botén) Unidad 1. Autor : autor EI manejador de eventos 0 el escuchador (actionlistener) se encarga de programar algunos de los controles definidos en la aplicacién como: las etiquetas (muestra mensajes), los textos (muestra y Powered by CamScanner captura informacién), los botones (accionan los procesos) estos se agrupan al menos en un panel que 5 un contenedor, por ultimo se agrupan todas las componentes en una ventana o Formulario ‘Al manejar cada componente contenedor por ser clase se debe declara e instanciar dandole las caracteristicas especificas, se programa el procedimiento y se adiciona o asocia al contenedor correspondiente para con esa unidad poder iniciar la ejecucién del bytecode. ‘Se muestran algunas clases contenidas en el paquete javax. swing y su respectiva descripcién, observe el primer cardcter J mayliscula para indicar la pertenencia a javax. Clases en el paquete javax. Swing: Cee end Peseta cre} JLabel ~ Etiqueta, muestra imagenes y texto. Tea JButton — Botén accién en la aplicacién Teed ICheckBox- Casilla de verificacién ccemcny JRadioButton — Botén de radio, usado para seleccionar una opcién entre varias Sie Coc) ‘STogg)eButton — Botén que se queda presionado al pulsarle eons 3ComboBox ~ Control que muestra un elemento eco JScrollBar ~ Barra de desplazamiento, usada en los contenedores Seed JSeparator - Usado en los menus y barras de herramientas para separar opciones. Soe ears Jslider- Deslizador JSpinner SSpinner ~ Capo de texto con botones para elegir el elemento siguiente 0 anterior. eres ProgressBar ~ Barra de progreso Bee Sable Tabla Powered by ee Tens me Hoo eee Pee aucun} JCheckBoxMenultem ~ Elemento del mend como botén de chequeo. Powered by CamSeanner Pe uur cuss) JRadioButtonMenultem — Elemento del mend como botén de seleccién, Ty JPopupMenu~ Menii de elementos. cE sMenultem — Un botén que se encuentra en un menu, EG sMenuBar ~ Barra de menus. Siac SToolBar ~ Barra de herramientas cour) SToolTip ~Toolti Tabla 9 Clases empaquetadas en [Link], Unidad 1. Autoria del autor |inttps://[Link]/Cursos/Java/Entornos Video 2 IDE Unidad 1 El entorno integrado de desarrollo pone a disposicién diferentes aplicaciones de apoyo sea en tiempo de ejecucién 0 no, incluso se pueden integrar como soporte al lenguaje empleado por el desarrollador de software, para realizar tareas en uno u otra tecnologia. Las compafiias se encargan de proporcionarlas, especialmente para trabajar el JDK (Kid de Desarrollo de Java) con la jerarquia de las componentes awt (manejador de ventanas abstractas) que le ha legado su uso a swing haciendo mas agil el lenguaje de desarrollo como Eclipse o NetBeans entre otros. ECLIPSE es un entorno de desarrollo integrado de cédigo abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuestoa las aplicaciones *Cliente-liviano" basadas en navegadores. Mustracién 19 IDE de Eclipse Unidad 1. Autoria: hitpy/[Link]/majocsbe/ Powered by Scanner Eclipse desarrollado originalmente por IBM, es el sucesor de la familia de herramientas para VisualAge, luego por la Fundacién Eclipse, una organizacién independiente sin dnimo de lucro que fomenta una comunidad de cédigo abierto y un conjunto de productos complementarios, capacidades y servicios. Es una plataforma disefiada para ser extendida de forma indefinida a través de plugins (aportan funciones adicionales al cédigo existente quien lo controla.). El procesador de eclipse tiene el entorno de sistema de 32 0 64 bits, que al instalar la IMV (maquina virtual de java) o el JRE (Java Runtime Environment] deben coincidir para seleccionar el entorno respectivo para Java. NETBEANS Es una plataforma para el desarrollo de aplicaciones de escritorio, un entorno de desarrollo visual de cédigo abierto, pensado para los productos Java, fundado por Sun MicroSystems en el afio. 200. ————— Iustracién 20 IDE de Netbeans Unidad 1. Autoria: hup://codigosti blogspot-com/2014/09/intertarsraticarenjava-Pi hte Una ventaja del uso de NetBeans IDE radica en que al utilizarla se pueden desarrollar aplicaciones de tipo multiplataforma, independiente del sistema operativo. Permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados médulos. Un médulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como médulo. Las aplicaciones construidas a partir de médulos pueden ser extendidas agregandole nuevos médulos, facilitando que las ya establecidas, solo tengan que seleccionarla y utilizar la que necesites para agregarla al proyecto, 2.4.4 Tema 4. Control de versiones Gestién de la Configuracién del Software Powered by CamScanner Las actividades relacionadas con el desarrollo de software son generalmente muy dindmicas, y los productos generados altamente susceptibles al cambio. Cuando los cambios son muchos y muy répidos 0 hay mucha gente involucrada en ellos se necesita llevar una gestién dedicada para evitar el descontrol. La actividad que se encarga de! manejo de cambios se denomina Gestién de la Configuracién del Software y se relaciona con la identificacién, control, correcta implementacién y comunicacién a las partes interesadas de los cambios durante todo el ciclo de vida del software. No confundir con Mantenimiento de Software, es la actividad que entra en vigor una vez que el software esté en uso. En el desarrollo de software se producen elementos como: el cédigo fuente, el ejecutable, los documentos y los datos, las cuales cambian inevitablemente. Las cambios se presentan por distintos motivos como: por los requerimientos, el dominio de la aplicacién, las funcionalidades deseadas, los cambios externos al proyecto (modificaciones en el presupuesto o en el equipo de desarrollo), entre otros. Para una adecuada gestién de los cambios, se debe partir de una linea base, a la cual se llega a través del andlisis y de consensos formales de los elementos que componen la configuracién, Los cambios en los elementos deben pasar por las siguientes etapas formales para hacerlos efectivos. la identificacién, el control de versiones, el control de cambios, la auditoria, el repositorio. La Identificacién diferencia los elementos y prove un mecanismo para referirse a cada uno de ellos univacamente y a sus relaciones de dependencia, pertenencia y asociacién. Se acorda una forma de asignar versiones a cada elemento, generalmente con numeros. El control de cambios es la designacién de las responsabilidades de las personas involucradas en la modificacién de un elemento y los procedimientos que se deben llevar a cabo para esta tarea. La auditoria es la tarea que se encarga de corroborar que todos los procedimientos se han aplicado correctamente y que los productos obtenidos cumplen con las caracteristicas de calidad deseadas. El control de versiones es el seguimiento a cada una de las versiones en que se encuentra cada elemento del mantenimiento de software, mds la posibilidad de observar el historial de modificaciones que se le han realizado. El control de versiones involucra procedimientos y herramientas para gestionar los cambios en los elementos creados durante el ciclo de vida del software. Comenzando por la asignacién de un niimero de versién para la configuracién de la linea de base, se lleva un registro de las revisiones corrientes € historicas de cada elemento y del proyecto en su conjunto. Las distintas revisiones de cada objeto se relacionan formando un grafo de dependencias (significa que para ejecutar la tarea destino debe ejecutarse primero la tarea del origen) representando la evolucién de este, Esto debe estar organizado y controlado, estableciendo procedimientos y permisos de acceso para las modificaciones. El repositorio Es basicamente un rbol del sistema de archivos (directorio), centralizado y controlado por una herramienta que gestiona los permisos y conexiones para leer o escribir dichos archivos, y guardar un registro histérico de las modificaciones que se les realizan. Powered by El procedimiento de modificacién de un componente consiste, de manera general, en adquirir una copia local del componente para trabajar en ella. Luego el componente modificado se establece como una nueva revisién en el repositorio, EI Mecanismos de control permite un acceso colaborativo al repositorie (modificacién y lectura), las herramientas del repositorio utilizan diferentes estrategias orientadas a evitar conflictos al compartir archivos. Estos conflictos se generan cuando dos 0 mas personas trabajan en el mismo archivo, al terminar la modificacién y querer impactar sus cambios en el repositorio, corren el riesgo de sobrescribir las modificaciones del otro. i 5 puesto de trabajo Pusstede trapajo2 —«Puestode trabajo 3 Mustracién 21 Sistemas de control de versiones, Unidad 1. Autoria 8 (stoma de-control. ce. En la estrategia del modelo bloquear-modificar-desbloquear, el repositorio permite a un solo usuario para modificar un archivo, primero debe bloquearlo, para cuando otro usuario intente bloquearlo, el sistema no lo permita y debe esperar a que termine el primero y lo desbloquee. El modelo ocasiona: Tiempos muertos: cuando se olvida desbloquear un archivo, mientras otro usuario necesita utilizarlo. Esperas injustificadas: un usuario deba modificar una seccion diferente de la que est modificando el usuario bloqueante. Falso sentido de seguridad: en el caso de dependencias entre los archivos, se puede llegar a tener inconsistencias o deadlocks (interbloqueos). Estos problemas pueden ser manejados en grupos de desarrollo pequefios y poco distribuidos, donde la comunicacién por vias convencionales es factible. FI modelo copiar-modificar-combinar permite que multiples usuarios trabajen simultdneamente en sendas copias locales del repositorio (working copy). Al momento de actualizar el repositorio con los cambios realizados, el sistema se encarga de comparar las versiones y combinarlas (generalmente el usuario participa en la toma de decisiones al respecto). La mayoria de los problemas del modelo anterior se resuelven utilizando éste, los conflictos en este modelo se dan cuando dos o més usuarios Powered by @ Camscanner modifican la misma porcién de un archivo. La solucién de este conflicto involucra comunicacién entre los desarrolladores. El modelo copiar-modificar-combinar funciona correctamente con archivos de lineas de texto (por ejemplo, cédigos fuente), pero con archivos binarios (por ejemplo, imagenes, sonidos.) donde no se tiene una representacién legible de! contenido, la mejor solucién es utilizar el modelo bloquear- modificar-desbloquear. wun. youtube, com/watch2v=Z0D6KVAze8kVideo 3 contro! de versiones unidad 1 Sistemas de Control de Versiones Existen miltiples sistemas de control de versiones, algunos de ellos son: CVS, Subversion (svn), SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, Mercurial, etc. Cada cual, con sus propias caracteristicas, pero basados en los mismos conceptos. Los sistemas de control de versiones se pueden clasificar en centralizados y di ibuidas: Centralizados: existe un Gnico repositorio de todo el proyecto, del cual es responsable un Unico usuario (c conjunto de ellos). Se facilitan las tareas administrativas @ cambio de reducir flexibilidad, pues todas las decisiones importantes (como la creacién de una nueva rama) necesitan la aprobacién del responsable. Ejemplo: CVS y Subversién Distribuidos: cada usuario tiene su propio repositoric, no es necesario tomar decisiones centralizadamente, los distintos repositorios pueden intercambiar y mezclar revisiones entre ellos. Ejemplo: Git y Mercurial CVS y Subversién (también conocido como SVN) son los sistemas centralizados de control de versiones, libres mas difundidos. La arquitectura de subversién se maneja como un sistema cliente-servidor, donde el servidor admite conexiones de diversos tipos al repositorio. Los clientes pueden utilizar una interfaz de linea de comandos 0 un cliente gréfico para descargar un repositorio para trabajar sobre el y publicar sus modificaciones. Powered by = | Mustracién 22 CVS y subversiones svn Unidad 1. Autoria sroom hestala,com /contents/ui/theme/images/eites/4/eontol versiones contralizado-blog-hoztals-ho:tng 2.4.5 Tema 5. Estructura del cédigo La estructura de un programa de Java es similar a la de un programa de C/C++. Por su disefio, permite a los programadores de cualquier otro lenguaje leer cédigo en Java sin mucha dificultad. Java emplea siempre la Programacién Orientada a Objetos por lo que todo el cédigo se incluye dentro de las clases atributos (constantes y variables) y métados (rutinas). La clase principal y el método mai Un programa puede construirse empleando varias clases. En el caso més simple se utilizard una Gnica clase. Esta clase contiene el nombre del programa, el método principal llamado main (), recibe como pardmetro de entrada una cadena de caracteres desde el sistema, el método incluye dentro de un bloque definido por {} a Ia 0 las actividades (instrucciones requeridas para la solucién) del programa, las actividades se separan entre si por el caracter de punto y coma (;), la estructura de un programa simple en Java es la siguiente: Estructura basica de una aplicaci6n: Cree CE eur a) Dery Powered public class PrimeraPractical prea Rede) Nea LCCC IUy CCEA Ware MLS crac Ere es ETC ACR Coury WU OO OR ICI ke COU L TCL O Ret s ard CO ea a Peis cr eee ae PCa aa ett) “estoy practicando lenguaje java,” y el Cee en Ee Oe Dae Cet ce eect partes la primera identifica la clase public es nivel de visibilidad global, Nombre de la clase PrineraPractica { /Maracter Inicio bloque de la clase public static void main {Método publico, estatico llamado main (string [] args) parémetro para entrar datos public class PrimeraPractica { public PrimeraPractica () { 1] método constructor, mismo nombre de la dase} public static void main (String [] args) { J[estos caracteres son comentario de linea Powered by CamScanner honest ect] [Link]("Hola, arr) ‘[Link]("practicando lenguaje java, ‘[Link](" Bienvenido"); }} Tabla 10 Estructura basica de una aplicacién, Unidad 1. Autoria del autor. En un programa de Java toda instruccién se organiza dentro de las clases y las clases dentro de paquetes. En el ejemplo, PrimeraPractica es el nombre de Ia clase que identifica el archivo con el cédigo fuente " java” es la extensién del archivo. Todos los programas o aplicaciones independientes escritas en Java tienen un método main conocido como principal, con un pardmetro tipo cadena que proporciona la entrada desde el sistema, contiene un conjunto de actividades (sentencias o instrucciones). Los conjuntos o bloques de actividades se agrupan entre llaves { } (doble Hlaves). En PrimeraPractica, el conjunto de instrucciones se reduce a tres actividades agrupadas en el método main por {}, la instruccién generada por la clase System contiene la subclase out que a su vez agrupa al método (print 0 printin) encargado de imprimir (visualizar mensaje y/o datos) por el dispositive de salida (la pantalla). Por ultimo la clase Hola agrupa con las {} lo contenido dentro del main. Separadores o delimitadores: Ce ar) Llave { abierta delimita el inicio principio del bloque de cédigo o clase Llave } cerada delimita el final termina el bloque de cédigo 0 clase Corchetes []: juntos abierto y cerrado indican posicién en el arreglo tipo vector. Paréntesis (): juntos delimitan en un método su lista de parametros si existen ‘como condicionales en pregunta, en expresiones establecen la prioridad y precedencia, 7/ comentario de una sola linea, establecen comentario o documentacién en el cédigo */finaliza el comentario o documentacién de mas de una linea punto y coma’; “delimita la instruccién indica el final de ella en codigo, Powered by agrupador a los atributos y métodos de una clase. pertenencia Tabla 11 Separadores o delimitadores, de una aplicacion, Unided 1. Autoria del autor. Un Comentario es un delimitador se emplean para facilitar la tarea de los desarrolladores de software, ya que no realizan ningin papel activo en la generacién del cddigo. Los comentarios colocados en el cédigo fuente de un programa son ignorados por el compilador o el intérprete, se considera comenetario el texto que se incluya entre la secuencia de caracteres // 0 /* */. Los archivos fuente deberian comenzar con un comentario documentando 0 que ilustre sobre la identificacidn de la clase, informacién de la versién, fecha y el aviso de copyright: /* caracteres para iniciar el comentario * Nombre de la clase * Informacién de la versién * Fecha * aviso de Copyright */ caracteres para indicar finalizacién del comentario de una o varias lineas Identificadores Los identificadores son nombres conformados por una cadena de caracteres que se les coloca a las variables, métodos, clase entre otros, en el cédigo fuente de un programa. Los identificadores sdlo existen en el cédigo del programa fuente y no en el programa objeto (resultado de la compilacién del programa fuente). Todo nuevo identificador que se emplee en un programa Java debe definirse previamente a su utilizacién, Las normas para la construccién de un identificador en Java son’ Powered by CamScanner Un identificador comienza por una letra, un cardcter de subrayado (_) 0 un carécter de délar ($). Aunque 1no se recomienda emplear el cardcter $, otros signos como la interrogacién (?) ol tanto por ciento (%) ya que el compilador suele utilizarlos de forma interna para crear identificadores propios. Una caracteristica relevante para el lenguaje de programacién como java es la diferencia entre maytsculas y mindsculas, por convencién o esténdar, se recomienda identificar un nombre de una clase comenzando por primera letra mayiiscula, el nombre para el método empezar con el primer cardcter en mindscula, y las variables segtn previo acuerdo. Ejemplo: easa, CASA y Casa son tres identificadores diferentes Pueden incluir caracteres Unicode, con lo que se pueden emplear secuencias de escape /Oxxxx para representar estos caracteres. No se puede repetir el identificador de una variable para nombrar otra variable dentro del mismo cédigo fuente. Excepto: Una variable miembro (definida en la clase) y otra local (definida en el método) con el mismo identificador. La sintaxis desde el lenguaje de programacién se encarga de estructurar la forma correcta de expresar cada elemento utilizado para conformar 0 construir una instruccién, permitiendo su validacién al momento de interpretar o compitar cada una de sus oraciones antes de llevarla al lenguaje de maquina (cédigo binario 0 bytecode) y conformar el cédigo listo para ejecutar. La variable debe declararse antes de usarla, consiste en una instruccién en donde especifique el tipo de dato y el identificador de la variable. Luego se le asigna valor por tener espacio en memoria. Se recomienda diferenciar cada uno de los tipos de datos antes de realizar |a aplicacion y tener cuidado al asignar un tipo de dato para luego recuperarla, los tipos de variables son instancia, u objeto clase local Las variables de instancia o miembros de dato se usan para almacenar la informacién de los atributos de un objeto particular. Las variables de clase 0 miembros dato estaticos son similares a las variables de instancia, con la excepcién de que los valores que guardan son los mismos para todos los objetos de una determinada clase. Integer Edad; //sintaxis para declara la variable tipo clase Las llamadas variables locales se utilizan dentro de la funcién miembro o métodos garantizando la existencia temporal de la informacién, se declaran y se recomienda inicializarla cuando se requiera. Edad = new Integer(edad); // asigna valor de a variable nativa edad a la variable objeto llamada Edad con primera mayuscula empleando el envoltorio Integer con el pardmetro de entrada entre () edad. int otraedad; = // se declara-suna_—variable nat llamada —_otraedad otraedad = [Link](); //La variable otraedad debe estar declarada, para recibir la informacion convertida por el método intValue () que esta contenida en la variable clase Edad tipo Integer. Una variable booleana se caracterizadas por tener un valor, r True o False (verdadero 0 falso). La Variable numérica entera contiene numeros positivos 0 negativos, los precedidos por el signo mas (opcional) son positives, 0 los precedidos por el signo menos son los negativos. Ej : numeros enteros. Powered by Variables con nimeros decimales contiene informacién del tipo float o double (coma flotante) se usan para guardar en memoria nimeros que tienen una parte entera y otra parte decimal. Ej numeros reales. La parte entera es una aproximacién del nimero real, continua el punto decimal (.) separa la parte entera de la decimal (fraccionaria). La escritura tiene una notacién cientifica 2.9979*10E8 equivalente 2 299790000. El exponente (10E8) minimiza 0 maximiza la cantidad de ceros. Valor constante son némeros declarados una variable de tipo final, durante la ejecucién no se modifican, se inicializa y cualquier modificacién ocasiona un error en tiempo de compilacién. Normaimente, las constantes de un programa se suelen poner en letras mayiisculas © acompafiadas del guion bajo, para distinguirlas de las que no son por concepto de esténdar. La forma de escribir los identificadores en Java no est normalizada, se dan algunas recomendaciones para la elecci6n de estos identificadores: Es conveniente utilizar identificadores autoexplicativos (significativas) para orientar al usuario 0 a cualquier otra persona que accede al cédigo fuente de un programa sobre lo que representan, sin necesidad de utilizar los comentarios en el propio cédigo fuente. Por ejemplo, Al almacenar el valor de la edad de una persona se nombra la variable al declararla como edad (int edad; y no como int e:) Sielidentificador se compone de més de una palabra, éstas se agrupan y después de la primera el resto comienza con una letra mayuscula, como, por ejemplo: mayorEdad, calcularPromedioEdad. El signo de subrayado 0 guién bajo se acepta en cualquier identificador, pero por convencién sélo se ‘emplea para separar palabras de un identificador constante (por convencién las constantes se escriben completamente en maydsculas, facilitando la separacién de los nombres). Por ejemplo, una constante almacena un némero real, que representa el mayor salario de una empresa con los que trabaja el programa se podria declarar el identificador de la constante SALARIO_MAYOR_EMPRESA. Ej public static final double SALARIO_MAYOR_EMPRE! \ocoo0000; Una palabra reservada no puede ser empleada por el programador al momento de nombrar un dato en el cédigo fuente como identificador para otros usos. Por ejemplo, la palabra reservada double se utiliza para definir un tipo de dato real (fraccionario) y la palabra for se usa para una estretura ciclica. Palabras reservadas en java: Bcaeics cr ace Poet] i foe ewe | wom | Powered by ones Tabla 12 Palabras reservadas empleadas en java, Unidad 1. Autoria. el autor Operadores son signos © palabras reservadas (claves) del lenguaje utilizado para realizar operaciones se llaman operadores, estos al combinarse con variables, canstantes, valores literales o el retorno de un método forman una expresi6n. Muy itiles en el desarrollo del lenguaje de programacién Java proporciona algunos operadores, se usan seguin ja necesidad, y Ia funcionalidad requerida. Operadores en Java: Cs Drees) Curry Er Multiplicacién public class OperacionesAritmeticas { A=A‘1; Powered by ‘Adicién (suma) A=AH Utila un solo operando para negar valores, dar valor positive Incrementar en 1 Ate decrementaren1 he lnviertir un estado public static void main (String [J args) { Int int b = 10; String x= "Operador’, y = "aritmetico"; MH Operador + y - System. out printin("a + b= "+ (a + b)); System. out printin("a -b="+ (a -b)); // €l operador + si se usa con strings [I concatena |as cadenas dadas. [Link]("x-+ y="#x+ yi} ) public class Operadortnario { public static void main(String{] args) { // definicién de cada una de las variables int a=20,b=10,¢=0,d=20,e=40, 30; boolean condition = true; System out printin("Valor de a inicial =" +a); // operador de pre-incremento //a a4 yentonces ¢ =a; cat System [Link]("Valor de c pre- incremento(++a) = "+ c); // operador de post-incremento // cb entonces b=b+l (b pasa a ser 11) cobHy Powered by CamScanner ‘sah Sante ANNES “Seater Eh enki Oe RMR VIB = Seo aga merc ethpensrasnaNe Coy () ont} a/b(a-a/b) Peace s)) Multiplica y asigna Divide y asigna Modulo y asigna System. out printin(*Walor de ¢ post- ineremento(b++) =" +c); J operador de pre-decremento Uf d=d-1 entonces c=d c=~d; System. out printin("Valor de c pre- decremento (~d) ="+ ¢); J operador de post-decremento Uc=e entonces e=e-1 (e pasa a ser System. [Link]("Valor de c post- decrementole~)=" +c); 1/ Operador légico not System. out printin("Valor de !condition "+ leondition); n La sintaxis para la asignacion es, variable para sumar el operando izquierdo con el operando derecho y luego asignario a la variable de laizquierda. A+ B(A=A+B) + para restar el operando izquierdo con el operando derecho y luego asignarlo ala variable de la izquierda. . A-~ B(A=A-B) * =, para multiplicar ef operando wierd con el operando derecho Powered by CamScanner Qed Grd se Yeton geese ont eet ie exh Ag9EB 40-0" Tuego asignandolo a la variable de la lequierda, . A* = B(A=A"B) ‘/ =, para dividir el operando izquierdo con el operando derecho y luego asignarlo a la variable de la izquierda. . A/ = B(A=A/8) % =, para asignar el médulo del operando izquierdo con el operando derecho y luego asignario a \a variable de la inquierda,. A% = B[A=A%8) ‘= , para aumentar la potencia del ‘operando izquierdo ai operando derecho ‘yasignario a la variable de la izquierda. public class OperadorAsignacionEspecial { public static void main(String{] args) { inta=20,b=10,¢,d,e=10,f=4,g 9; // operador de asignacién simple 3; [Link]("Valor de c "4d; //\a siguiente declaracién presenta una exception // el valor del operando derecho debe ser inicializado Mantes dela asignacion ——_/f H operadores de asignacién simples #2 4-1/ system. [Link] ("a,be,f="+a+ be" eer" +f) aza-1; b=b+1; /operados de asignacién compuestos/cortos ast; b [Link] ("a,b,e,f (usando. operadores cortos)= ae attebent ere) ) Powered by CamScanner Corer Tees ucey Comparar datos Igualdad: verdad ‘No igual verdadero menos que izq <=V menor o igual que Mayor que:laq> V Mayor que o igual a: operaciones AND, NOT, ldgicas OR» Retorna verdaderos 0 ldgico: negacién del operando sintaxis (variable operador_relacion valor) ej (a b "+ (a>b)}; System. out printin("'a >= b:" + (a >=B)) System. [Link]('a I= b:" + (a l= b)); // Los Arrays no se pueden comparar con // operadores relacionales porque los objetos {[almacenan referencias, mas no el valor System out printin("x«== y:" + (ar bel System. [Link] (*condicion==true :* + (condicion==true)]; } légico: cuando ambas condiciones son verdaderas ||, 0 logico: devuelve verdadero si al ‘menos uno es V si cada uno es true, es un and si al menos uno es true, es un or CamScanner Tabla 13 Operadores en java, Unidad 1. autoria.. itp lavadesdeces Tipificacién de los datos. Determina la caracteristica del tipo de informacién a almacenar en el espacio de memoria especificado, se identifica teniendo en cuenta el dominio, el tipo de dato, el contexto donde se emplee y la asics import [Link] Scanner; public class operadologico{ import java,[Link]; // importa la clase Scanner desde el paquete uti public class OperadorLogico { public static void main(String] args) { String x="Fundamentos"; String y= “a; Scanners = new Scanner([Link]); System. [Link]("Ingrese usuario: Fundamentos"); String usuarioid = [Link](); System. [Link]("Ingrese contrasefia: 111"); String contrasena = [Link](); UVeriicar si nombre de usuario y contrasefiacoinciden if (([Link](x) && [Link](y)) | ([Link]) && contrasena equals(x)) ( System. out printin("Bienvenide usuario.” + usuarioid); ) else { [Link]("ID 0 Contrasefia equivocada"); }) ) eradoreseniva-siemolo persistencia donde se aplique. Existen los tipos de datos Nativos y los Clase. Powered by CamScanner Los Datos natives El tipo de dato nativo (llamada tradicional o primitivo) no est organizado en clase ( sin orden jerérquico) se caracteriza por ser tradicionales en la programacién de los lenguajes (no objetuales), pero en el desarrollo de la metodologia objetual cumplen un papel muy importante realizan las operaciones aritméticas y combinan sus funciones con las clases envoltorios numéricos determinando el uso de espacio de memoria disponible para cada uno, se describen algunos tipos de datos nativos y su respectiva capacidad en memoria, Tipos de datos nativos: et) Dt a ere cio ee od Numérico entero de 8 bits. -127 hasta 126 Numérico entero de 32 bits. -2147483648_hasta 2147483647 Numérico entero de 64 bits. -9223372036854775808 hasta 9223372036854775807 Numérico decimal de 32 bits 1.40239846e-45f hasta 3.40282347¢+38F coma flotante simple precision. Chel) 9] Numérico decimal de 64 bits. 4,94065645841246544e-324d hasta coma flotante doble precision 1.7976931348623157¢+308d Cir _| Carécter Unicode de & bits 0 (B | Grupo de caracteres (Bytes) ((A“) 0 (" dato“) CeJeu | valor de comprobacién Rango true o false. Tabla 14 Algunos tipos de datos y su capacidad de memorias, Unidad 1. Autoria del autor Los tipos de datos nativos se caracterizan por que sus nombres empiezan con una lectra mindscula, excepto el tipo String que inicia con “S” mayuscula por ser el estandar para una cadena. Los nativos se declaran especificando el tipo de dato de acuerdo con Ia sintaxis y se inicializan asigndndole un valor apropiado para su uso, se puede realizar en una o en dos instrucciones, asi Primer caso: int aa=0; // se declara e inicializa la variable llamada aa se le asigna un valor de cero. Segundo caso: int dato; // primera instruccién, se declara la variable llamada dato dato=10; // La segunda instruccion se le asigna a la variable llamada dato el valor de 10. Nota: En cada caso la instruccién debe terminar en punto y coma (;) Powered by CamScanner Asignacién de variables tipo nativa: Pic Dre ata recy // declaracién de una variable tipo numérica entera nativa llamada edad. Cre // Se inicializa la variable nativa llamada edad con un valor numerico de 20, GS // Se declara y se inicializa la variable numérica entera llamada x con valor de 10 Curie i //Se declara y se inicializa una variable tipo cadena o string llamada nombre con ea el dato de “Pedro” Cae eon String caden = new String ("textos"); cei c | // declaracién de una variable nativa tipo numérica flotante llamada precio //Se inicializa la variable tipo numérica flotante llamada precio con el valor de 333 Tabla 15 Asignacién en varfables t)p0 native, dederacion yesignacion, Unidad 1. Autara del eutor Los Datos tipo clase el tipo de dato clase recomendado y reconocido por Ia jerarquia del paradigma orientado a objeto, posibilita la conversién de tipo, pasando de uno tipo especifico a otro segin la estructura y los métodos de la clase envoltorio, encargada de realizar la conversién de tipo, partiendo del tipo de dato clase cadena (String), es el estandar para el acceso (flujo) de datos para el proceso de la aplicacién, Las variables que pertenecen a la clase, adquieren los atributos, la identidad y los métodos por ser objetos, facilitando la conversién a cualquier tipo de dato nativo, segin la clase envoltorio a la que corresponda, haciendo la combinacién correspondiente teniendo presente que el flujo de datos es de tipo cadena. (Nota el primer caracter del tipo de dato clase debe estar en mayiscula). La forma de utilizar la sintaxis seria en dos pasos: primero Tipodedatoclase nombredevariableClase; Powered by Integer entero; // declarar la variable tipo clase llamada entero. Segundo nombredevariableClase = new Tipodedatoclase (DatoCadena); entero= new Integer ("25"); // Para instanciar se utiliza el operador new (separa espacio en memoria) por medio de! método convertidor de la clase Integer convierte la cadena recibida a numero Integer y le asigna valor de 25. Se combinan la declaracién y Ia instancia: Tipodedatoclase nombredevariableClase = new Tipodedatoclase (DatoCadena); Integer entero= new Integer ("25"); // se declara y se instancia (emplea el operador new) usa el convertidor que recibe como parémetro de entrada la cadena "25". Otra forma. byte numer integer. parseByte("22"); /fla variable nimero nativa recibe un némero convertido por el método parseByte que pertenece a la clase Integer (una cadena “22" se pasa a nimero 22} Un tipo de dato clase debe realizar declaracién e instancia para definirlo, o combinar los pasos (Geclarar e instanciar). La declaracién requiere el tipo de dato clase, el nombreVariable (\lamado objeto) yel punto y coma. Para instanciar (inicializar) el objeto se requiere primero el operador new quien solicita espacio en memoria a utilizar, segundo el método constructor del tipo de dato clase (método con el mismo nombre de la clase, pero con parametro para recibir informacion) encargado de convertir la informacién cuando no sean cadena, el tercer paso llava o asigna la informacién a la variable, La clase cadena es llamada intermediaria por que permite el acceso a la informacién, para luego ser convertida al tipo de dato nativo o tipo clase respectivo. Cuando la clase emplea o requiere un método, se coloca un punto (,), indica dependencia del método alla clase (pertenece 2 la clase) quien hace la conversién a la clase, por ultimo se asigna el dato. Se recomienda llamar la variable tipo clase con el primer caracter en mayuscula o anteponerle e| termino obj al nombre de variable, para diferenciarla del tipo nativas, Asignacién de variables tipo clase: Parc Decay ear // declarala variable identificada como Edad, tipo clase. Powered by Cec cag na la cadena entrada como parémetro a la variable llamada Edad, por eon medio del método envolvente de la clase Integer y el oerador new. ocd // la variable nativa otraedad, recibe el valor almacenado en la variable Either): | objeto Edad aplico el método convertidor intValue () de la clase Integer. ie uc Jeutec| // declaracién de un objeto variable tipo clase identificada como objentero Coeueueucn) | //Se asigna valor almacenao en lavariable nativa edad a objentero, e! sary operador new separa memoria para almacenar el dato convertido en clase Cees // forma de declara una variable para entrar datos tipo clase Scanner tend // forma de instanciar la variable llamada captura esta recibe dato desde el Seyi; uru)s | exterior por medio del sistema(ingresa datos desde el teclado). Tabla 16 Sintaxls declaracion y asignacion de variables tipo clase, Unidad 1. autora del autor. String cadenaedad = "35"; //declara una cadena y la inicializa o le asigna un valor tipo cadena “35”. int edadnueva= Integer parseint(cadenaedad); // se lleva el dato “35” en cadenaedad, este pardmetro de entrada del método parseint perteneciente a la clase envoltorio Integer a edadnueva. Para capturar datos desde el teclado se emplea la clase Scanner quien utiliza un parémetro llamado System, La clase System se utiliza para manejo de informacion del sistema entre sus métodos se destacan dos: el método .in para capturar informacidn del sistema (teclado) y el método .out para imprimir la informacién en la pantalla generalmente muestra mensaje acompafiado de datos. Scanner captura; // forma como se declara la variable tipo clase Scanner entra datos desde teclado. captura= new Scanner ([Link]); //se instancia la variable clase y se asigna dato desde el teclado [Link] printin (“digite una edad por favor:") ;// un mensaje de orientacién al usuario, emplea la clase System que contiene a la subclase out para salida de informacién contiene el método printin (imprime y salta de linea) con un parémetro tipo cadena (mensaje), termina en punto y coma (i). int ed= captura, nextint () ;// se declara la variable identificada como ed y se le ingresa informacién desde la clase captura tipo scanner, utiliza el método netxint () que no contiene pardmetro y se encarga de convertir la informacién almacenada en captura tipo clase en un niimero a entero tradicional. [Link] (“La edad almacenada es:” + ed) ;// se muestra la informacién almacenada en la variable ed, el signo “+” dentro del método de impresién significa una unién (concatenacién) del mensaje entre “” y la informacién almacenada en ta variable ed. Powered by import java. util. Scanner; // importamos el paquete Util para la clase Scanner y leer desde el sistema public class nombredelaclase { //método principal para iniciar 0 ejecutar la aplicacién public static void main (String [J arg) { int base ;//declaramos la variable tipo entero System. [Link](“‘digite el valor para la base”); ‘Scanner captura= new Scanner ([Link]}; base=captura, nextint () ;// se captura el valor con el método convertidor entero y se asigna a la base forma externa ‘System. [Link]{"\n la b ase es \t" +base); // se imprime o muestra la informacion } Se presentan los tipos de datos clases, su descripcién y el procedimiento correspontiente a la clase envoltorio para intermediar con algunos tipos de datos natives no deje de notar el primer caracter en mayiiscula, el punto indica que pertenece a la clase y luego el método con el parémetro de entrada. Tipos de datos clase MO Peas) Bee ae) awe es ns buna = one Dood Numérico con punto flotante [Link](cadena Float Numérico n punto flotante [Link](cadena) ae Vere of ec [Link]() Powered by Tabla 17 Algunos datos tipo clase, Unidad 1. autoria. autor Existe la posibilidad de definir unos tipos de datos especiales los cuales son creados por el programador, pero estén dentro de una estructura como son las clases, la interfaz y las bibliotecas. Lainici in de una variable corresponde a establecer un estado diferencidndolo de las demas y su duracién depende del tipo de almacenamiento, por sintaxis primero consiste en definirle un nombre segiin el tipo de dato, segunda instancia mediante conjunto de valores, tercero por los enumerados, POET CUR s SSL TCC) POSE URC PCL eee eed fo ee Uren double PI=3.14159; final double Pl=3,141592653589793; Uc 5 double PI= 3.141592653589793; eat int Nrodeelem =10; final int Nrodeelem = Coen final boolean estad true; String Cadenumero; nu=nus1; Tabla 18 Caracteristicas de algunas variables, Unidad 1. autoria. autor. Existen estructuras que realizan actividades en una aplicacién segiin un orden establecido o requerido por el desarrollador ademés de las de secuencias lineales tradicionales, estas son las estructuras condicionales, las cicicas y las recursivas entre otras. Las estructuras condicionales (control) validan una determinada condicién, Esta puede ser simple 0 compuesta. Entre estas estructuras tenemos la pregunta y el selector multiple: if, switch. Control condicional: Estructura de control condicional ren Powered by if (condicién) // condicién valida una expresicn (logica ) { //inicio de bloque condicional actividad o actividades; } I/fin del bloque condicional if (condicién) // la condicién valida una expresién {/finicio de bioque verdadero actividad o actividades; r // fin del bloque verdadero else _// representa el otro caso del condicional { // inicio del caso contrario actividad o actividadesdelcasocentrario; } //fin del bloque contrario if (condicion) actividad; else actividad; if (nota>=3,5) { [Link]("Aprobado"); Jelse {_System.out printin("No aprobado"); import [Link]; public class Pregunta { public static void main(String{] args) { double nota=1.0; Powered by CamSeanner Rarer) et eee team acy ee Cat eecacay eae geen Neen Pen eae eect) r Cerone Poo rg Peet Seay System out printin(” Se valida una nota entre 0... 5." ‘ [Link].printin_("ingrese una nota por favor: con ‘coma decimal "); ‘Scanner s = new Scanner(System in); nota= [Link]();// convierte entrada en numero real System out printin(" el informe segin la nota es. if (nota>=3.5) in [Link] print("Aprobado"); ‘[Link](" alta ") Mfin2 else us ‘[Link]. printin(" menor que 5"); Vitin 3 Vifin else ua [Link]("Suspendido”) Vitin a public class ControlCondicional { public static void main(String{l args) { int opcion=4 ;// dato de comparacion [Link](" Se valida el estado civil con [Link] ("ingrese estado civil: 1 casado 2: soltero 3: separado 4; viudo 5: otro :"); ‘Scanner s = new Scanner([Link]); opcion= [Link]();// convierte entrada en entero. String estadocivil switch (opcion ) // valida el estado civil entre 1 y 5 Powered by CamScanner break; eee er eee re es Peo Een } AA a eR cy Cece oRe eg Ce ee cet estado civil entre 1 y 5 : “1 casado 2: PER eC Ein eee Tabla 19 Estructuras de contr { case 0: // valida 0 estadocivil=" no especifica"; break; ‘casado", case 1:// valida 1 estadocivi case 2 : // valida desde el 2 estadocivil="soltero"; break; // indica salto de bloque termina la secuencia case 3: estadocivil=" Separado"; break; break; case 4: —_estadocivil="viudo"; case 5: estadocivil="otro"; break; default: // referencia al caso contrario estadocivil=" Error, la entrada es mayor de 5"; W/ fin del selector System [Link](" E! estado civil seleccionado es :" +estadocivil); }} break; niaic ce Ni kG st 1, Unidad 1 Autoria bntps:/focw-unican.e/[Link]/253/course/section/228/<[Link] CamScanner Las estructuras repetitivas (ciclicas) realizan una determinada actividad o actividades un numero de veces conocido o no establecido dada una condicién. Entre ellas tenemos: ciclo mientra que, ciclo haga mientras que y el ciclo para (while, do-while, for) Estructura de control ciclico: Estructura de control ciclica ees COR Ome ‘while (condicion) { Valida una condicion e ingresa al ciclo ene eed actividad o actividades (es); Cee eed 1 Ceo ui int public class SumaMayor100 { * Realizar una aplicacion que calculeel primer aie tar anu IE a) eer ee is anteriores sea mayor igual que 100 1 1 int suma while (sumax=100 4 ines ssumassumat; 1 ‘[Link]("La suma de i=1,"si+" es "+suma); Hr poco ehca Saas js | CamScanner COR eM cay pres ec eka eC valornumericoinicial: el inicio del ciclo; Cee ecu ea ed Se CM ee utr) Cee te ee oe ae) Peete cee Pee mer ec er ed See ee ue oa ec er Po ocucniny while (condicionlimite) r Een ee ease it Tabla 20 estructura de control ciclico U ‘actividad (es); ‘while (condicion); // observe la condicién termina (;) sintaxis for (valornumericoinical; condicionlimite; expresion- incremento) { actividad (es); } int suma=0; for (int i21; ie=10; +4) { suma=sumati; } int suma-0; int iea; while i<=10) { i++; // esta estructura unaria equivale a i= i+ dad 1 Autor ntps/ocwunican.e/plugnile php/253/course/section/228/caps-algortmos pat El Salto de ciclo: es una érden (palabras reservadas) permite salir o saltar el bloque de actividades (procesos) establecidas dentro de un ciclo, entre los més comunes tenemos break, continue y return. break: - termina el proceso del ciclo. CamScanner continue: - termina las actividades contenidas dentro del ciclo, pero sigue en él return: - termina un método; si estamos dentro del ciclo, sale del ciclo terminandolo. Estructuras de clases La implementacién en un lenguaje de programacién esté ligado a la metodologia puede ser estructurada u objetual las mas comunes para nuestro caso es importante establecer la estructura correcta para describir sus elementos logrando no presentar errores de forma, primero se define un proyecto con su respective identificador y ubicacién en un dispositive ( pc 0 usb) dentro de uno 0 mas paquetes con su identificacién respectiva con el objetivo de agrupar y clasificar la o las clase(s) con sus atributos y métodos se identifica con el primera cardcter en maydscula con el objetivo de estandarizar el nombre, entran otros archivos como los proporcionados por las importaciones respectivas adicionadas al conformar la aplicacién. La clase es un elemento fundamental de la orientacién a objeto, se describen algunos de sus elementos tanto para una clase sin método principal ‘como para una clase con método principal encargado de la ejecucién de la aplicacién en el siguiente cuadro de Estructuras de proyecto y de clases, Estructura de clases: Stetina acre) CR Rene) método main() método main() Paquete import [Link]"; [[zetracd Paquete Importaciones eso uric Lree import [Link].*; public class nombredeclase { Ae ea ey public class Principal { I lista de atributos con tipo public static void main private String nombre; (String {] args) { private int edad; // lista de variables locales // métodos MMlista de objetos si existen public nombredeclase () () /*desarrollo de actividades con public void mostrarnombr (){} | menu de actividades o interfaz*/ Public String capturanombr } } i public static int captura (String public String getNombre (}{}__ | mensaje) {) Public void setNombre (--){}} | public static void mostrar (String mensaje) { [Link](""+#mensaje): Powered by CamScanner a Tabla 21 estructura de un proyecto y una clase en java, Unidad 1, Autoria del outer. La Estructura modular otro elemento fundamental de la metodologla orientada a objetos donde se especifica la accién de la clase, se compone de sels partes, cada una cumple una funcién: la primera el alcance o la visibilidad) puede ser publico o privado, el método que solo sera visto por los elementos de la clase , la segunda el tipo de clase describe sies estatico sea método independiente de la clase en otro caso es un objeto perteneciente a la clase por ende no requiere ser especificado, tercero el tipo de dato de retorno involucra la tipificacién especificando si es tipo de dato nativo 0 tipo clase y caracteriza el método como funcién por tanto debe retornar un dato de igual tipo y seré procedimiento sin retorno sies tipo de dato void (vacio) exclusivamente , cuarto el nombre del método identificador que para el esténdar debe iniciar en mindscula, el quinto la lista de pardmetros entre paréntesis, cada uno si existe debe tener su respective tipo de dato si tiene mas de uno debe separarse cada uno coma ", “'y por ultimo el delimitador de principio y final de bloque en donde se registran las actividades respectivas {} Estructura del método: Poneieep ine Nc Neon cs Pees ee) CC ease Lid BU Rar CL) pee act I) métodos se reccrs 4 public static void main(String(} VECO) Public nombredeclase(){} args) { Series Public void mostrarnom(){} | // lista de variables locales u } abjetos si public String capturanombr()(} existen , actividades con un public String getNombre()(}_ | menu de Public void setNombre(--}(} | actividades o con interfaz } } public static int captura(String public void mostrarnombr(}{} | mensaje){) public String capturanombr(){) | public static void mostrar(String public String getNombre(}} | mensaje}{ public void setNombre Powered by CamScanner package paqueteuno; [Link](""+mensaje); public class Principal {public | }} static void main(String! args) { System, [Link] (" BIENVENIDA" ‘[Link] printin( " Inicia programacion en java"); [Link] printin{ "realizado por ——-A");} } Tabla 22 Estructura de un metodo, Unidad 1, Autora del outer El campo es un identificador de variable con caracteristica especifica de tipo, encargado de separar espacio en memoria, tiene la posibilidad de definirse como agrupador, estableciéndolo como una especie de registro, llegando a una estructura de almacenamiento de datos con la peculiaridad principal de permitir diferentes tipos de datos si es necesario. 2.5 RECURSOS 2.5.1 Documentacién Referenciada Tema Enlace URL Tapedicacion e Paginas o| Instruciones electra 3 _ | [Link] eclipse or Descargar [Link] Eclipse [Link] [Link] 2.5.2. Material adicional Teme Enlace URE Tapediicacin de Piginas 0 Instruciones de lectura 3_| htto:/[Link] Descargar NetBeans Descargas... [Link] [Link] 4 _| [Link] files. [Link]/2010/09/control-de- Control de versiones [Link] 5_| htto://[Link]/pluginfile,php/1042/mod label/intro/2- Estructura del [Link] programa Powered by 2.6 EJERCICIOS DE PROFUNDIZACION Ee ane cc reese aed Cee eee i Cart eo nd Oa eu uted Reece ee ay Preece g Sa) main(String[] args) { A nec SECU una [Link] eu EEL Becca Cree [Link] ("Hasta Poa Py Tabla 23 Profundizar en manejo de mensajes y capture de datos, Unidad 1 Pou Pere ae Dee ced cad Ree Ouse) eee Rue ance package libro javaafondo; import [Link] Scann public class HolaMundoNombre { public static void main(String() args) // Scanner, clase que permite leer datos desde el teclado // mensaje para el usuario Scanner leer;//declara System. [Link]("ingrese su ‘Scanner([Link]); // instancia usa el constructor String nom = [Link](); // muestre un mensaje y el nombre leido ‘[Link]("Hola Mundo: "+ nom}; } } Realice una aplicacién en java, se Pete ee Pores ee M peed et nes eee package libro javaafondo; import [Link]; public class HolaMundoDatos { public static void main(Stringl} ares) // Mensaje para el usuario ‘[Link] print("Ingrese nombre ‘he ‘Scanner scanner = new ‘Scanner([Link]); Jf \eemos el nombre String nom = [Link](); System out print("! leemos la edad it edad= [Link](); ‘[Link]("Ingrese altura: //\eemos la estatura double altura = [Link](); // mostramos datos por ‘[Link](" El Nombre es: " tnom+ "la Edad es: “edad + "la Estatura es: "+altura); }) Powered by CamScanner 2.7 PISTAS DE APRENDIZAJE ustracién 23 Pista para fundamentos de programacién Unidad 1 Autoria: [Link] ‘© Los sistemas no responden a las expectativas de los usuarios. + Los programas “fallan” con cierta frecuencia. “Los costos del software son dificiles de prever y normalmente superan las estimaciones. Normalmente, es dificil cambiar de entorno hardware usando el mismo software Las variables booleanas caracterizadas por tener un solo valor el cual puede ser True o False (verdadero 0 falso) Variables enteras cualquier combinacién de cifras precedidos por el signo mas (opcional), para {0s positivos, o el signo menos, para los negativos. Variables con decimales del tipo float o double (coma flotante) se usan para guardar nimeros ‘en memoria que tienen parte entera y parte decimal. Powered by CamScanner 3 UNIDAD 2. PROGRAMACION ORIENTADA A OBJETOS 3.1 OBJETIVOS 3.1.1 General Aplicar los elementos y caracteristicas de la Programaci6n Orientada a Objetos en ta creacién de productos de software eficientes, robustos y mantenibles en el tiempo. 3.1.2 Especificos ‘+ Identificar los elementos del paradigma de la programacién orientada a objetos. © Describir las caracteris objetos. 15 fundamentales y secundarias de la programacién orientada a + Aplicar los conceptos de clases abstractas e interfaces, realizar ejercicios que permitan el andlisis y la compresi6n de los principales patrones de disefio y su representacién. ‘© Describir los conceptos que permitan manejar los diferentes tipos de errores en el proceso de desarrollo del software. 3.2 RELACION DE CONCEPTOS Ilustracién 24 Relacién de conceptos (mapa conceptual) Unidad 2. Autoria del autor. Programaci6n Orientada a Objetos: forma de desarrollo mas comtin en la actualidad, enfoca en los conceptos relacionados con la realidad (objetos), caracterizada por la reuttlizacién de codigo. Powered by Elementos de POO: metodologia que maneja los siguientes componentes objetos, clases, herencias, jerarquia, ocultamiento, interfaces y a paquetes. Clase: es un proceso abstracto, una plantilla (molde) donde se crean y administran objetos. Objeto: es una entidad fundamental de la programacién orientada a objeto contiene pardmetros y atributos que interactua directamente con los métodos. Método: es el algorit mo, secuencia de instrucciones lgicas asociadas al objeto, es identificable y define el comportamiento que se desea aplicar para el desarrollo sobre el objeto. Evento: sucesos generados para crear un objeto, ocasionados por un usuario en una interfaz grafica, Mensaje: comunicacién dirigida 2 un objeto Caracteristicas de la POO: especifican los elementos diferenciadores de la metodologia con respecto aotra. Elementos principales: (fundamentales) son excluyentes permiten diferenciar especificamente la metodologia 00 de la procedimental. Elements secundarios: son no excluyentes presentes en diferentes paradigmas metodologicos, fortalecen (aportando y respaldando) especialmente con los tipos de datos nativos y los de clase. Paquetes: estructuras que agrupan clases caracterizadas por su gran organizacién, su capacidad para incorporar el modularidad, el ocultamiento, calidad e integridad al desarrollo de software. Clases abstractas: objeto real o abstracto susceptible de programar, con atributos y métodos, tiene minimo un método abstracto. Interfaz: agrupacién de métodos abstractos con propiedades constantes donde se dice el que hacer, ero no el como se realiza la funcionalidad ademas es no instanciable. Excepciones: controlador de interrupciones (situaciones anémalas), valida errores en el desarrollo de la aplicacién su uso tiene mayor efecto en el flujo de datos. Tipos de excepciones: las comprobadas (checked) al momento de compilar el método controlada por el desarrollador y las no comprobadas (unchecked) situacién excepcional producidas en el método y detiene la ejecucidn de la aplicacién. Powered by 3.3 PRESENTACION DE LA UNIDAD Se darén a conocer los diferentes elementos del paradigma de la Programacién Orientada a Objetos (POO) como clases, objetos, atributos, métodos, visibilidad de elementos, entre otros. Se crearén aplicaciones que permitan solucionar problemas del mundo real. Junto con los elementos, las caracteristicas o pilares, de la Programacién Orientada a Objetos, permiten desarrollar productos de software complejos a’ manteniendo el cédigo mas claro y cercano a como se expresarfan los ‘objetos y su comportamiento en la vida real. En el paradigma POO es conveniente el uso de clases abstractas cuando se esté disefiando una jerarquia de clases, se usan como base de dicha Jerarquia ya que de ellas se pueden heredar sus elementos, pero nose pueden instanciar. La interfaz se utiliza para disefiar elementos abstractos con solo sus procedimientos siendo un factar comtin entre objetos que no tengan relacion, Tlustracién 25 Presentacién de la Con las excepciones se realizaran explicaciones y ejercicios que validen los diferentes tipos de errores de sintaxis semanticos que pueden ser detectados y corregidos en el proceso de desarrollo del software 3.4 DESARROLLO TEMATICO 3.4.1 Tema 1. Elementos de la programacién orientada a objetos ORIENTADA A OBJETOS Ilustracién 26 Descripcién gréfica de Programacién Orientada a Objetos Unidad 2. Autoria: buapsL/dev to/ushiecu/orogramacion-orentada-a-obietospa0-3f) Programacién Orientada a Objetos: Powered by CamScanner Esla forma de desarrollo mas comiin en la actualidad, se inicié a finales de los afios 80's, y sigue vigente por su gran cantidad de herramientas, su principal caracteristica es la reutilizacién de cédigo, situacién que permite hacer de la programacién mas corta y eficiente que cualquier otro método de desarrollo. La programacién orientada a objetos en java introduce 2 objetos, clases, herencias, jerarquia, ocultamiento, interfaces y a paquetes. Se enfoca en los conceptos relacionados con la realidad, simulténeamente aporta la introduccién para la aplicacién del lenguaje de programacién de java. Tustracién 27 Programacién Orientada aObjetos en java Unidad 2. Autorfa: mponentes-de-asgrogramacon-orenta-obisasBsnsf-APaWBASEAWSHDALC IducT&7EOY ud Componentes de la programacién orientada a objetos: La programacién orientada a objetos es una metodologia que para su correcto uso debe conocer los conceptos basicos y la aplicacién de sus componentes, dentro de los cuales podemos mencionar. Ilustracién 28 Componentes de la Programacién Orientads a Objetos en java Unidad 2. Autori Powered by @ Camscanner https: //[Link]/arogramacinovientade-s-obistos-concepte-pos-formaud [Link] /ideo 4 Programacién Orlentada 2 Objetos Unidad 2 Clase: es un proceso abstracto, una plantilla (molde) donde se crean y administran objetos, se determina cuales caracteristicas y procedimientos debe tener dentro de la programacién orientada a objetos, contiene recursos y distribuye los procesos de manera adecuada Recursos y procesos en la POO: Cea Pence) Clase Computador | public class Computador { String procesador , color; Atributos: int memoriaRam , pantalla; String procesador, | double discoDuro; al ‘/{ método constructor tiene el mismo nombre de intmemoriaRam, | ja clase inicializa cada uno de los atributo pantalla; public void computador (){ double discoDuro; | [Link] = “Pentium dual core”; [Link] = “Azul"; [Link]= 1; //TB this. memoriaRam = 4; //GB [Link] = 12; //pulgadas } ‘// sobrecarga el constructor entra Datos desde el exterior Powered by CamScanner Cond Porn Herencia (sub clase) almacenar(): public void Computador String procesador , String mostraDatos() color, int memoriaRam , int pantalla,double discoDuro) { [Link] = procesado; [Link] = color; [Link]= discoDuro; [Link] pantalla; [Link] = memoriaRam; } public void mostrarDatos(.{} public void encender ( public void pagar (){} public void almacenar ( procedimiento generar objetos en el método main. public static void main(String] ares) ( Los mismos métodos | // se instancia la clase computador, crea el objeto de la clase son ‘Computador Laptop = new Computador ‘ocupados con (“Pentium dual core”, “Rojo”, 1, 4, 12) ; //Laptop propiedades cada uno (Polimorfismo). | // nueva peticién de espacio en memoria en /fcomputador, se crea el otro objeto Servidor Existe comunicacién | Computador Servidor = new Computador entre los objetos por | ("intel xeon E7°,"Azul” , 64, 6, 15); //servidor medio de los ‘[Link]("Se crean 2 PC(abjetos): " ); métodos. [Link](" datos de objeto Laptop son "+ Laptop ); System. out printin("los datos del Servidor) * }; Los abjetos [Link] printin comparten los ("el procesador "+ [Link] + atributos y métodos, | " el color es "+ [Link] + pero sus valores son | "el disco duro es de "+ [Link] + Independientes, "la memoria Ram es "+ [Link] + (Encapsulacién) " y la pantalla mide r "+ [Link] }; } La clase Tableta hereda de la clase Computador atributos y métodos, agrega sus propios métodos y atributos (disminuye la Redundancia ) re eee CamScanner public class Tableta extends Computador Clase Tableta { String camara, microfono; Atributos: double bluetooth; String camara, micréfono, bluetoot! public void Tableta () { this. camara="Oled"; eee this, microfono =" Smart”; Tableta() pantallaTactil(): reconocerhuella() public class Celular extends Computador { String camarafrontal, sensorproximidad; Clase Celular Atribut String _camarafron} public void Celular (){ sensorproximidad; | this. camarafrontal= "Axon 30 5G"; [Link] =" Inductivo”; Métodos: } Celular) } pantallaTactil(); reconocerhuella validarproximidad(); josie | Clase Consolav3uet) public class ConsolaVjuego extends Celular, Tableta { [Atibutos: ‘Suing tsositnv: | String dispositive, control ; ‘String control; corns public void ConsolaVjuego () { Métodos: this. dispositivo= "Xbox o bluray”; ‘ConsolaVivexoO this. control=" interfaz usuario”; pantallaTactil0; ) reconocendispositivo0 validareoatroladorO; | Corey Tac} Tabla 24 algunos Componentes de la Programacian Oa O. {implemetacign de la clase) Unidad 2, Autor hnttess/acortarlink/HCVUB4 Powered by CamScanner Objeto: es una entidad fundamental de la programacién orientada a objeto contiene pardmetros y atributos que interactia directamente con los métodos, esta reacciona al evento, se caracteriza por tener un conjunto de caracteristicas y acciones que lo hacen unico dentro de la programacién, Atributo: son caracteristicas y comportamientos almacenados en el objeto, datos nativos u objetos, tienen un estado diferente determinado por los valores obtenidos en un tiempo y espacio especifico. Método: es el algoritmo, es la secuencia de instrucciones légicas asociadas al objeto, es identificable y define el comportamiento que se desea aplicar para el desarrollo sobre el objeto. puede acceder y modificar las caracteristicas contenidas en el objeto, Mensaje: es la comunicacién dirigida a un objeto, indica que se invoquen los métodos con los pardmetros asociados a él. Encapsular: Es la manera como el objeto almacena la informacién y la procesa procurando que los diferentes cambios de estado solamente los realicen los métodos propios y ningtin externo lo altere. Basicamente abstrae al usuario de las modificaciones internas y conserva la integridad del objeto, Polimorfismo: es lz posibilidad de que un aplicativo contenga varias clases, y cada una de estas tenga métodos con el mismo nombre, con distintos pardmetros y funcionalidad. Es una de las ventajas de la POO donde un método puede ser utilizado por diferentes clases, pero de manera diferente. Sobrecarga: es la posibilidad de que una clase tenga varios métodos con el mismo nombre y distinta cantidad de parametros o funcionalidad. Herencia: es la herramienta por la cual se pueden “compartir” procesos, atributos y objetos con el fin de optimizar la funcionalidad de una nueva clase partir de una existente. El objeto de la nueva clase aprovecha caracteristicas y comportamiento de la clase padre y define e implementa las propias. La herencia proporciona un poderoso mecanismo natural para la organizacién y estructuracién de su software, distintos objetos comparten atributos y métodos que hacen aproximadamente lo mismo. Todo lo que es comtin a ambas clases queda comprendido en la clase “superior”, mientras lo que es especifico, queda restringido ala clase “inferior”. El ejemplo define una clase denominada Computador, de forma que la clase Tableta tome todas las propiedades de la clase computador, més algunas propiedades y métodos especificos. Lo mismo ‘ocurriria con otras que pudieran “heredar” de Computador. Para declarar la herencia usamos la palabra clave extends, public class MiClase2 extends Miclasel. Ejemplo: -public class Computador extends Tableta. Si quisiéramos podriamos escribir para todas las clases public class NombreDeLaClase extends Object, En Java los tipos nativos, no son instancias de clase, y por tanto no heredan de la superctase Object. Powered by

También podría gustarte