Programming

T05-001-04 Métodos constructores.

Enunciado

Constructor con parámetros

Como el constructor de una clase sirve para inicializar las propiedades de los objetos que se instancian, habitualmente se incorpora en la definición de la clase un constructor con parámetros, que se invoca con los valores que queremos que se utilicen en la inicialización de las propiedades del objeto.

Ejemplo:

public class OOP {

    public static void main(String[] args) {
        SubClase miObj = new SubClase(5, 7);
        System.out.println(miObj.suma());
    }

}

class SubClase {

    int x, y;

    public SubClase(int _x, int _y) {
        x = _x;
        y = _y;
    }

    public int suma() {
        return x + y;
    }
}

Podemos observar que el resultado de la suma es el obtenido de sumar los valores que se envían al método constructor.

Ejercicio

Partiendo de la clase Modulo que soluciona el último ejercicio, crea el constructor de la clase con parámetros al que se le enviarán los valores del nombre y de la nota recogidos previamente por teclado.

Solución


											
package oop; import java.util.Scanner; public class OOP { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int nota; String nombre; System.out.println("Escriba el nombre del modulo: "); nombre = sc.nextLine(); do { System.out.println("Escriba la nota del modulo: "); nota = sc.nextInt(); } while (nota > Modulo.calificacionMaxima()); Modulo miModulo = new Modulo(nota, nombre); System.out.println("Nombre del modulo: " + miModulo.nombre); System.out.println("Nota: " + miModulo.nota); System.out.println("Calificacion textual: " + miModulo.calificacion()); } } class Modulo { int nota; String nombre; public Modulo(int _nota, String _nombre) { nota = _nota; nombre = _nombre; } public String calificacion() { String laCalificacionTextual; switch (nota) { case 0: case 1: laCalificacionTextual = "Muy deficiente"; break; case 2: case 3: case 4: laCalificacionTextual = "Insuficiente"; break; case 5: laCalificacionTextual = "Suficiente"; break; case 6: laCalificacionTextual = "Bien"; break; case 7: case 8: laCalificacionTextual = "Notable"; break; case 9: case 10: laCalificacionTextual = "Sobresaliente"; break; default: laCalificacionTextual = "Fuera de rango"; } return laCalificacionTextual; } static int calificacionMaxima() { return 10; } }

Input

Programacion 13 12 7
Bases de Datos 11 15 21 9

Output

Escriba el nombre del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Nombre del modulo: Programacion Nota: 7 Calificacion textual: Notable
Escriba el nombre del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Nombre del modulo: Bases de Datos Nota: 9 Calificacion textual: Sobresaliente