Ejemplos

Ejemplo de la unidad 02
import java.util.Scanner;

public class EjemploUT02 {

    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);

        //Introducir texto desde teclado
        String texto;
        System.out.print("Introduce un texto: ");
        texto = teclado.nextLine();
        System.out.println("El texto introducido es: " + texto);

        //Introducir un número entero desde teclado
        String texto2;
        int entero2;
        System.out.print("Introduce un número: ");
        texto2 = teclado.nextLine();
        entero2 = Integer.parseInt(texto2);
        System.out.println("El número introducido es:" + entero2);

        //Introducir un número decimal desde teclado
        String texto3;
        double doble3;
        System.out.print("Introduce un número decimal: ");
        texto3 = teclado.nextLine();
        doble3 = Double.parseDouble(texto3); // convertimos texto a doble
        System.out.println("Número decimal introducido es: " + doble3);

        System.out.println("La clase String");
        String nombre = "Javier "; //Observa que hay un espacio final
        System.out.println(nombre.toUpperCase()); //JAVIER 
        System.out.println(nombre.charAt(4)); //E
        System.out.println(nombre.indexOf("i"));//3
        System.out.println(nombre.substring(0, 3));//JAVI
        System.out.println(nombre.toLowerCase());//javier
        System.out.println(nombre.trim());//Javier sin espacios finales
        System.out.printf("%,.2f\n", 12345.1684);

        System.out.format("El valor de la variable float es %f"
                + ", mientras que el valor del entero es %d"
                + " y el string contiene %s", doble3, entero2, texto);

        System.err.println("Salida de error por pantalla");
    }
}

ejemplo

Clase Pajaro

Vamos a ilustrar mediante un ejemplo la utilización de objetos y métodos, así como el uso de parámetros y el operador this. Aunque la creación de clases la veremos en las siguientes unidades, en este ejercicio creamos una pequeña clase para que podamos instanciar el objeto con el que vamos a trabajar.

Las clases se suelen representar como un rectángulo, y dentro de él se sitúan los atributos y los métodos de dicha clase.

ejemplo_pajaro

En la imagen anterior, la clase Pajaro está compuesta por tres atributos, uno de ellos el nombre y otros dos que indican la posición del ave, posX y posY. Tiene dos métodos constructores y un método volar(). Como sabemos, los métodos constructores reciben el mismo nombre de la clase, y puede haber varios para una misma clase, dentro de ella se diferencian unos de otros por los parámetros que utilizan.

ENUNCIADO
Dada una clase principal llamada Pajaro, se definen los atributos y métodos que aparecen en la imagen anterior. Los métodos realizan las siguientes acciones:

  • Pajaro(). Constructor por defecto. En este caso, el constructor por defecto no contiene ninguna instrucción, ya que Java inicializa de forma automática las variables miembro, si no le damos ningún valor.

  • Pajaro(String nombre, int posX, int posY). Constructor que recibe como argumentos una cadena de texto y dos enteros para inicializar el valor de los atributos.

  • volar(int posX, int posY). Método que recibe como argumentos dos enteros: posX y posY, y devuelve un valor de tipo double como resultado, usando la palabra clave return. El valor devuelto es el resultado de aplicar un desplazamiento de acuerdo con la siguiente fórmula:

    formula04

Diseña un programa que utilice la clase Pajaro, crea una instancia de dicha clase y ejecute sus métodos.

SOLUCIÓN
Lo primero que debemos hacer es crear la clase Pajaro, con sus métodos y atributos. De acuerdo con los datos que tenemos, el código de la clase sería el siguiente:

public class Pajaro {

    String nombre;
    int posX, posY;

    public Pajaro() {
    }

    public Pajaro(String nombre) {
        this.nombre = nombre;
    }

    public Pajaro(String nombre, int posX, int posY) {
        this.nombre = nombre;
        this.posX = posX;
        this.posY = posY;
    }

    double volar(int posX, int posY) {
        double desplazamiento = Math.sqrt(posX * posX + posY * posY);
        this.posX = posX;
        this.posY = posY;
        return desplazamiento;
    }
    //método main()
    [...] 
}

Debemos tener en cuenta que se trata de una clase principal, lo cual quiere decir que debe contener un método main() dentro de ella. En el método main() vamos a situar el código de nuestro programa. El ejercicio dice que tenemos que crear una instancia de la clase y ejecutar sus métodos, entre los que están el constructor y el método volar().

También es conveniente imprimir el resultado de ejecutar el método volar(). Por tanto, lo que haría el programa sería:

  • Crear un objeto de la clase e inicializarlo.

  • Invocar al método volar.

  • Imprimir por pantalla la distancia recorrida.

Para inicializar el objeto utilizaremos el constructor con parámetros, después ejecutaremos el método volar() del objeto creado y finalmente imprimiremos el valor que nos devuelve el método.

Luego crearemos otro pajaro2 usando el constructor por defecto (sin parámetros). Le asignaremos el nombre y la posición manualmente, y calcularemos su desplazamiento llamando al método, pero usando los atributos del objeto (pajaro2.posX y pajaro2.posY) en lugar de constantes. El código del método main() quedaría como sigue:

public static void main(String[] args) {
  //creamos el objeto con parámetros
  Pajaro pajaro1 = new Pajaro("WoodPecker", 50, 50);
  double d1 = pajaro1.volar(50, 50);
  System.out.printf("\nEl desplazamiento de %s ha sido %.2f",pajaro1.nombre,d1);

  Pajaro pajaro2 = new Pajaro();
  //damos nombre y cambiamos la posición de "Piolin" a mano
  pajaro2.nombre="Piolín";
  pajaro2.posX=30;
  pajaro2.posY=30;
  double d2 = pajaro2.volar(pajaro2.posX, pajaro2.posY);
  System.out.printf("\nEl desplazamiento de %s ha sido %.2f\n",pajaro2.nombre,d2);
}

ejemplo