introduccion a java.pdf

Upload: mario-gomez-martinez

Post on 14-Apr-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Introduccion a Java.pdf

    1/46

    Introduccin a Java

    Mario Gmez Martnez

    Departamento de Sistemas Informticos y Computacin

    Universidad Politcnica de Valencia

  • 7/28/2019 Introduccion a Java.pdf

    2/46

    ndice

    1. Introduccin Java y la POO

    2. Variables, tipos y operaciones Atributos vs variables locales

    Tipos primitivos vs referencias Paso de parmetros Operaciones

    3. Clases y paquetes Atributos Mtodos Paquetes Modificadores de acceso

    Estructuras de Datos y Algoritmos 2

  • 7/28/2019 Introduccion a Java.pdf

    3/46

    INTRODUCCION

  • 7/28/2019 Introduccion a Java.pdf

    4/46

    El lenguaje Java

    Fuertemente Orientado a Objetos: todos losdatos (salvo los tipos primitivos) son objetos

    Tipos estrictos: todas las variables estntipadas, control estricto de tipos yconversin de tipos

    Clases estrictas: todos los objetos soninstancias (miembros) de alguna clase

  • 7/28/2019 Introduccion a Java.pdf

    5/46

    La jerarqua de clases de Java

    java.lang.Objectjava.lang.Boolean (implements java.lang.Comparable, java.io.Serializable)java.lang.Character (implements java.lang.Comparable, java.io.Serializable)java.lang.Character.Subset

    java.lang.Character.UnicodeBlock

    java.lang.Class (implements java.lang.reflect.AnnotatedElement,java.lang.reflect.GenericDeclaration, java.io.Serializable, java.lang.reflect.Type)

    java.lang.ClassLoaderjava.lang.Compilerjava.lang.Enum (implements java.lang.Comparable, java.io.Serializable)java.lang.Mathjava.lang.Number (implements java.io.Serializable)

    java.lang.Byte (implements java.lang.Comparable)java.lang.Double (implements java.lang.Comparable)

    java.lang.Float (implements java.lang.Comparable)java.lang.Integer (implements java.lang.Comparable)java.lang.Long (implements java.lang.Comparable)java.lang.Short (implements java.lang.Comparable)

    Estructuras de Datos y Algoritmos 5

    http://download-llnw.oracle.com/javase/6/docs/api/java/lang/Object.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Boolean.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Character.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Character.Subset.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Character.UnicodeBlock.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Class.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/reflect/AnnotatedElement.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/reflect/GenericDeclaration.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/reflect/Type.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/ClassLoader.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Compiler.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Enum.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Math.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Number.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Byte.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Double.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Float.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Integer.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Long.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Short.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Short.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Long.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Integer.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Float.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Double.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Byte.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Number.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Math.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Enum.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Compiler.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/ClassLoader.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/reflect/Type.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/reflect/GenericDeclaration.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/reflect/AnnotatedElement.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Class.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Character.UnicodeBlock.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Character.Subset.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Character.htmlhttp://download.oracle.com/javase/6/docs/api/java/io/Serializable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Comparable.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Boolean.htmlhttp://download-llnw.oracle.com/javase/6/docs/api/java/lang/Object.html
  • 7/28/2019 Introduccion a Java.pdf

    6/46

    Principios de POO

    Abstraccin

    Encapsulacin y Ocultacin de informacin

    Herencia Polimorfismo

    Estructuras de Datos y Algoritmos 6

  • 7/28/2019 Introduccion a Java.pdf

    7/46

    Objetos

    Un objeto representa un tem individual e identificablede una cierta clase

    Un objeto tiene: Identidad: identificador nico [hashcode] Estado (Atributos): conjunto de propiedades de cierto tipo

    y valores que esas propiedades toman Comportamiento (Mtodos): operaciones que es posible

    realizar sobre el objeto

    El estado y el comportamiento de un objeto se define eimplementa en la clase a la cual pertenece

    Los trminos objeto y ejemplo (o instancia) de unaclase son intercambiables.

    Estructuras de Datos y Algoritmos 7

  • 7/28/2019 Introduccion a Java.pdf

    8/46

    Objetos

    En general los atributos de un objeto no cambian,cambian sus valores Hay excepciones, mediante programacin reflexiva

    Que los objetos tengan estado implica queocupan un espacio de memoria.

    El estado de un objeto est influido por suhistoria; representa el efecto acumulado de su

    comportamiento. Los objetos son mutables: pueden ser creados,

    modificados y destruidos.

    Estructuras de Datos y Algoritmos 8

  • 7/28/2019 Introduccion a Java.pdf

    9/46

    Clases

    Una clase es un conjunto de objetos que comparten unaestructura y comportamiento comunes.

    Conceptualmente es una abstraccin que representa lo quetienen en comn un conjunto de objetos.

    Cualquier objeto es un ejemplo o instancia particular deuna clase. Dos visiones

    visin externa de comportamiento (especificacin o interfaz),que enfatiza la abstraccin escondiendo su estructura y

    comportamiento. visin interna (implementacin), que especifica la estructura y

    la implementacin del comportamiento especificado.

    Estructuras de Datos y Algoritmos 9

  • 7/28/2019 Introduccion a Java.pdf

    10/46

    Programa: conjunto de clasesinterrelacionadas

    Estructuras de Datos y Algoritmos 10

  • 7/28/2019 Introduccion a Java.pdf

    11/46

    VARIABLES, TIPOS Y OPERADORES

  • 7/28/2019 Introduccion a Java.pdf

    12/46

    Variables

    Segn contexto, se distingue entre Atributos (field variables): estado de un objeto Variables locales (local variables) : temporales, usadas por un

    mtodo mientras est en ejecucin

    ? ;< modificadores> ::= public | protected | private | static | final |

    transient | volatile

    Inicializacin Atributos se inicializan automticamente a valores por

    defecto Variables locales no se inicializan automticamente

    Estructuras de Datos y Algoritmos 12

  • 7/28/2019 Introduccion a Java.pdf

    13/46

    Variables y Tipos

    En Java todos los datos (variables) son dealgn tipo determinado, que puede ser:

    Tipos primitivos (byte, short, int, long, float,double, char y boolean)

    Vectores/Matrices ([]): coleccin de elementos detamao predeterminado.

    Objetos: instancias de una Clase dada

    Estructuras de Datos y Algoritmos 13

    No confundir conla clase Vector

  • 7/28/2019 Introduccion a Java.pdf

    14/46

    Variablespublic classVariables {

    // atributos

    static private int numero;

    private char caracter;

    protectedString cadena1, cadena2 = "Una cadena";

    String[] vector1;

    String[] vector2 = new String[10];final char otroCaracter = caracter = 'a';

    voidmiMetodo(int numP, String cadenaP) //parametros

    {

    // variables locales

    int numeroLocal = 10;

    int[] vectorLocal = new int[5];

    //...

    }

    }

    Estructuras de Datos y Algoritmos 14

  • 7/28/2019 Introduccion a Java.pdf

    15/46

    Tipos primitivos

    Los tipos primitivos de Java son similares a los de los demslenguajes de programacin: boolean: true o false char: caracteres unicode de 16 bits

    byte: enteros de 8 bits con signo short: enteros de 16 bits con signo int: enteros de 32 bits con signo long: enteros de 64 bits con signo. float: reales de 32 bits

    double: reales de 64 bits

    En los tipos primitivos se almacena directamente el valor

  • 7/28/2019 Introduccion a Java.pdf

    16/46

    Referencias

    Los datos de tipo primitivo almacenan valores directamente.Los dems tipos de datos (vectores y objetos) utilizanreferencias

    Una referencia es la direccin de un rea en memoria, la cual

    se reserva con el operador new

    String s1 = Hola;

    String s2 = s1; 102s1 H

    o

    l

    102

    Memoria

    a102s2

  • 7/28/2019 Introduccion a Java.pdf

    17/46

    Tipos primitivos vs. referencias

    Ejemplo con tipos primitivos:

    int a = 1;

    int b;

    b = a;

    Ejemplo con referencias:

    int a[] = new int[2];

    a[0] = 1;

    a[1] = 2;

    int b[];

    b = a;

    a 1

    b 0

    b 1

    a 0 0

    a 1 0

    a 1 2

    a1 2

    b

  • 7/28/2019 Introduccion a Java.pdf

    18/46

    Tipos primitivos vs referencias

    Indica el contenido de los vectores a y b trasejecutar las siguientes instrucciones:

    int a[];intb[] = new

    int[3];

    a = new int[3];

    a[0] = 1;b[1] = a[0];

    a = b;

    b[0] = a[1];

  • 7/28/2019 Introduccion a Java.pdf

    19/46

    Inicializacin automtica

    TipoValor por

    defecto

    boolean false

    byte 0

    char '\u0000'short 0

    int 0

    long 0l

    float 0.0f

    double 0.0d

    Object null

    Vector Segn tipo

    Tips

    Variables locales deben serexplcitamente inicializadas

    Vectores inicializados

    automticamente al ser creados, noal ser declarados, incluso si sonvariables locales

    Traps

    Los datos de tipo String se

    inicializan a la cadena vaca envez de null

    Variables locales slo pueden llevarel modificadorfinal

    Estructuras de Datos y Algoritmos 19

  • 7/28/2019 Introduccion a Java.pdf

    20/46

    Paso de parmetros

    No confundir el mecanismo por referencia que se utiliza

    para manipular objetos en memoria, con el mecanismoutilizado para pasar los parmetros al llamar a un mtodo

    El paso de parmetros se hace siempre por valor, no por

    referencia. El mtodo recibe una copia del valor original, y porlo tanto no puede modificar el dato original. Pero que pasa si el dato que pasamos es un objeto o vector?

    Lo que se copia es la referencia, si se modifica localmente el objeto

    pasado como parmetro, se modifica el objeto en su contexto original

    Estructuras de Datos y Algoritmos 20

  • 7/28/2019 Introduccion a Java.pdf

    21/46

    Actividad: Ejecuta y analiza

    Estructuras de Datos y Algoritmos 21

    public class PruebaPasoParametros {

    private String atributo = new String();

    public PruebaPasoParametros(String param) {

    atributo = param;}

    public static voidcambiarObjeto(PruebaPasoParametros objeto) {

    objeto = new PruebaPasoParametros("Nuevo objeto"); }

    public static voidcambiarAtributo(PruebaPasoParametros objeto) {

    objeto.atributo = "Nuevo valor de atributo";}

    public static voidmain(String[] args) {

    PruebaPasoParametros pas = new PruebaPasoParametros("Objeto

    inicial");

    System.out.println("Objeto inicial " + pas);

    PruebaPasoParametros.cambiarObjeto(pas);System.out.println("Tras cambiar objeto " + pas);

    PruebaPasoParametros.cambiarAtributo(pas);

    System.out.println("Tras cambiar atributos del objeto " + pas);}

    public String toString() {

    return "[atributo = " + atributo + "]";}

    }

  • 7/28/2019 Introduccion a Java.pdf

    22/46

    Integer a = new Integer(100);

    String b = "100";

    Integer c = Integer.getInteger(b);

    int d = c.intValue();

    Clases envoltorio

    Permiten manipular datosde tipo primitivo como sifueran objetos

    Mtodos para convertir de

    uno a otro tipo Utilidades adicionales, por

    ejemplo leer datosrepresentados como texto

    Envoltorio Tipo primitivo

    Byte byte

    Short short

    Integer int

    Long longFloat float

    Double double

    Boolean boolean

    Character char

  • 7/28/2019 Introduccion a Java.pdf

    23/46

    Operadores

    Igualdad y desigualdad: == , !=

    Comparacin: =

    Suma y resta unarios: +, -

    Suma, multiplicacin, divisin y mdulo: +, -, *, /, % Incremento y decremento prefijos y posfijos: ++, --

    Desplazamiento con signo y sin signo: , >>>

    Negacin lgica unaria de bits: ~

    Lgica de bits: &, |, ^ Lgica booleana: &&, ||

  • 7/28/2019 Introduccion a Java.pdf

    24/46

    Operadores

    Grupos de Precedencia

    Grupo 0: ( )

    Grupo 1: ++, --, + (unario), - (unario)

    Grupo 2: *, /, %

    Grupo 3: +, -, + (concatenacin)

    Funciones matemticas:

    Java.lang.Math

    http://download-llnw.oracle.com/javase/6/docs/api/java/lang/Math.htmlhttp://download-llnw.oracle.com/javase/6/docs/api/java/lang/Math.html
  • 7/28/2019 Introduccion a Java.pdf

    25/46

    Operadores

    Indica el resultado de este cdigo al ejecutarse

    Estructuras de Datos y Algoritmos 25

    public class Operadores {

    public static voidmain(String[] args) {

    int a = 10;

    doubleb = 1.6;int c = a * (int) b;)

    int d = a + 3 * 2;

    d += 10;

    d++;

    int e = d + --a;

    System.out.println(c);

    System.out.println(d);

    System.out.println(e);

    System.out.println(a); }}

  • 7/28/2019 Introduccion a Java.pdf

    26/46

    CLASES Y PAQUETES

  • 7/28/2019 Introduccion a Java.pdf

    27/46

    Clase

    ?class ? ? {

    ? }

    ::= public | protected | private |

    abstract | static | final

    En el cuerpo de una clase puede haber Atributos

    Mtodos Constructores Inicializadores estticos

    Estructuras de Datos y Algoritmos 27

  • 7/28/2019 Introduccion a Java.pdf

    28/46

    Atributos

    Variables que caracterizan el estado de los objetosde una clase. Se definen en el cuerpo de la clase.

    Un atributo no primitivo modela una relacin de

    agregacin o composicin con las clasecorrespondiente al tipo del atributo. La clase Circulo tiene un (objeto de tipo) Color

    public class Circulo {/** Atributos */

    private double radio;

    private Color color;

    El color se representamediante objetos de la

    Clase Color

  • 7/28/2019 Introduccion a Java.pdf

    29/46

    Constantes y atributos estticos

    static final ;

    final: indica que el valor de un atributo no puede sermodificado

    static: indica que el valor del atributo es el mismopara todos los objetos de la misma clase (atributos

    de clase)

    public class Circulo {

    /** Atributos */private double radio;

    private Color color;

    private static final double RADIO_POR_DEFECTO= 3.0;

    private static final Color COLOR_POR_DEFECTO= Color.black;

  • 7/28/2019 Introduccion a Java.pdf

    30/46

    Mtodos

    Constructores: crean una instancia de la Claseinicializan los atributos del objeto Se invocan con new Constructor()

    Consultores: consultan informacin sin modificarel objeto (getters)

    Modificadores: modifican el estado del objeto(setters)

    Heredados de alguna superclase. Normalmentees necesario sobrescribirlos para usarloscorrectamente: toString(), equals(Object x),clone()

  • 7/28/2019 Introduccion a Java.pdf

    31/46

    Mtodos

    Se declaran mediante un nombre, un tipo de retorno, y una lista deparmetros con su correspondiente tipo. Opcionalmente pueden iracompaados de modificadores

    ? nombreMetodo (?)

    throwsClause {?}

    < modificadores > ::= public | protected | private | static | abstract |final | synchronized | native

    El cuerpo incluye sentencias y una clusula return que devuelve undato del tipo declarado.

    Estructuras de Datos y Algoritmos 31

    Si el tipo es void entonces el mtodo nodevuelve nada, no incluye clusula return

  • 7/28/2019 Introduccion a Java.pdf

    32/46

    Mtodos constructores

    Tiene el mismo nombre que la clase y no devuelvenada No declara el tipo ni incluye clusula return

    ? NombreClase (parameterList) {

    } ::= public | protected | private

    Constructor por defecto: public, sin parmetros, est implcitoaunque no se defina, y llama al constructor sin parmetros de

    la superclase

    public Circulo(){

    super();

    }

    super() referencia alconstructor de la superclase,que por defecto es Object()

  • 7/28/2019 Introduccion a Java.pdf

    33/46

    Mtodos constructores

    public Circulo(double radio, String color) {

    this.radio = radio;

    this.color = color;

    }

    public Circulo() {

    this(RADIO_POR_DEFECTO, COLOR_POR_DEFECTO);

    }

    this referencia al objetosobre el que se invoca elmtodo. Evita el aliasing

    de nombres

    this() referencia aun constructor

    Primera lnea de un constructor es una llamada a otroconstructor , mediante this() o super(). Sino, el

    compilador inserta automticamente la invocacin alconstructor sin parmetros de la superclase :super().

  • 7/28/2019 Introduccion a Java.pdf

    34/46

    Consultores y modificadores

    public double getRadio() {

    return radio;

    }

    public voidsetRadio(double nuevoRadio) {

    radio = nuevoRadio;

    }

    Implementa los mtodos area() yperimetro(),haciendo uso del siguiente atributo de la claseMath:public static final double PI;

  • 7/28/2019 Introduccion a Java.pdf

    35/46

    Paquetes

    Mecanismo bsico para organizar un grupo de clasesque guardan alguna relacin entre si

    package ;

    Paquetes Java estndar : java.lang: contiene las clases bsicas (Integer, Math,

    String, etc.). No es necesario importarlo.

    java.util: contiene diversas utilidades (Random, Date,StringTokenizer, Scanner, etc.)

    java.io: clases para manipular ficheros y canales de E/S

    java.awt: contiene clases para disear interfaces grficasde usuario (Color, Graphics, etc.)

  • 7/28/2019 Introduccion a Java.pdf

    36/46

    Paquetes en Java: utilizacin

    Una clase Cen un paquetep se especifica como p.C

    Para simplificar se usa import .*

    O alternativamente, se importan slo las clases necesarias

    public classmiClase{

    java.util.Date fecha = new java.util.Date();}

    import java.util.*;

    public class Import {

    Date fecha = new Date();}

    import java.util.Date;

    public class Import {

    Date fecha = new Date();}

  • 7/28/2019 Introduccion a Java.pdf

    37/46

    Paquetes en Java: reglas

    Sea la clasep.C Las clases en Java se implementan en un fichero con el

    mismo nombre que la clase y extensin .java: C.java

    La primer lnea del fichero C.java es la declaracin delpaquete al cual pertenece, mediante la orden:package p;

    El fichero C.java debe estar en el subdirectoriopdentro del directorio que contiene las fuentes

    El subdirectoriop debe estar en la variable de entornoCLASSPATH

    Normalmente los entornos dedesarrollo ( Eclipse, Netbeans ,

    BlueJ ) ya gestionan el CLASSPATH

  • 7/28/2019 Introduccion a Java.pdf

    38/46

    Modificadores de acceso

    Modificadores de visibilidad: friendly: implcito (cuando no se especifica ningn

    modificador), es visible dentro del paquete en el quese define

    private: visible slo desde la propia clase protected: visible en las clases derivadas (subclases) y

    dentro del paquete en el que se define public: visible desde cualquier sitio

    Otros modificadores final: indica que no puede ser modificado static: comn a todos los objetos de una misma clase

    No aplicablea clases

  • 7/28/2019 Introduccion a Java.pdf

    39/46

    Modificadores de visibilidad

    Modificador Misma clase Mismo

    paquete

    Subclases Otros

    private

    friendly

    protected

    public

  • 7/28/2019 Introduccion a Java.pdf

    40/46

    Ocultacin de la informacin

    Propiedad de ocultar atributos o mtodos a otros objetos.Algunos autores usan el trmino encapsulacin Se basa en la separacin entre especificacin e

    implementacin.

    En Java se consigue mediante el uso de modificadoresde visibilidad No es necesario conocer la implementacin de una clase

    para usar objetos de esa clase, por eso en general serecomienda disear clases con

    Atributos privados Mtodos pblicos para acceder o modificar los atributos

  • 7/28/2019 Introduccion a Java.pdf

    41/46

    Mtodos estticos

    Mtodos estticos impiden acceso a atributos noestticos .

    Versin no esttica:

    public static Color getColorPorDefecto() {

    returnCOLOR_POR_DEFECTO;}

    public static double area(double radio) {

    returnMath.PI* radio * radio;

    }

    public double area() {

    returnMath.PI*this.radio *this.radio;

    }

  • 7/28/2019 Introduccion a Java.pdf

    42/46

    Mtodos estticos

    Los mtodos estticos pueden invocarse directamente sobrela clase, pues no acceden a atributos no estticos.

    La versin no esttica requiere crear primero un objeto:

    double area = Circulo.area(10.0);

    Circulo c = new Circulo(10.0, Color.red);

    double area = c.area();

  • 7/28/2019 Introduccion a Java.pdf

    43/46

    Ejercicios propuestos

    Escribe la clase Estadsticas, capaz decalcular la media y la desviacin tpica de unvector de nmeros.

    Escribe clase ConversorFsico para convertirmagnitudes fsicas, por ejemplo dekilmetros a millas y viceversa

    Escribe clase ConversorMonedas para

    convertir monedas, por ejemplo de euros adlares y viceversa

    Estructuras de Datos y Algoritmos 43

  • 7/28/2019 Introduccion a Java.pdf

    44/46

    Ejercicio Propuesto

    Implementar una clase que permita gestionar unconjunto de crculos (como mximo 10 crculos) Los crculos se guardarn en un vector de 10

    elementos

    El constructor debe crear un vector vaco

    Consultores: leer el nmero de crculos insertados ypoder recuperar un crculo del vector dado su ndice

    Modificadores: insertar un crculo en el vector (si haymenos de 10)

    Mtodos toString() y equals()

  • 7/28/2019 Introduccion a Java.pdf

    45/46

    Algunas convenciones

    Identificadores de paquete:lowercase.for.all.components

    Id. de clase e interfaz:CaptializedWithInternalWordsCapitalized

    Id. de mtodo:firstWordLowercaseButInternalWordsCapitalized() Id. de variable:

    firstWordLowercaseButInternalWordsCapitalized

    Id. de constante: UPPER_CASE_WITH_UNDERSCORES Los identificadores no pueden empezar con un nmero

    o signo #

  • 7/28/2019 Introduccion a Java.pdf

    46/46

    Clases ejecutables

    package ejemplos.tema1;

    public class HolaMundo {

    static final Stringmsg="Hola mundo";

    /* Ejecucin requiere implementar mtodopublic static main con un parmetro de tipoString[] */

    public static voidmain(String[] args) {

    System.out.println(msg);

    }

    }

    Es necesario instanciar la clase para ejecutar main ?