Programming

T05-001-03 Métodos.

Enunciado

Métodos static.

A menudo, veremos programas Java que tienen atributos y métodos con modificadores static.

Un método creado con el modificador static significa que puede ser accedido sin necesidad de crear un objeto de la clase, a diferencia del modificador public, que significa que únicamente puede ser accedido a través de instancias (objetos) de la clase.

Ejemplo:

En el siguiente código, creamos un método static de la Subclase para mostrar un mensaje con el uso que se le puede dar a los parámetros de la clase. Para utilizar dicho método, no es necesario instanciar ningún objeto de la clase:

package oop_ejemplos;

public class OOP_ejemplos {

    public static void main(String[] args) {
        SubClase.uso();
    }
    
}

class SubClase {
  int x = 5;
  int y = 7;
   
  static void uso() {
      System.out.println("x indica el ancho e y el alto");
  }
}

Ejercicio

Modifica el ejercicio anterior, añadiendo un método estático calificacionMaxima() que devuelve la calificación máxima permitida en el módulo (10). La aplicación solicitará por teclado, en el método main(), la calificación del módulo, hasta que la calificación sea menor o igual a la calificación máxima permitida.

Solución


											
package oop; import java.util.Scanner; public class OOP { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { Modulo miModulo = new Modulo(); do { System.out.println("Escriba la nota del modulo: "); miModulo.nota = sc.nextInt(); } while (miModulo.nota > Modulo.calificacionMaxima()); 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 = 8; String nombre = "Programacion"; 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

13 12 7
11 15 21 9

Output

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 la nota del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Escriba la nota del modulo: Nombre del modulo: Programacion Nota: 9 Calificacion textual: Sobresaliente