Javadoc Javadoc Se puede encontrar la documentación de todas las clases en Java en la dirección: http://java.sun.com/j2se/1.4.2/docs/api/ Javadoc Es posible documentar un programa y generar de forma automática un archivo html con tal documentación en un formato estándar import javax.swing.*; public class Ejemplo1 { public static void main(String a[]){ JOptionPane.showMessageDialog(null,"Bienvenido a Java"); System.exit(0); } } import javax.swing.*; /** Aca se coloca la descripción general de la clase @author Oscar @version 1.0 */ public class Ejemplo1 { Los comentarios aceptados por Javadoc comienzan con /** y terminan con */ /** Antes del método se describe qué hace, por ejemplo, muestra un mensaje de bienvenida a Java @param a es el arreglo de String @return void */ public static void main(String a[]){ } } JOptionPane.showMessageDialog(null,"Bienvenido a Java"); System.exit(0); Javadoc El código Javadoc se puede colocar en tres lugares: 1. Al principio del código de la clase 2. Antes de cada método 3. Antes de cada atributo Javadoc 1. Al principio del código de la clase @author: autor del documento @version: versión de la aplicación @see: se indican referencias a otro código java @since: desde cuándo está disponible el código @deprecated: indica que la clase está obsoleta Javadoc 2. Antes de cada método @see @ param: cada parámetro tiene una sentencia param. Después de la cual debe aparece el identificador del mismo @return: qué tipo de dato retorna el método @since @deprecated Javadoc 3. Antes de cada atributo @since @deprecated Javadoc Para generar el archivo html con la documentación se utiliza el comando javadoc Ejemplo1.java Tipos de datos primitivos Tipos de datos primitivos •Para el manejo de cantidades enteras: byte, short, int, long •Para cantidades decimales (punto flotante) float, double •Para valores lógicos, falso o verdadero boolean •Para caracteres char •Para texto (cadenas) String Tipos de datos primitivos •Enteros Tipo de dato byte -128 a 127 short -32768 a 32767 int -2147483648 a 2147483647 9223372036954775808 a 9223372036854775807 long Rango de valores permitido Esta ventana permite la entrada de datos a un programa nombre = JOptionPane.showInputDialog(“Digite su nombre”); Clase Método que permite desplegar una ventana para la entrada de datos import javax.swing.*; public class Ejemplo18{ public static void main(String a[]){ int edad; edad=Integer.parseInt(JOptionPane.showInputDialog(“Digite su edad”)); JOptionPane.showMessageDialog(null,“La edad digitada fue " + edad); System.exit(0); } } import javax.swing.*; public class Ejemplo18{ public static void main(String a[]){ float estatura; estatura=Float.parseFloat(JOptionPane.showInputDialog(“Digite su estatura”)); JOptionPane.showMessageDialog(null,“Su estatura es " + estatura); System.exit(0); } } import javax.swing.*; public class Ejemplo18{ public static void main(String a[]){ double estatura; estatura=Double.parseDouble(JOptionPane.showInputDialog(“Digite su estatura”)); JOptionPane.showMessageDialog(null,“Su estatura es " + estatura); System.exit(0); } } Operadores en Java Operadores Aritméticos • Un operador es un símbolo que representa una operación Operador Resultado + * / % Suma Resta Producto División Módulo Operadores relacionales Operador Resultado == != > < >= <= Igualdad lógica Diferente Mayor que Menor que Mayor o igual que Menor o igual que Operadores lógicos Operador Resultado || && ! OR AND Negación Metodología para resolver problemas Metodología para resolver problemas 1. Entender el problema 2. Identificar los objetos del dominio del problema 3. Crear el diagrama de clases 4. Desarrollar los algoritmos para cada uno de los métodos de las clases 5. Programar cada clase en Java 6. Editar y compilar las clases desarrolladas 7. Ejecutar la clase principal Metodología para resolver problemas Problema: Encontrar el área y el perímetro de un rectángulo de dimensiones alto X ancho alto ancho Metodología para resolver problemas 1. Entender el problema • El perímetro de un rectángulo es la suma de sus lados • El área de un rectángulo es base X altura Metodología para resolver problemas 2. Identificar los objetos del dominio del problema El objeto del dominio del problema es un rectángulo de dimensiones altoXancho miRectángulo1 4 2 miRectángulo2 3 9 Rectángulo int alto; int ancho; Rectángulo int alto; int ancho; Qué operaciones debe tener la clase Rectángulo para resolver el problema Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() Clase Rectángulo miRectángulo1 Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() Clase Rectángulo miRectángulo2 4 2 8 12 3 9 27 24 obtenerArea(); obtenerPerimetro() obtenerArea(); obtenerPerimetro() miRectángulo1 Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() Clase Rectángulo miRectángulo2 4 2 8 12 3 9 27 24 obtenerArea(); obtenerPerimetro() obtenerArea(); obtenerPerimetro() Además de la clase Rectángulo, se necesita una clase con un método main, que maneje y controle la clase Rectángulo Calculadora sumar(); restar(); multiplicar(); dividir(); calcularRaiz() calcularSeno() calcularCoseno() Se necesita de otra clase que Use la calculadora Metodología para resolver problemas 3. Crear el diagrama de clases Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() UsoRectangulo usa main() Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() Clase Base o provedor UsoRectangulo usa main() Clase Principal o cliente Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() UsoRectangulo usa main() JOptionPane showMessageDialog() showInputDialog() usa Metodología para resolver problemas 4. Desarrollar los algoritmos para cada uno de los métodos de las clases obtenerArea() Inicio Multiplicar la base y la altura Mostrar ese valor Fin Metodología para resolver problemas 4. Desarrollar los algoritmos para cada uno de los métodos de las clases obtenerPerimetro() Inicio Sumar: 2 veces la base y 2 veces la altura Mostrar ese valor Fin Metodología para resolver problemas 5. Programar cada clase en Java 6. Editar y compilar las clases desarrolladas 7. Ejecutar la clase principal Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea(); obtenerPerimetro() Rectángulo int alto; int ancho; int area; int perimetro; obtenerArea() obtenerPerimetro() establecerAlto() establecerAncho() Rectángulo int alto; int ancho; int area; int perimetro; ingresarDatos() obtenerArea() obtenerPerimetro() establecerAlto() establecerAncho() import javax.swing.*; public class Rectangulo{ Clase Base int alto, ancho, area, perimetro; public void obtenerArea(){ area = alto*ancho; JOptionPane.showMessageDialog(null,“Area:” + area); } public void obtenerPerimetro(){ perimetro = 2*alto + 2*ancho; JOptionPane.showMessageDialog(null, “Per.:” + perimetro); } public void establecerAlto(int x){ alto=x; } public void establecerAncho(int y){ ancho=y; } } Clase Base import javax.swing.*; public class UsoRectangulo{ public static void main(String a[ ]){ Rectangulo miRectangulo=new Rectangulo(); miRectangulo.establecerAlto(4); miRectangulo.estableceAncho(8); miRectangulo.obtenerArea(); } } import javax.swing.*; public class UsoRectangulo{ public static void main(String a[ ]){ Rectangulo miRectangulo1=new Rectangulo(); miRectangulo1.establecerAlto(4); miRectangulo1.estableceAncho(8); miRectangulo1.obtenerArea(); Rectangulo miRectangulo2=new Rectangulo(); miRectangulo2.establecerAlto(20); miRectangulo2.estableceAncho(13); miRectangulo2.obtenerArea(); } } Metodología para resolver problemas Problema: Desarrollar una aplicación Java que permita calcular el área para un rectángulo, donde el alto y el ancho son valores digitados por el usuario Metodología para resolver problemas Problema: Desarrollar una aplicación Java que permita encontrar el área de un círculo de radio r (de tipo real) digitado por el usuario r Circulo double radio; double area; obtenerArea(); establecerRadio(); UsoCirculo usa main() JOptionPane usa showMessageDialog() Metodología para resolver problemas Problema: Desarrollar una aplicación Java que permita crear un objeto Rectángulo y uno Circulo Metodología para resolver problemas Problema: Modifique la clase Rectangulo, de tal manera que tenga un método esCuadrado() que muestra un mensaje indicando si el rectángulo es también un cuadrado Instrucciones de control de flujo: Selección if - else if (condición) { conjunto de instrucciones que se deben realizar si se cumple la condición } else { conjunto de instrucciones que se deben realizar si no se cumple la condición } Instrucciones de control de flujo: Selección if - else if (condición) { conjunto de instrucciones que se deben realizar si se cumple la condición } else if (otraCondición){ conjunto de instrucciones que se deben realizar si se cumple otraCondicion } Instrucciones de control de flujo: Selección if - else [V] condición [f] Instrucción if Instrucciones de control de flujo: Selección if - else [f] [V] condición Instrucción if-else Instrucciones de control de flujo: Selección if - else Se tiene un método abreviado para la instrucción ifelse ((condición) ? valor si se cumple condición : valor si no) Instrucciones de control de flujo: Selección if - else Se tiene un método abreviado para la instrucción ifelse … System.out.println((edad<18)? “Menor de edad” : “Mayor de edad”); Instrucciones de control de flujo: Selección if - else Se tiene un método abreviado para la instrucción ifelse … int resultado = ((x!=10000)? 1 : 0); Instrucciones de control de flujo: Selección switch- case switch (variable) { case valor1: instrucciones break; case valor2: instrucciones break; . . . default: instrucciones } Instrucciones de control de flujo: Selección switch- case [V] break [V] break [f] [f] ... default < Instrucción switch public class MiniCalculadora{ int a, b, op; public void calcular(){ switch ( op ) { case '+': System.out.println( a + b ); break; case '-': System.out.println( a - b ); break; case '*': System.out.println( a * b ); break; case '/': System.out.println( a / b ); break; default: System.out.println("error" ); break; } } } public class ManejoDias{ int diasemana; public boolean calcularDiasLaborales(){ boolean laboral; switch ( diasemana ) { case 1: case 2: case 3: case 4: case 5: laboral = true; break; case 6: case 7: laboral = false; break; } return laboral; } Metodología para resolver problemas Problema: Modifique la clase UsoRectangulo, de tal manera que el programa permita analizar N rectángulos, donde N es un valor dado por el usuario Estructura for for(expresion1 ; expresion2 ; expresion3){ //instrucciones a repetir } Se establece el valor inicial de la variable de control Condición sobre la variable de control para continuar iterando Aumento o decremento de la variable de control import javax.swing.*; public class Ejemplo62{ public static void main(String a[]){ int x=0; for(int i=5; i<=10;i=i+1){ x++; } JOptionPane.showMessageDialog( null ,“El valor de X es " + x); System.exit(0); }} ¿Qué valor se muestra? import javax.swing.*; public class Ejemplo{ public static void main(String a[]){ int x=0; for(int i=1; i<=10;i=i+1){ if(i%2==0) x++; else x = x + 2; ¿Qué valor se muestra? } JOptionPane.showMessageDialog( null ,“El valor de x es " + x); System.exit(0); }} import javax.swing.*; public class Ejemplo63{ public static void main(String a[]){ int x=0; for(int i=10; i<=21; i=i+1){ if(i%3==0){ x=x+1; } } JOptionPane.showMessageDialog(null,“X es“ + x); System.exit(0); }} ¿Qué valor se muestra? import javax.swing.*; public class Ejemplo63{ public static void main(String a[]){ int x=0; for(int i=5; i<=15; i=i+2){ if(i%2==0 || i<8){ x=x+1; } } JOptionPane.showMessageDialog(null, "X es“ + x); System.exit(0); }} ¿Qué valor se muestra? Metodología para resolver problemas Problema: Modifique la clase UsoRectangulo, de tal manera que los valores ingresados para el alto, el ancho y N sean todos positivos do{ instrucciones que se deben repetir }while(condición de error); import javax.swing.*; public class Ejemplo54{ public static void main(String a[]){ El do-while se utiliza para asegurar que los datos de entrada cumplan ciertas condiciones int lado; do{ lado=Integer.parseInt(JOptionPane.showInputDialog("Entre el lado ")); }while(lado<=0); JOptionPane.showMessageDialog(null, "El lado es " + lado); System.exit(0); } } Método showConfirmDialog de la clase JOptionPane import javax.swing.*; public class UsoRectangulo{ public static void main(String a[]){ do{ Rectangulo miRectangulo=new Rectangulo(); miRectangulo.establecerAlto(Integer.parseInt(JOptionPane.showInputDialog("Digite el alto"))); miRectangulo.establecerAncho(Integer.parseInt(JOptionPane.showInputDialog("Digite el ancho"))); miRectangulo.obtenerArea(); }while(JOptionPane.showConfirmDialog(null, "¿Desea analizar otro rectángulo?") ==JOptionPane.YES_OPTION); System.exit(0); } } Metodología para resolver problemas Problema: Desarrollar una aplicación Java que registre el ingreso de 4 notas por cada estudiante. Al final del ingreso de cada 4 notas, se muestra su definitiva (suponga que todas las notas tienen el mismo porcentaje). Después de ingresar los datos de un estudiante, se debe preguntar al usuario si desea registrar las notas de otro. Al final, se debe mostrar un mensaje indicando el total de estudiantes que registraron sus notas, la nota definitiva mayor y la menor, la cantidad que perdieron y la cantidad que ganaron Metodología para resolver problemas Problema: Desarrollar un método public long factorial(int n) que devuelve n!=n*(n-1)*…*1