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
staticsignifica que puede ser accedido sin necesidad de crear un objeto de la clase, a diferencia del modificadorpublic, 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étodomain(), 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

