Mostrando entradas con la etiqueta Ejemplos Clase 2. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ejemplos Clase 2. Mostrar todas las entradas

martes, 15 de febrero de 2011

C2, 05/02/11: Ejemplos


  1. Ejemplo 1:

  2. En este ejemplo se define la clase Circulo.java y se utiliza en este sencillo programa Figuras.java.


    ¿Funciona como esperabas?.


    Prueba a jugar con el ejemplo para crear nuevos círculos.



    • Código "circulo.java"


    • //
      // Circulo.java
      // Figuras
      //
      // Created by Oscarin on 11/07/06.
      //

      public class Circulo {
      private final static float PI = 3.141592f;
      private float radio = 0.0f; // Radio por defecto

      // Constructor por defecto
      public Circulo() {};

      /**
      * Devuelve el valor de PI.
      * Se declara static porque accede a un atributo static
      */
      public static float getPI() {
      return PI;
      }

      /**
      * Método static que intercambia dos referencias
      * Las referencias se pasan por valor
      * @param Circulo uno El primer círculo
      * @param Circulo dos El segundo círculo
      */
      public static void intercambia(Circulo uno, Circulo dos) {
      Circulo tmp; // Referencia temporal
      tmp = uno;
      uno = dos;
      dos = tmp;
      }

      /**
      * Función get para leer el radio
      * @return Devuelve el radio del círculo
      */
      public float getRadio() {
      return radio;
      }

      /**
      * Método que cambia el valor del radio.
      * Antes de cambiar el radio comprobamos que no es
      * un valor negativo.
      * @param float radio El nuevo valor para el radio
      */
      public void setRadio(float radio) {
      if(radio >= 0) this.radio = radio;
      }

      /**
      * Devuelve el área del círculo.
      * @return El valor del área.
      */
      public float getArea() {
      return PI*radio*radio;
      }
      }

    • Código "Figuras.java":


    • //
      // Figuras.java
      // Figuras
      //
      // Created by Oscarin on 11/07/06.
      //

      public class Figuras {

      public static void main (String args[]) {
      // No necesitamos crear una instancia para acceder
      // a un método static
      System.out.println("El valor de PI es: " + Circulo.getPI());

      // Creamos una instancia
      Circulo circulo = new Circulo();
      // Cambiamos el valor del radio
      circulo.setRadio(1.0f);
      // Calculamos el valor del area del círculo
      System.out.println("El radio del circulo es: " + circulo.getRadio() + ", y su area es: " + circulo.getArea());

      Circulo otroCirculo = new Circulo();
      otroCirculo.setRadio(2.0f);

      // Mostramos información de los dos círculos
      System.out.println("El primer circulo tiene radio: " + circulo.getRadio());
      System.out.println("Y el segundo circulo tiene radio: " + otroCirculo.getRadio());

      // Ahora intercambiamos las referencias
      Circulo.intercambia(circulo, otroCirculo);

      // Mostramos información de los dos círculos
      System.out.println("El primer circulo tiene radio: " + circulo.getRadio());
      System.out.println("Y el segundo circulo tiene radio: " + otroCirculo.getRadio());

      // !!!!QUE FALLÓ
      }
      }


  3. Ejemplo 2:

  4. Aquí tienes una posible solución al ejercicio de la Agenda telefónica. Descarga el código, construye un proyecto con él, ejecútalo, estúdialo y compáralo con tu propio código.


    • Persona.java

    • Mismo código que en el ejercicio resuelto anteriormente solo que utiliza una sola variable para guardar la información "apellidos".


    • Agenda.java


    • package agenda;

      public class Agenda {
      private static final int MAX_ENTRADAS = 100;
      private Persona entradas[] = new Persona[MAX_ENTRADAS];
      private int cnt = 0;

      public Agenda() {}

      public void nuevaEntrada(Persona nueva) {
      // TODO Aquí debería comprobar si queda espacio en la agenda.
      //MI SOLUCIÓN
      if(cnt== MAX_ENTRADAS){
      System.out.println("No queda espacio en la agenda");
      }
      else{
      entradas[cnt++] = nueva;
      }

      }

      public Persona buscaEntrada(String nombre) {
      Persona encontrado = new Persona("No encontrado", "", "");
      boolean seEncontro = false;
      int cnt = 0;
      while(!seEncontro && cnt < this.cnt) {
      if(entradas[cnt].getNombre().equals(nombre) == true) {
      encontrado = entradas[cnt];
      seEncontro = true;
      }
      cnt++;
      }
      return encontrado;
      }

      public Persona getEntrada(int posicion) {
      // TODO Debería comprobar que la posición está dentro de rango.
      //MI SOLUCIÓN
      Persona overRange = new Persona("La posición a la que intentas acceder está fuera de rango","","");
      if(posicion > MAX_ENTRADAS){
      return overRange;
      }
      else{
      return entradas[posicion];
      }

      }

      public int getNumeroEntradas() {
      return cnt;
      }
      }

    • Juega.java


    • package agenda;


      public class Juega {
      private Agenda agenda = new Agenda();
      private Juega(){}

      private void ejecuta() {
      agenda.nuevaEntrada(new Persona("Oscar", "Belmonte", "1"));
      System.out.println("Numero entradas: " + agenda.getNumeroEntradas());
      Persona tmp = agenda.buscaEntrada("Oscar");
      System.out.println("Nombre: " + tmp.getNombre());
      System.out.println("Apellidos: " + tmp.getApellidos());
      System.out.println("Telefono: " + tmp.getTelefono());
      }

      public static void main(String[] args) {
      new Juega().ejecuta();
      }

      }


  5. Ejemplo 3:

  6. Esta biblioteca de utilidades generadorNombres.jar te permite generar nombres, apellidos y otros datos de manera aleatoria para que no tengas que introducirlos por teclado.



    Su uso es muy sencillo, una vez que has añadido la biblioteca a tu proyecto, sólo tienes que crear una instancia de la clase GeneradorDatosINE quien es la que te proporcionará los métodos de utilidad tales como:


    • public String getNombre();

    • public String getApellidos();

    • ...