ndice Sesin 2
Sintaxis
Tipo de datos primitivos Operadores Estructuras condicionales y repetitivas Convenciones de nomenclatura para clases, atributos, mtodos, etc. JavaDoc
Ejemplo integrador
Sintaxis Java
Nombres de clases, mtodos, propiedades y variables: Deben empezar por una letra, _ o $. Despus del primer carcter se pueden usar nmeros. Java distingue entre maysculas y minsculas. No se pueden utilizar palabras reservadas:
Sintaxis Java
Existen tres formas de escribir los comentarios:
// Comentario en una nica lnea /* Comentario de una o ms lneas */ /** Comentario en formato JavaDoc */
Sintaxis Java
Una sentencia es una lnea simple de cdigo terminada en punto y coma:
System.out.println(Hola);
Sintaxis Java
Variables y tipos de datos Una declaracin de variable consiste en una sentencia en la que indicamos el nombre de la variable y el tipo de dato que va a almacenar:
int contador;
Sintaxis Java
Variables y tipos de datos En Java existen dos tipos de datos genricos: Tipos primitivos Tipos complejos -> Clases.
Sintaxis Java
Variables y tipos de datos Tipos Primitivos Nmeros enteros: byte, short, int y long
byte unByte = 12; short unShort; int unEntero = -199;
Sintaxis Java
Variables y tipos de datos Tipos Complejos (Clases) Se identifican con el nombre de la clase a la que pertenecen. Su valor por defecto es null.
Producto unProducto; String unString = new String(HOLA);
Sintaxis Java
Ejemplo:
Sintaxis Java
Variables y tipos de datos Variable Scope
Sintaxis Java
Operadores Operadores aritmticos Los operadores bsicos de Java son + , - , * , / para suma, resta, producto y divisin. El operador % calcula el resto de una divisin. Adems existen los operadores decremento e incremento: -- y ++ respectivamente. Tambin es posible utilizar los operadores +=, -=, etc.
Sintaxis Java
Operadores Operadores de comparacin
Sintaxis Java
Operadores Otros operadores
Sintaxis Java
Flow of Control Sentencia while
while (condicion){ <instrucciones> }
Sentencia do while
do { <instrucciones> } while(condicion);
Sintaxis Java
Flow of Control Sentencia for
for (inicializacin; condicion; incremento){ <instrucciones> }
Sintaxis Java
Flow of Control Sentencia if
Sintaxis Java
Flow of Control Sentencia switch
Sintaxis Java
Flow of Control Sentencias break y continue
Convenciones de nomenclatura
Las convenciones de nomenclatura hacen que el cdigo sea ms comprensible al hacerlo ms fcil de leer. Tambin pueden dar informacin sobre la funcin de un identificador.
Convenciones de nomenclatura
IDENTIFICADOR Paquetes REGLAS DE NOMENCLATURA El prefijo del nombre de un paquete se escribe siempre con letras ASCII en minsculas, y debe ser uno de los nombres de dominio de alto nivel (actualmente com, edu, gov, mil, net, org). Los siguientes componentes del nombre del paquete variarn de acuerdo a las convenciones de nomenclatura internas de cada organizacin. EJEMPLOS
com.sun.eng com.apple.quicktime.v2 edu.cmu.cs.bovik.cheese
class Cliente; Los nombres de las clases deben ser sustantivos. Cuando son compuestos tendrn la primera letra de cada palabra que lo forma en maysculas. Se debe class ImagenAnimada; inte rfa ce mantener los nombres de las clases simples y descriptivos. ObjetoPersistente; interface Almacen;
ejecutar(); Los mtodos deben ser verbos. Cuando son compuestos tendrn la primera letra en minscula y la primera letra de las siguientes palabras que lo forma en ejecutarRapido(); mayscula. int i; Excepto las constantes, todas las instancias y variables de clase o mtodo char c; empezarn con minscula. Las palabras internas que lo forman (si son compuestas) empiezan con su primera letra en maysculas. Los nombres de las float miAnchura; variables deben ser cortos pero significativos. La eleccin del nombre de una variable debe ser un mnemnico. Los nombres de variables de un solo carcter se deben evitar, excepto para variables ndices temporales. Nombres comunes son i, j, k, m o c, d, n.
Variables
Constantes
Los nombres de las variables declaradas como constantes deben ir totalmente en maysculas separando las palabras con un guin bajo (_).
JavaDoc
Es la propuesta de Sun para la generacin de documentacin de desarrollos Java. Permite extraer de los fuentes informacin volcada en comentarios e inherente al cdigo. Evita que el desarrollador deba utilizar 2 herramientas, lo cual logra un mayor sincronizacin entre la documentacin y el cdigo. Se puede reconstruir la documentacin cuantas veces se desee por lo tanto no es necesario versionarla.
JavaDoc
Cuando desarrollamos aplicaciones, en paralelo debemos construir la documentacin. Desde las primeras versiones de Java e incluso para documentar las propias libreras del lenguaje, se utiliza un mecanismo llamado JavaDoc. Este sistema consiste en incluir comentarios en el cdigo, utilizando unas etiquetas especiales, que despus pueden procesarse y generar un juego navegable de documento HTML. Estos comentarios estn incluidos en bloques entre las etiquetas /** y */
JavaDoc
Al igual que obtenemos en binario de un programa java con javac, podemos obtener la documentacin ejecutando sobre los mismos elementos el comando javadoc. Los entornos de desarrollo avanzado ya hacen muchas de estas cosas por nosotros..... solo tenemos que saber encontrarlas.
JavaDoc
Qu documentar?
Obligatorio
Clases y paquetes Constructores, mtodos y atributos
/** Javadoc */
Conveniente
Fragmentos no evidentes Bucles, algoritmos. . .
JavaDoc
Generar documentacin de una API a mano es tedioso y propenso a errores
Gran cantidad de pequeos detalles Sincronizacin de cdigo fuente y documentacin Duplicidad de esfuerzos (tipos, nombres. . . )
Generar documentacin desde el cdigo La documentacin embebida en el cdigo tiende a ser mas correcta
JavaDoc
Comentarios con una sintaxis concreta, que se ubican antes de las clases, interfaces, constructores, mtodos y atributos a documentar. /** * * Descripcion principal (texto / HTML) * * * Tags (texto / HTML) * * */
JavaDoc
La primera frase de cada comentario Javadoc debe ser una frase resumen con una descripcin concisa y completa, terminada en punto, y seguida de un espacio, tabulador o de retorno. Usar la etiqueta <code> para palabras clave y nombres. Preferible el uso de la tercera persona.
* Devuelve el ndice del primer elemento... * Devolvemos el ndice del primer elemento... Evitar
Empezar con un verbo la descripcin de los mtodos Omitir el sujeto cuando es obvio
JavaDoc
Tag
@author @deprecated @param @value @return @see @throws @exception @version
Descripcin
Nombre del desarrollador. Indica que el mtodo o clase es antigua y que no se recomienda su uso porque posiblemente desaparecer en versiones posteriores. Definicin de un parmetro de un mtodo, es requerido para todos los parmetros del mtodo. Cuando se usa en un comentario para documentacin de un atributo esttico, se muestra el valor de la constante. Informa de lo que devuelve el mtodo, no se puede usar en constructores o mtodos "void". Asocia con otro mtodo o clase. Aade una cabecera "See Also" con un enlace que apunta a una referencia. Excepcin lanzada por el mtodo para especificar el nombre de la clase (y acompaarlo con una descripcin) de la clase lanzada cuando ocurre una excepcin. Versin del mtodo o clase.
JavaDoc
Ejemplo /** * Inserta un ttulo en la clase descripcin. * Al ser el ttulo obligatorio, si es nulo o vaco se lanzar una excepcin. * * @param titulo El nuevo ttulo de la descripcin. * @throws IllegalArgumentException Si titulo es null, est vaco o contiene * solo espacios. */ public void setTitulo (String titulo) throws IllegalArgumentException { if (titulo == null || titulo.trim().equals("")) { throw new Exception ("El ttulo no puede ser
// sobrescribir el mtodo abstracto obtenerArea para devolver rea del Circulo public double obtenerArea() { return Math.PI * obtenerRadio() * obtenerRadio(); } // sobrescribir el mtodo abstracto obtenerNombre para devolver "Circulo" public String obtenerNombre() { return "Circulo"; } // sobrescribir toString para devolver la representacin String de Circulo public String toString() { return "Centro = " + super.toString() + "; Radio = " + obtenerRadio(); } } // fin de la clase Circulo
// establecer el formato de nmero de punto flotante DecimalFormat dosDigitos = new DecimalFormat( "0.00" ); // crear objetos Punto, Circulo y Cilindro Punto punto = new Punto( 7, 11 ); Circulo circulo = new Circulo( 22, 8, 3.5 ); Cilindro cilindro = new Cilindro( 20, 30, 3.3, 10.75 ); // obtener nombre y representacin de cadena de cada objeto String salida = punto.obtenerNombre() + ": " + punto + "\n" + circulo.obtenerNombre() + ": " + circulo + "\n" + cilindro.obtenerNombre() + ": " + cilindro + "\n"; Figura arregloDeFiguras[] = new Figura[ 3 ]; // crear arreglo de Figuras // apuntar arregloDeFiguras[ 0 ] al objeto de la subclase Punto arregloDeFiguras[ 0 ] = punto; // apuntar arregloDeFiguras[ 1 ] al objeto de la subclase Circulo arregloDeFiguras[ 1 ] = circulo;
Preguntas?
Muchas gracias!!!