Tema 15: Aserciones 0

Documentos relacionados
Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

James Gosling, creador de Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Instrucciones de control

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Java para programadores

CONCEPTOS BASICOS DEL LENGUAJE JAVA

2) Cual modificador limita el acceso a un método de una clase pública a los miembros de la misma clase?

FACULTAD DE INGENIERÍA

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Primer Parcial Septiembre 5 de 2009

Fundamentos del Lenguaje de Programación Java

5. Sentencias selectivas o condicionales

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Tema 2. El lenguaje JAVA

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Ubicación e historia

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Elementos léxicos del lenguaje de programación Java

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Multitarea en Java. Rafa Caballero - UCM

8. Sentencia return y métodos

Indicadores conceptos base EA constitución base Introducción a la programación de MT METATRADER, CONCEPTOS BÁSICOS DE PROGRAMACIÓN I

Java en 2 horas. Rodrigo Santamaría

FACULTAD DE INGENIERÍA

EXAMEN PARCIAL 23 de Octubre de 2015 Programación I. Grado en Matemáticas e Informática ETSIINF UPM

Soluciones Ejercicios Tema 3

Sintaxis básica, variables y 7pos

/) 0! () 5!2 /)( 1! "!"# 2 ()/ $% $!" !! " #!!!$!!% &!!' ' ' "! ()()/ & $!" ()()(' (!(

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }


Java Básico. Métodos estáticos

Tema 14: Excepciones

Apunte JAVA + SVN. Emi Höss

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Técnicas Avanzadas de Testing Automatizado

Ejercicios del tema 7: Clases y objetos

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Nombran variables, funciones, clases y objetos

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Benemérita Universidad Autónoma del Estado de Puebla

2. Estructura de un programa en Java

Lección 2 Introducción al lenguaje C

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Programación de Sistemas

Repaso de las características más importantes de la programación Java y su adaptación a Android

PRÁCTICA No1 POO Estructuras de Control Parte I

Objetivo de aprendizaje del tema

Tema 2. El lenguaje de programación Java (Parte 1)

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

Tutorial básico del entorno de desarrollo Eclipse.

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA

Tema: Clases y Objetos en C++.

Metodología y Tecnología de la Programación

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Java: control de excepciones

1. Manejo de memoria estática 2. Manejo de memoria dinámica

PROYECTO FIGURAS DIAGRAMA DE FLUJO

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Curso Informática Lección 2. Introducción a la programación en Java

b c b c b b a a c a a c b c c b b c b c d c c c b

Ejercicios de evaluación de fundamentos de programación en Java

El lenguaje de Programación C. Fernando J. Pereda

Objective C (Desarrollo con Apple)

Metodología y Tecnología de la Programación

Programación Estructurada

El lenguaje de programación Java

La Plataforma J2SE (Java 7) PROGRAMA HOLA MUNDO

fundamentos de programación (unidad 4) programación estructurada en Java

Caso práctico Alquiler de películas en un vídeo-club

Tema: Arreglos de Objetos en C++.

Iniciación a Java. 1.Introducción a Java 2.Programación Orientada a Objetos 3.Fundamentos del lenguaje Java

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

TÉCNICAS DE PROGRAMACIÓN Lenguaje Java. Introducción a Java Daniel Finol

Pruebas de unidad con JUnit

4. Operadores Operador asignación

PROGRAMACIÓN I. FECHA: 30-enero-2002

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Sockets en Java. Prof. Wílmer Pereira Universidad Simón Bolívar

Agenda..NET C# Laboratorio #1

Tema 2: Clase y objetos en Java. Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle

Clase adicional 2. Estructuras básicas de control. Temas

Transcripción:

Tema 15: Aserciones 0

Aserciones Definición Una aserción es una condición lógica insertada en el código Java, de ideas o condiciones que se asumen son ciertas. El sistema se encarga de comprobarlas y avisar mediante una excepción en caso de que no se cumplan. Generalmente es para verificar valores de las variables en cierto punto del programa. 1

Uso Se aconseja su uso durante el desarrollo y las pruebas, se pueden eliminar en la implantación del sistema. Reglas No Usarse para detectar errores en los datos de entrada al programa. Usarse en la entrada de métodos públicos. 2

... Uso Reglas Si Usarse en la entrada de métodos privados. Usarse en la salida de métodos públicos o privados. Usarse para verificar cómo se suponen están las variables y estructuras de datos internas. Usarse en la sentencia default de la estructura switch cuando todos los casos correctos están explícitos ( cuando else no debería ocurrir). Usarse en el último else de construcciones if... else if... switch cuando todos los casos correctos están explícitos (cuando el último else no debería ejecutarse jamás). Usarse en ciclos largos. 3

Sintaxis Sintaxis 1: assert expresion; Ejemplo double m= 100.0; double n= m/2; assert m == n*2; //cond. asumida true. Sintaxis 2: assert expresion1:expresion2; Ejemplo: double m= 100.0; double n= m/2; assert m == n*2 : "Java no sabe dividir " + m + " entre 2: " + n; 4

Ejemplo if (! (estado_ideal) ) throw new Error( Fallo en esta zona del programa"); Equivale a : assert estado_ideal; for (int i = 0; i < 10; i++) { if (v[i] > 1000) return i; assert false; En el caso de que el ciclo termine sin haber ejecutado el return, se evaluará la expresión del assert (en este caso false ) por lo que el sistema lanza una excepción (AssertionError). 5

Ejemplos de uso En métodos públicos y no públicos. public Book reservacopia(string titulo,miembro miembro) { if (! esvalidotitulo(titulo)) throw new IllegalArgumentException( Mal titulo: + titulo); Book libro =getdisponiblecopia(titulo); reservar(libro, miembro); assert libroenstrock(libro); return libro; private Book reservacopia(string titulo,miembro miembro) { assert esvalidotitulo(titulo); Book libro =getdisponiblecopia(titulo); reservar(libro, miembro); assert libroenstrock(libro); return libro; 6

Ejemplos de uso En if s if (i % 3 == 0) {... else if (i % 3 == 1) {... else { assert i % 3 == 2 : i;... Con while while (saldo > 0) { retirar(1000); assert (saldo <= 0); 7

Ejemplos de uso En switch switch (op) { case AND: sumar(); break; case OR: restar(); break; case NOT: negar(); break; default: assert false;... 8

Activación y desactivación Las aserciones por default están desabilitadas. Indicarlo al compilador : javac -source 1.4 MiPrograma.java Para activar: java enableassertions MiPrograma java ea MiPrograma //otra opción java ea:class MiClase Para desactivar: java disableassertions MiPrograma java da MiPrograma //otra opción 9

Ejemplo1 class AssertDemo { static int val = 3; static int getnum() { return val--; public static void main(string args[]) { int n; for(int i=0; i < 10; i++) { n = getnum(); assert n > 0; // fallará cuando n es 0 System.out.println("n es " + n); 10

Ejemplo2 class TestAserciones { private static int busca (int n, final int[] v) { int resultado= busca (n, v, 0, v.length); assert resultado >= -1 && resultado < v.length; return resultado; private static int busca (int n, final int[] v, int a, int z) { assert a >= -1 && a <= v.length; assert z >= -1 && z <= v.length; if (a < z) { int m= (a+z)/2; if (n == v[m]) return m; if (n < v[m]) return busca(n, v, a, m-1); if (n > v[m]) return busca(n, v, m+1, z); assert false; return -1; 11

Ejemplo2 public static void main (String[] args) { int[] v= {1, 2, 3, 5, 7, 11, 13, 17, 19; System.out.print( Primos: "); for (int i= 0; i < v.length; i++) System.out.print(v[i] + " "); System.out.println(); System.out.println("17: " + busca(17, v)); System.out.println("15: " + busca(15, v)); System.out.println("-1: " + busca(-1, v)); //Fin de TestAserciones. 12