Enviar búsqueda
Cargar
CursoFundeweb2-basico (1).ppt
•
Descargar como PPT, PDF
•
0 recomendaciones
•
3 vistas
M
miguel checa
Seguir
EDUCACION
Leer menos
Leer más
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 76
Descargar ahora
Recomendados
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
RolitoChc1
Curso de Fundeweb2 desde cero a experto con ejemplos.ppt
Curso de Fundeweb2 desde cero a experto con ejemplos.ppt
RolitoChc1
Trabajo Netframework en una computadora.pptx
Trabajo Netframework en una computadora.pptx
RonaldHB1
CURSO INTENSIVO C#.pptx
CURSO INTENSIVO C#.pptx
haycos
Presentacion cw2012
Presentacion cw2012
Alberto Garrido
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
glfloresgilberto
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
Robert Rayco Quiroz
Curso Java con Rational para WebSphere
Curso Java con Rational para WebSphere
camforma
Recomendados
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
RolitoChc1
Curso de Fundeweb2 desde cero a experto con ejemplos.ppt
Curso de Fundeweb2 desde cero a experto con ejemplos.ppt
RolitoChc1
Trabajo Netframework en una computadora.pptx
Trabajo Netframework en una computadora.pptx
RonaldHB1
CURSO INTENSIVO C#.pptx
CURSO INTENSIVO C#.pptx
haycos
Presentacion cw2012
Presentacion cw2012
Alberto Garrido
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
glfloresgilberto
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
Robert Rayco Quiroz
Curso Java con Rational para WebSphere
Curso Java con Rational para WebSphere
camforma
Modulo Jee Intro Pos Fp Une
Modulo Jee Intro Pos Fp Une
Marcos Jara
Ionic y angular.js
Ionic y angular.js
GDG Cali
Defensa proyecto fin de carrera
Defensa proyecto fin de carrera
Borja Merino
Iis daw taller_1.1-ta-herramientas-para-desarrollo-web (rodriguez a. - rodrig...
Iis daw taller_1.1-ta-herramientas-para-desarrollo-web (rodriguez a. - rodrig...
Xthian Vidal Cortez
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
MarvelNanosoft
Practicas java
Practicas java
Vicky Yánez
Mi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de Preferencia
Nelson Rivera
Mi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferencia
Nelson Rivera
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
Jacob
Web services1
Web services1
ANDRES FELIPE CRUZ ERAZO
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
Adrian Diaz Cervera
Fundamentos de Java
Fundamentos de Java
jmosorio777
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
Esteban Saavedra
Tecnologías Semánticas sobre Drupal: Caso Recursos Educativos Abiertos
Tecnologías Semánticas sobre Drupal: Caso Recursos Educativos Abiertos
Alexandra González
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQL
Antonio García-Domínguez
Mejores a nuestros proyectos de Software
Mejores a nuestros proyectos de Software
Jose Luis Bugarin Peche
Software en la actualidad
Software en la actualidad
Raelyx Cordero
Presentación ingeniería web
Presentación ingeniería web
JORGE MONGUI
Ingenieria web
Ingenieria web
Mirsha01
JAVA (1).PPT
JAVA (1).PPT
miguel checa
Java2-Clases.ppt
Java2-Clases.ppt
miguel checa
Más contenido relacionado
Similar a CursoFundeweb2-basico (1).ppt
Modulo Jee Intro Pos Fp Une
Modulo Jee Intro Pos Fp Une
Marcos Jara
Ionic y angular.js
Ionic y angular.js
GDG Cali
Defensa proyecto fin de carrera
Defensa proyecto fin de carrera
Borja Merino
Iis daw taller_1.1-ta-herramientas-para-desarrollo-web (rodriguez a. - rodrig...
Iis daw taller_1.1-ta-herramientas-para-desarrollo-web (rodriguez a. - rodrig...
Xthian Vidal Cortez
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
MarvelNanosoft
Practicas java
Practicas java
Vicky Yánez
Mi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de Preferencia
Nelson Rivera
Mi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferencia
Nelson Rivera
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
Jacob
Web services1
Web services1
ANDRES FELIPE CRUZ ERAZO
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
Adrian Diaz Cervera
Fundamentos de Java
Fundamentos de Java
jmosorio777
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
Esteban Saavedra
Tecnologías Semánticas sobre Drupal: Caso Recursos Educativos Abiertos
Tecnologías Semánticas sobre Drupal: Caso Recursos Educativos Abiertos
Alexandra González
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQL
Antonio García-Domínguez
Mejores a nuestros proyectos de Software
Mejores a nuestros proyectos de Software
Jose Luis Bugarin Peche
Software en la actualidad
Software en la actualidad
Raelyx Cordero
Presentación ingeniería web
Presentación ingeniería web
JORGE MONGUI
Ingenieria web
Ingenieria web
Mirsha01
Similar a CursoFundeweb2-basico (1).ppt
(20)
Modulo Jee Intro Pos Fp Une
Modulo Jee Intro Pos Fp Une
Ionic y angular.js
Ionic y angular.js
Defensa proyecto fin de carrera
Defensa proyecto fin de carrera
Iis daw taller_1.1-ta-herramientas-para-desarrollo-web (rodriguez a. - rodrig...
Iis daw taller_1.1-ta-herramientas-para-desarrollo-web (rodriguez a. - rodrig...
01_ppt_introduccion_spring_mmmmmmmmm.pdf
01_ppt_introduccion_spring_mmmmmmmmm.pdf
Practicas java
Practicas java
Mi Lenguaje de Programacion de Preferencia
Mi Lenguaje de Programacion de Preferencia
Mi lenguaje de programacion de preferencia
Mi lenguaje de programacion de preferencia
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
Web services1
Web services1
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desar...
Fundamentos de Java
Fundamentos de Java
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
Tecnologías Semánticas sobre Drupal: Caso Recursos Educativos Abiertos
Tecnologías Semánticas sobre Drupal: Caso Recursos Educativos Abiertos
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQL
Mejores a nuestros proyectos de Software
Mejores a nuestros proyectos de Software
Software en la actualidad
Software en la actualidad
Presentación ingeniería web
Presentación ingeniería web
Ingenieria web
Ingenieria web
Más de miguel checa
JAVA (1).PPT
JAVA (1).PPT
miguel checa
Java2-Clases.ppt
Java2-Clases.ppt
miguel checa
Plan-de-negocio-de-restaurante.pdf
Plan-de-negocio-de-restaurante.pdf
miguel checa
5.metodos-funciones_alumnos.pdf
5.metodos-funciones_alumnos.pdf
miguel checa
__Aprende_de_agilismo_.pdf
__Aprende_de_agilismo_.pdf
miguel checa
Historia de Instagram Restaurante Comida Italiana Versus Rasgado Tradicional ...
Historia de Instagram Restaurante Comida Italiana Versus Rasgado Tradicional ...
miguel checa
IngresoyTrabajo-HerramientaZoom.pptx
IngresoyTrabajo-HerramientaZoom.pptx
miguel checa
Más de miguel checa
(7)
JAVA (1).PPT
JAVA (1).PPT
Java2-Clases.ppt
Java2-Clases.ppt
Plan-de-negocio-de-restaurante.pdf
Plan-de-negocio-de-restaurante.pdf
5.metodos-funciones_alumnos.pdf
5.metodos-funciones_alumnos.pdf
__Aprende_de_agilismo_.pdf
__Aprende_de_agilismo_.pdf
Historia de Instagram Restaurante Comida Italiana Versus Rasgado Tradicional ...
Historia de Instagram Restaurante Comida Italiana Versus Rasgado Tradicional ...
IngresoyTrabajo-HerramientaZoom.pptx
IngresoyTrabajo-HerramientaZoom.pptx
Último
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Demetrio Ccesa Rayme
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
Integrated Sciences 8 (2023- 2024)
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
gimenanahuel
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
MaryRotonda1
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
DANNYISAACCARVAJALGA
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo para evento
DiegoMtsS
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Demetrio Ccesa Rayme
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Fundación YOD YOD
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
Lourdes Feria
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
stEphaniiie
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
MaritzaRetamozoVera
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
Flor Idalia Espinoza Ortega
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
AndreRiva2
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
Alejandrino Halire Ccahuana
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
lclcarmen
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
Ana Fernandez
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
lclcarmen
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
auxsoporte
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
José Luis Palma
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
Baker Publishing Company
Último
(20)
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo para evento
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
CursoFundeweb2-basico (1).ppt
1.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Curso de introducción a Fundeweb
2.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • Proceso de desarrollo con Fundeweb • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces, implementaciones y herencia • Punteros y referencias • Polimorfismo • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación. • Javadoc
3.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. ¿Qué es Fundeweb? • Framework de desarrollo de aplicaciones J2EE diseñado por MNCS y con inicio en el año 2008. • Facilita el proceso de desarrollo de software. • Abstrae a los programadores de las dependencias de las tecnologías que se usan. • Provee de un conjunto de facilidades que adaptan el desarrollo a las características del Framework. • Abstrae de la base de datos sobre la que se trabaja. • Automatiza las tareas de despliegue de proyectos.
4.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. ¿Qué es Fundeweb? • Automatiza el despliegue en servidores de desarrollo y/o producción. • Provee ayudas para el control de calidad y supervisión de código. • En resumen: • Fundeweb es un framework de desarrollo de aplicaciones que facilita a los programadores la gestión y despliegue de proyectos. • Incorpora un conjunto de tecnologías suficientes para el desarrollo de aplicaciones J2EE.
5.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. ¿Qué tipo de aplicaciones desarrolla? • Aplicaciones J2EE. • Uso del patrón MVC. • Aplicaciones de ServiciosWeb. • Capa de servicios. • Sin interfaz gráfica. • Aplicaciones de EJB. • Capa de servicios. • Sin interfaz gráfica. • Aplicaciones J2EE + ServiciosWeb + EJB • Combinación de anteriores.
6.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • Proceso de desarrollo con Fundeweb • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces y herencia • Punteros y referencias • Polimorfismo • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación. • Javadoc
7.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse • IDE de desarrollo de aplicaciones. • Basado en un core y un paquete de extensión o plugins. • Eclipse se puede adaptar mediante la instalación de plugins a diferentes lenguajes de programación. • Concentra toda la funcionalidad necesaria para que los programadores desarrollen sus proyectos. • Contiene un gestor de plugins que permite instalar nuevos o actualizar los existentes.
8.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse: Plugins • Maven: https://maven.apache.org/ • Permite la gestión de las librerías que requiere el proyecto. • Especifica cuando se deben cargar las librerías: • En Compliación. • En runtime. • En test. • No cargar: existente en el servidor de antemano. • Gestiona la construcción de proyectos. • Requiere tener acceso a un repositorio Maven donde buscar las dependencias del proyecto.
9.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse: Plugins • Subclipse: • Cliente de Subversion para eclipse. • Permite comparaciones entre ficheros locales y del servidor SVN. • Ayuda a la resolución de conflictos entre ficheros desincronizados. • Visualiza de manera rápida las diferencias entre nuestro contenido local y el del repositorio.
10.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse: Plugins • Ant: http://ant.apache.org/ • Nos permite ejecutar tareas concretas para manejar nuestros proyectos. • Puede interactuar con todos los componentes de nuestro entorno: • Código fuente • Servidores • Test • Creadas tareas Ant en Fundeweb para automatizar tareas de despliegue y empaquetados de proyectos.
11.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse: Plugins • TestNG: • Framework de testing para Java. • Basado en Junit (realización de pruebas unitarias). • Permite paso de parámetros. • Nos permite comprobar que nuestro código hace lo que debe. • Permite Cubrir todo tipo de pruebas: • Unitarias. • Funcionales. • End-to-end. • Integración. • Etc…
12.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse: Plugins • CheckStyle: • Permite chequear si el código programado tiene defectos de forma. • Comprueba: • Que se programa de acuerdo a estándares. • Que el código producido sea eficiente. • Que los comentarios sean correctos y adecuados. • Que el código sea legible para otros desarrolladores.
13.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Eclipse: Plugins • FindBugs: • Chequea el código generado para prevenir errores en tiempo de ejecución. • Para ello hace uso de patrones de error buscando en el código las ocurrencias de los mismos. • Algunos ejemplos de comprobaciones: • Null pointers. • Clases no serializables cuando el contexto requiere que se serialicen. • Posibles divisiones por cero. • Comparaciones entre clases que no sobrescriben equals. • Etc…
14.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • Proceso de desarrollo con Fundeweb • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces y herencia • Polimorfismo • Punteros y referencias • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación. • Javadoc
15.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Servidor Weblogic • Oracle WebLogic es un servidor de aplicaciones Java EE y HTTP. • Desarrollado originalmente por BEA y comprado posteriormente por ORACLE. • Compatible con cualquier base de datos que se ajuste al estándar JDBC. • Integra un portal web de gestión integral de los diferentes componentes. • Provee plugins para Eclipse para el despliegue de aplicaciones.
16.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • Proceso de desarrollo con Fundeweb • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces y herencia • Punteros y referencias • Polimorfismo • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación. • Javadoc
17.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Proceso de desarrollo con Fundeweb • Fundeweb como framework J2EE requiere una serie de estructuras para agilizar su uso. • En ATICA hay establecidas metodologías para dirigir el desarrollo de aplicaciones J2EE • Existen herramientas para gestionar el código y mejorar su calidad. • Podemos ver una explicación más detallada en: Estructura J2ee Atica
18.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • Proceso de desarrollo con Fundeweb • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces y herencia • Punteros y referencias • Polimorfismo • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación. • Javadoc
19.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • La programación orientada a objetos se basa, como su nombre dice, en el concepto “Objeto” pero ¿qué es un objeto? • Es una “entidad” con significado propio en el sistema que tiene propiedades y es capaz de realizar funcionalidad por sí sola. A la estructura de esa entidad se la conoce como “clase”. • Un sistema, a su vez, está compuesto por objetos que interactúan entre sí. • Las propiedades de un objeto son los atributos que lo definen. • Al estado de un objeto en un instante dado se le suele llamar instancia (aunque a veces se refieren simplemente como objeto).
20.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • Veamos un ejemplo y modelemos un alumno. • Lo primero es saber qué propiedades tiene un alumno: • Nombre, apellidos, DNI, etc. • Una vez definida las propiedades decidamos qué puede hacer un alumno sobre él mismo: • Cambiar sus datos personales, aumentar su edad, etc. • Tras tener claro qué representa un alumno definimos su relación con otros objetos: • Un alumno tiene una o varias matrículas. • Un alumno tiene una beca.
21.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • El resultado quedaría así: Tiene Nombre Apellidos Dirección Teléfono Dni - Propiedades simples. - Definen el objeto. Contiene Matrículas Becas Cursos - Propiedades relacionales. - Definen las relaciones del objeto con otros objetos. Puede Cambiar nombre Cambiar teléfono Añadir Curso Añadir Titulación - Funcionalidad que puede hacer el alumno con sus datos. Clase Alumno
22.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • Ejercicio: Modelar una titulación 1. ¿Qué propiedades simples tiene una titulación? 2. ¿Qué propiedades relacionales tiene? 3. ¿Qué puede hacer una titulación con sus datos? • Para modelar nuestros diagramas utilizaremos • Supongamos que una titulación pertenece a un centro y contiene varias asignaturas.
23.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • Ejercicio: Modelar una titulación • El resultado podría ser similar al siguiente
24.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • Mediante la definición de clases especificamos las estructuras que gestiona nuestra aplicación. • Una clase es sólo el esquema. Cuando esa clase se concreta en unos datos que representan una entidad pasa a llamarse instancia u objeto. • Basado en el ejemplo anterior: • Alumno es una clase. • El alumno Manuel Pérez con DNI:11223344R es una instancia de la clase alumno. • Las aplicaciones en ejecución manejan instancias. Las clases definen la estructura para crear nuevas instancias.
25.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • No todos los objetos tienen como función representar entidades. • Un objeto puede actuar como: • Modelo de datos de una entidad (Alumno) • Controlador de la aplicación (gestiona las relaciones entre objetos, lanza acciones, etc.) • Intermediario con el usuario (captura los datos introducidos al usuario y lo traduce en objetos del modelo o en acciones del controlador. • Esta estructura se corresponde con parte del patrón MVC (Modelo Vista Controlador) que veremos en la sección de patrones de diseño.
26.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Programación Orientada a Objetos • Así pues la programación orientada a objetos se basa en: • Definición de las estructuras (clases) que implementarán la aplicación. • Definición de las relaciones y funcionalidades de esas estructuras. • En tiempo de ejecución esas estructuras se usarán de plantilla para crear instancias. • Las instancias serán las encargadas de realizar las funcionalidades de la aplicación.
27.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Lenguaje de programación Java • Lenguaje de programación orientado a objetos. • Diseñado para tener las mínimas dependencias con una implementación concreta. • El objetivo es programar para cualquier dispositivo independientemente de su arquitectura. • Las aplicaciones java se ejecutan sobre una máquina virtual (JVM) instalada en cada dispositivo. • Actualmente Java es uno de los lenguajes de programación más extendidos cubriendo el ámbito: Web, móvil y de aplicaciones de escritorio. • Importante: Java es sensible a mayúsculas y minúsculas por lo que no es lo mismo “Hola” que “hola”.
28.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Java nos permite organizar el código (ficheros) en lo que denomina paquetes. • En cada fichero deberemos poner en la primera línea y de manera obligatoria a qué paquete pertenece. • Esta estructura es simbólica y la decide el desarrollador. • El nombre del paquete ha de coincidir con la ruta en disco de la carpeta que contiene al fichero. Esta ruta será relativa al proyecto.
29.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Un paquete es una manera de agrupar conceptualmente clases que tienen un comportamiento o filosofía común. • Permiten identificar módulos dentro de una aplicación y agrupar características en un conjunto de paquetes. • Algunas propiedades de Java nos permiten aplicar características sobre un paquete determinado, lo que afecta a todos los ficheros que referencia. • En disco, un paquete es simplemente una carpeta que contiene ficheros (otros paquetes o clases)
30.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código
31.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Los tipos de datos primitivos en Java son
32.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Los tipos de datos no primitivos, pero que provee Java son
33.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Java provee de un tipo de dato especial llamado enumerado. • Este tipo de dato contiene una lista fija de valores, no variable. • Se suele emplear cuando entre conjuntos de datos del mismo tipo iguales queremos representar un subtipo o bien un estado. • Este tipo de dato se da de alta de la siguente manera public enum AuthenticationType { RADIUS, SSO, CARNE, DNI }
34.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Java permite que nos podamos crear nuestros propios conjuntos de tipos de datos de manera indefinida. • Es responsabilidad del programador analizar y decidir qué debe ser un tipo de dato y qué no. • Normalmente, los tipos de datos que queramos crear, representarán entidades de nuestra aplicación o bien un registro de base de datos. • Estos “tipos de datos” toman entidad propia en Java llamándose clases.
35.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tipos de datos y organización de código • Los operadores Java son: • Operadores Aritméticos: • + - * / • Operadores Incrementales • ++ -- += -= • Operadores Relacionales • > < >= <= != == • Operadores lógicos • && • || • ! • Operador de concatenación de cadenas • +
36.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Estructuras de control • Iteradores: • For, while, Iterator • For(int i=0;i<10;i++){} • While(condicion){} • Iterator.hasNext(); Iterator.next(); • Sentencias de control: • If(..) {} else{} • Switch(valor){case 0: break; case 1: break; …}
37.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Clases: • Define todas las propiedades concretas de una entidad que queremos modelar. • Agrupa toda la funcionalidad (métodos) que podemos ejecutar sobre esa entidad. • Define relaciones entre entidades diferentes. • Han de tener un método especial llamado "constructor" encargado de inicializar las instancias basadas en la clase.
38.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Una variable se define de la siguiente manera: • Ámbito (calificativos) tipoDeDato nombre: private int numero; • El ámbito puede ser: • public: accesible por cualquier otra clase de la aplicación. • private: sólo accesible dentro de la clase en la que se declara. • protected: accesible por todas las clases que estén en el mismo paquete. Si no se indica ámbito este es el por defecto. • Los calificativos (opcionales): • static: se podrá acceder sin necesidad de que la clase esté creada. • final: no se podrá modificar el valor. Se deberán inicializar en su declaración.
39.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Un método se define: • Ámbito tipoDeDatoRetorno nombreMetodo(variables){} • public int suma(int numero1, int numero 2){} • El ámbito puede ser: • public: accesible por cualquier otra clase de la aplicación. • private: sólo accesible dentro de la clase en la que se declara. • protected: accesible por todas las clases que estén en el mismo paquete. Si no se indica ámbito este es el por defecto. • Los métodos que no devuelven valor deben tener como tipo de dato de retorno “void”.
40.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Un ejemplo: package action.vehiculos; public class Coche { private int puertas; private String modelo; private String matricula; private boolean tieneSeguro; public Coche() { } public int getPuertas() { return puertas; } public void setPuertas(int puertas) { this.puertas = puertas; } Nos indica a qué conjunto de clases pertenece Inicio de la definición de la clase "Coche" Propiedades de la clase coche Constructor de la clase coche (vacío) Método para obtener el parámetro "puertas" Método para asignar valor al parámetro "puertas" Importante: Java es "case sensitive" por lo que no será lo mismo “coche” que “Coche.”
41.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Nomenclartura: • Las clases siempre empiezan por mayúsculas. • Los nombres pueden contener letras y números pero siempre han de empezar por letra y no se recomienda el uso de números. • Los métodos y variables siempre empiezan por minúsculas. • Cuando un nombre contenga varias palabras, no se usan ni espacios ni guiones para separar, se pone la siguiente letra en mayúsculas • public void generar_resultado() ¡Incorrecto! • public void generarResultado() ¡Correcto! • Adaptarnos a los estándares permite que las herramientas de terceros funcionen correctamente sobre nuestro código.
42.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Una clase es la definición de una entidad junto con todos sus propiedades y acciones posibles. • Una instancia u objeto es cuando esa definición se transforma en una entidad concreta. Contiene por lo tanto los valores y el estado de una clase en un instante determinado. public class Coche{ private int puertas; private int tipoCombustible; … } Coche{ puertas = 5; tipoCombustible=“diesel”; } Ejemplo de clase Instancia de la clase
43.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Una clase puede contener variables que sean otras clases. • Desde una clase se puede llamar a los métodos de cualquier otra clase, siempre que se tenga una instancia. • Existen objetos especiales, llamados colecciones que forman listas de objetos, permitiendo recorrerlas y almacenar en memoria sus elementos. • Programando definimos las clases. En ejecución se accede a instancias.
44.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases e instancias • Ejercicio: Modelar el siguiente diagrama en Java
45.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Interfaz: • Una interfaz pretende definir un "índice" de métodos que deben implementar las clases que quieran ser consideradas acorde a esa interfaz. • Es una clase especial que sólo contiene una definición de métodos. • Sólo se incluye el encabezado de los métodos, no su contenido. • Una interfaz representa algo más genérico que una clase concreta. • Define el comportamiento que debe tener un objeto que se ajuste a ella.
46.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Implementación: • Se dice que una clase implementa a una interfaz, cuando dicha clase contiene todos los métodos que define la interfaz. • La clase está obligada a cumplir con toda la funcionalidad que expone la interfaz. • Una clase puede implementar más de una interfaz a la vez. • Para indicar que una clase implementa una interfaz se especifica poniendo "implements NombreInterfaz" en el encabezado de la clase.
47.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Resumiendo: • Una interfaz representa un conjunto de funcionalidades. • Los objetos que quieran implementar esa interfaz se comprometen a cumplirla. • Su principal uso es: • Como API de servicios (EJB, ServiciosWeb). Usado para publicar los métodos que tiene. • Asegurar que objetos de diferente tipo tienen un comportamiento común para una determinada funcionalidad.
48.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Veamos un ejemplo: • Tenemos una clase “Decorador” cuya funcionalidad es decorar objetos. Pintar, poner adornos, etc. • Si tenemos objetos diferentes: coches, casas, lienzos. La clase decorador tendría que tener un método diferente para cada uno de ellos. • public void pintar(Coche miCoche) • public void pintar(Casa miCasa) • public void pintar(Lienzo miLienzo) • El objetivo es que Decorador pueda decorar cualquier clase de objeto sin tener que preguntarse de qué objeto se trata.
49.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Veamos un ejemplo: • Para poder tratar los objetos de manera genérica creamos la interfaz “Decorable” y hacemos que los objetos Casa, Coche y Lienzo la implementen. • OJO: Cada uno la implementará “a su manera” pero de cara a la clase Decorador será un único método. • Un objeto que implementa una interfaz, puede identificarse con el nombre de esa interfaz en vez del de la clase real. • public void pintar(Decorable miObjetoDecorable) • Al llamar a este método en cada objeto se llamará a su método “pintar”.
50.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Ejemplo: package action.interfaces; public interface Vehiculo { public boolean tieneSeguro(); public void recorreDistancia(int numKilometros); public double getCombustibleRestante(); } Nos indica a qué conjunto de clases pertenece Inicio de la definición de la interfaz "Vehiculo" Definición de un métodos
51.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Herencia: • Cuando una clase hereda de otra, obtiene todas sus propiedades y métodos. • La clase "hija" puede: • Definir nuevas propiedades y métodos propios. • Redefinir los métodos heredados de la clase "padre". • Una clase sólo puede heredar de una única clase padre. Java no posee herencia múltiple como C++ y otros lenguajes. • Cuando una clase hereda de otra se indica poniendo "extends NombrePadre" en el encabezado de la clase hija.
52.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Herencia: • La herencia establece una jerarquía entre clases. • Para detectar si necesitamos herencia basta con preguntarse si una clase “es un (otra clase)”. • Un coche es un vehículo de motor que es un vehículo. • En este ejemplo vemos no sólo la relación entre las clases sino la jerarquía entre ellas. • Cada clase en cada nivel de herencia debe tener unas características propias que no tenga el padre.
53.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Herencia: • Llamamos sobrescribir cuando una clase hija quiere modificar el comportamiento de un método de la clase padre. • Este comportamiento sólo se aplicará en las instancias de esa clase y sus descendientes. • La sobrescritura tiene sentido si la clase hija tiene peculiaridades que hagan que ese método deba ejecutar acciones adicionales. • Para sobrescribir utilizaremos el mecanismo de anotaciones que consiste en poner @Override justo encima de la definición del método. • El método de la clase hija ha de tener la misma definición que el de la clase padre. • En caso de no sobrescribirse un método, se ejecutará el de la clase padre.
54.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Herencia: • Desde una clase hija podemos llamar a los métodos de una clase padre, para ello utilizaremos el comando super() • Ejemplo: super().echarGasolina(); • A diferencia de las interfaces no estamos obligados a implementar todos los métodos de la clase padre (salvo para las clases abstractas). • La herencia requiere de una relación directa entre las clases. Establece por tanto una definición del modelo de datos. • Al igual que las interfaces, permiten acceder a una clase a través de su padre en vez de la propia clase. • public void pintar(Decorable miPadre)
55.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Ejemplo: • Definimos la clase vehículo como: • Propiedades: tipo, peso, capacidad (personas). • Métodos: recorrerDistancia(). • Definimos dos clases hijas: vehículo motor, vehículo sin motor: • Vehículo motor: • Propiedades: Potencia, consumo. • Métodos: repostar
56.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Ejemplo: • Vehículo sin motor: • Propiedades: Método de desplazamiento • Métodos: preparar desplazamiento • En este ejemplo tenemos lo siguiente:
57.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Ejemplo: //Clase padre public class VehiculoMotor { public void repostar(double litros){ } } //Clase hija public class Coche extends VehiculoMotor{ public Coche() { } @Override public void repostar(double litros){ }
58.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Ejercicio: Implementar el diagrama y añadir • Dos clases hijas para vehículo de motor y vehículo sin motor. • Sobreescribir el método “recorrerDistancia” para que según el tipo de vehículo: • Si la distancia a recorrer es mayor de 100km lance repostar. • Antes de empezar el desplazamiento lanzar PrepararDesplazamiento
59.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Clases abstractas • Cuando tenemos herencia podemos crear lo que se conoce como una clase abstracta. • Una clase abstracta no es más que una clase que tiene algún método sin implementar. • Esto obliga a las clases hijas a implementar ese método. • Para definir una clase abstracta tenemos que: • En la declaración de la clase añadir abstract. • Dejar sólo la declaración del método, añadiendo igualmente abstract.
60.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • El ejemplo anterior dejando repostar como abstracto: //Clase padre public abstract class VehiculoMotor { public abstract void repostar(double litros); } //Clase hija public class Coche extends VehiculoMotor{ public Coche() { } @Override public void repostar(double litros){ }
61.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Instanciación y polimorfismo • Llamamos polimorfismo a la capacidad de un objeto de ser representado por varias clases o interfaces: • Un coche puede representarse por: • Un vehículo • Un vehículo de motor • Un coche • Llamamos instanciación de un objeto cuando lo recuperamos como una clase o interfaz concreta. • En el caso anterior cuando lo decidimos recuperar como, por ejemplo, un vehículo de motor.
62.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Para recuperar un objeto como una clase o interfaz concreta deberemos hacer lo que se conoce como cast • Un cast es decirle a Java que el objeto que tenemos lo utilice como si fuera el que le estamos indicando. • (ObjetoDestino)miObjeto • Para saber si un objeto puede ser recuperado como una determinada clase haremos uso del la instrucción instanceof. • Esta instrucción pregunta si un determinado objeto puede ser recuperado con el tipo que le estoy indicando. • miObjeto instanceof Clase
63.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • Si hacemos un cast a una clase con la que no es compatible mi objeto obtendremos una excepción. • Si usamos previamente instanceof nos aseguramos de evitar la excepción • ¿Con qué puedo hacer un cast en un determinado objeto? • Con interfaces que implemente dicho objeto, • Con cualquier clase heredada. if(coche instanceof VehiculoMotor){ VehiculoMotor vm = (VehiculoMotor)coche; }
64.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Interfaces, implementaciones y herencia • ¿Cuándo debemos heredar y cuando aplicar una interfaz? • El desarrollador decide, pero la referencia es: • Herencia: Cuando entre los objetos hay una relación conceptual. “Un coche es un vehículo”. En este caso se comparten métodos y propiedades. • Interfaz: Cuando tenemos un conjunto de objetos muy diferente, pero que comparten una funcionalidad común y queremos hacer uso de ella sin necesidad de saber qué tipo de objeto es. • Un ejemplo claro es el patrón Observer, que veremos en la sección de patrones en Fundeweb.
65.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Punteros y referencias • Referencias: • Cuando creamos un objeto, Java internamente está creando un puntero a una posición de memoria donde está su valor. • La asociación de un puntero con una posición de memoria se llama referencia. • Ese puntero es lo que se guarda en nuestra variable. • Si asignamos ese objeto creado a otra variable, lo que realmente se está copiando es la referencia, no el valor. • Si modificamos un objeto, esa modificación afecta a todas las variables que lo referencien. • Si queremos copiarlo, debemos crear un objeto nuevo, copiar los valores y que la nueva variable apunte a él. • Mientras que un objeto tenga alguna referencia, no se liberará de memoria su contenido.
66.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Punteros y referencias • Ejemplo Coche seat1 = new Coche(); seat.setGasolina(40); Coche seat2 = seat1; seat2.quitaGasolina(20); seat1.getGasolina(); seat2,getGasolina(); Coche seat1 = new Coche(); seat.setGasolina(40); Coche seat2 = new Coche(); seat2.setGasolina(40); seat2.quitaGasolina(20); seat1.getGasolina(); seat2,getGasolina(); 20 seat2 seat1 40 20 seat2 seat1 Memoria Memoria
67.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Recolector de basura • Recolector de basura: • Es un mecanismo de Java para gestionar de manera automática la memoria. • Abstrae a los programadores del proceso de reserva y liberación de memoria. • Cuando crea un objeto reserva memoria en función de sus características y la amplia cuando sea necesario. • Cuando detecta que un objeto no tiene ninguna referencia (nadie apunta a él) lo elimina liberando la memoria ocupada. • Gran parte de los problemas de memoria se producen por acumulación de objetos que ya no se usan, pero existe aún alguna referencia en el código hacia ellos.
68.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Recolector de basura • Recolector de basura: • Los tipos de datos primitivos no generan referencias. • Para eliminar una referencia basta con asignarle a la variable que la contiene el valor null. • En caso de tener problemas de memoria podemos forzar el arranque del recolector de basura.
69.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tratamiento de excepciones • Cuando en nuestro código Java, el compilador nos indica que puede saltar una excepción deberemos hacer uso del bloque try{ … }catch(NombreExcepcion ex){ … } • Este bloque nos permite que si se produjera una excepción dentro del código situado en el “try” se nos ejecutará lo indicado dentro del catch. • En el bloque catch se nos pasará la excepción lanzada y la información disponible.
70.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Tratamiento de excepciones • También podemos lanzar nuestras propias excepciones para que la clase que llama a nuestro método la maneje. • Para ello debemos: • Crear una clase que represente a nuestra excepción y hacer que herede de la clase Java Exception. • Añadir en la cabecera de nuestro método la cláusula throws NombreExcepcion. • Dentro del código lanzar la excepción de la siguiente manera: throw new NombrExcepcion(“texto que se quiera poner”);
71.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces, implementaciones y herencia • Punteros y referencias • Polimorfismo • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación. • Javadoc
72.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Buenas prácticas • Las variables se han de crear siempre al principio de la clase o método. • Los métodos get y set siempre deben ir al final. • Nunca usar variables públicas. • Se crean privadas y se implementan sus métodos get y set. • Si varias clases comparten muchas propiedades hacer uso de la herencia. • No usar la salida estándar de consola para mostrar texto. • Definir y usar los logs en su caso. • Respetar los estándares. • Minimizar el uso de estructuras complejas siempre que sea posible. • Comentar los métodos y los trozos de código largos.
73.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Buenas prácticas • Si tenemos una clase con demasiadas líneas de código, revisar si realmente son necesarias ahí o se puede reestructurar. • En los constructores sólo asignar valores, no ejecutar métodos. • Utilizar método “equals” cuando se comparan objetos en vez de “==“.
74.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Índice de contenidos • ¿Qué es Fundeweb? • Eclipse como entorno de desarrollo • El servidor Weblogic • El lenguaje de programación Java • Tipos de datos y organización de código • Clases e instancias • Interfaces, implementaciones y herencia • Punteros y referencias • Polimorfismo • Recolector de basura • Tratamiento de excepciones • Buenas prácticas de programación • Javadoc
75.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Javadoc • Para introducir comentarios en el código haremos uso de la doble barra // cuando sea una línea. • Cuando sean varias líneas haremos uso de la estructura /* todo el comentario */ • Para generar javadoc de los métodos, nos situaremos en el encabezado del método, escribiremos /** y le daremos al enter para que se nos genere automáticamente el encabezado y podamos completarlo.
76.
© 2012. Área
de las Tecnologías de la Información y las Comunicaciones Aplicadas. Java: Javadoc • Es importante generar el Javadoc adecuado pues se mostrará a los que usen nuestros métodos. • Si las clases implementan interfaces el Javadoc debe ir en la interfaz y no en la implementación concreta. • Lo mismo pasa en caso de la herencia con los métodos que se sobreescriben.
Descargar ahora