Descargar

El lenguaje de programación Java

Enviado por Pablo Turmero


    edu.red

    1 1 Identificadores Nombran variables, funciones, clases y objetos

    Comienza con una letra, un subrayado (_) o un símbolo de dólar ($). Los siguientes caracteres pueden ser letras o dígitos.

    Se distinguen las mayúsculas de las minúsculas

    No hay una longitud máxima establecida para el identificador.

    edu.red

    2 Variables Sirven para referirse tanto a objetos como a tipos primitivos.

    Tienen que declararse antes de usarse: tipo identificador; int posicion;

    Se puede inicializar mediante una asignación: tipo identificador = valor; int posicion = 0;

    Definición de constantes: static final float PI = 3.14159f;

    edu.red

    3 Tipos de datos primitivos Se pueden utilizar valores de los siguientes tipos: byte (entero de 8 bits) short (entero de 16 bits) int (entero de 32 bits) long (entero de 64 bits) float (decimal de 32 bits) double (decimal de 64 bits) char (Unicode de 16 bits) boolean (true, false)

    No se pueden definir tipos.

    edu.red

    4 2 Operadores En orden de precedencia:

    edu.red

    5 3 Control de flujo if( expresión-booleana ) { sentencias; } [else { sentencias; }] switch(expresión) { case valor1: sentencias; break; case valor2: sentencias; break; [default: sentencias;] } Control de saltos:

    edu.red

    6 Ejemplos int saldo; … if (saldo false, luego c1!=c2 c1.equals(c2) –> true compara el CONTENIDO de los objetos si lo redefinimos en la clase (por defecto es igual que ==) 47 0 c2 valor valorInicial 47 0 c1 valor valorInicial

    edu.red

    25 this Invocación a otro de los constructores de la clase: public Contador (int i) { valor=i; valorInicial=i; }   public Contador(){ this(0); } Instancia actual: Pasar el objeto actual como parámetro de otro método servicio.añadir(this);

    En cualquier método del objeto actual this.otroMetodo();

    edu.red

    26 Reglas de alcance Porción del programa en el que se puede hacer referencia al identificador

    Un identificador debe ser único dentro de su ámbito

    Alcance de CLASE: los métodos de una clase pueden modificar directamente los atributos de clase y de instancia Un método de clase (static) sólo puede acceder a atributos de clase.

    Alcance de Bloque: variables locales y parámetros de un método cuando se anidan los bloques y existen dos identificadores con nombres iguales el compilador da error de sintaxis (variable ya definida) si una variable local tiene igual nombre que un atributo de la clase éste queda oculto.

    edu.red

    27 Reglas de alcance class MiClase{ … public static void metodo1(…){

    { …//bloque } } public void metodo2(…){ … } } variables de clase parámetros variables locales var. de instancia parámetros variables locales

    edu.red

    28 El método main Clase que conduce la aplicación

    Al ejecutar el programa se busca el método main que contiene dicha clase: public class Eco { public static void main (String[] args){ for (int i = 0; i< args.length;i++) System.out.print(args[i] + “ “); } } String[] args: parámetros del programa

    Ejemplo de invocación: java Eco repite esto

    Puede haber más de un main, pero sólo se ejecutará uno

    edu.red

    29 Normas de estilo No es que existan reglas pero es conveniente seguir unas normas para que el código sea mas legible:

    nombre de CLASE empieza por Mayúsculas

    nombre de métodos y atributos por minúsculas

    las CONSTANTES con MAYÚSCULAS completamente

    cuando empieza una nueva palabra la ponemos en mayúsculas ej: dibujarRectangulo

    edu.red

    30 Ejemplo: Clase Contador v2 (1/2) public class Contador{

    // Variable de clase private static int nextCodigo=1;

    // Variables de instancia private int codigo; private int valor; private int valorInicial; private int step;

    // Constructores public Contador (int valor, int step){ codigo =nextCodigo; this.valor = valor; valorInicial = valor; this.step = step; ++nextCodigo; } public Contador(){ this(0,1); }

    edu.red

    31 Ejemplo: Clase Contador v2 (2/2) // Métodos de instancia public void incrementar(){ valor+=step; } public void decrementar(){ if (valor>=step) valor-=step; else valor=0; } public void reset(){ valor=valorInicial; } public int getValor(){ return valor; } public int getCodigo(){ return codigo; } }

    edu.red

    32 Ejemplo. Clase de prueba public class TestContador{ public static void main (String [] args){ Contador c1 = new Contador(); Contador c2 = new Contador (0, 10);

    c1.incrementar(); c2.incrementar();

    System.out.println(“C1 = “ + c1.getValor()); System.out.println(“C2 = “ + c2.getValor()); } }

    edu.red

    33 Paquetes Agrupar todas las clases relacionadas //MiClass.java package miBiblioteca; public class MiClase{ //…

    Se coloca al comienzo del fichero

    Indica que las clases públicas que contenga está accesible a cualquiera que incluya: import miBiblioteca.MiClase; o bien import miBiblioteca.*;

    Las clases que no tienen un nombre de paquete están en el paquete por defecto (Default Package)

    Soporta el concepto de jerarquía de paquetes (estilo directorio) ej: import miPaquete.miSubPaquete.MiClase;

    edu.red

    34 Control de acceso Designar qué clases de una biblioteca (miBiblio) están disponibles desde fuera del paquete

    Controlan si el cliente puede crear objetos de la clase public class MiClase { … } Entonces import miBilio.MiClase;

    Modificador de acceso por omisión indica visibilidad a nivel de paquete. Tanto la clase como atributos y métodos.

    Una clase NUNCA puede ser private.

    edu.red

    35 Estructura de un proyecto (Gp:) modelo

    (Gp:) Contador valor

    sumar() restar()

    (Gp:) vista

    (Gp:) VentanaContador …

    (Gp:) Contiene nom_proyecto.jpx (Gp:) Ficheros .class (Gp:) Ficheros .java

    Una carpeta por cada paquete Cada carpeta contiene los ficheros corres- pondientes a las clases del paquete. Coincidencia EXACTA de nombres.

    edu.red

    36 Paquetes básicos del sistema java.lang: para funciones del lenguaje java.util: para utilidades adicionales java.io: para manejo de ficheros java.awt: para diseño gráfico e interfaz de usuario java.awt.event: para gestionar eventos javax.swing: nuevo diseño de GUI java.net: para comunicaciones

    edu.red

    37 Comentarios Hay tres tipos de comentarios:

    // comentarios para una sola línea

    /* comentarios de una o más líneas */

    /** comentario de documentación, de una o más líneas justo antes del elemento (clase, var, met) */

    Los comentarios de documentación pueden llevar etiquetas

    La documentación se genera con javadoc en formato html

    edu.red

    38 … Comentarios Las etiquetas pueden ser: @see

    – Etiquetas de documentación de clases: @version @author

    – Etiquetas de documentación de métodos: @param @return @exception

    Otras: (no aparece en la documentación) @todo

    edu.red

    39 Comentarios de documentación

    edu.red

    40 C:seminarioJava>javadoc -sourcepath src/ modelo -d doc/ Loading source files for package modelo… Constructing Javadoc information… Building tree for all the packages and classes… Building index for all the packages and classes… Generating doc/overview-tree.html… Generating doc/index-all.html… Generating doc/deprecated-list.html… Building index for all classes… Generating doc/allclasses-frame.html… Generating doc/index.html… Generating doc/packages.html… Generating doc/modelopackage-summary.html… Generating doc/modelopackage-tree.html… Generating doc/modelopackage-frame.html… Generating doc/modeloContador.html… Generating doc/modeloPrueba.html… Generating doc/serialized-form.html… Generating doc/package-list… Generating doc/help-doc.html… Generating doc/stylesheet.css…

    edu.red

    41

    edu.red

    42 @param @see