Tutorial JAVA (X)


java11.jpg

Para continuar con el desarrollo de clases y subclases, es decir con la herencia en java, vamos a realizar un nuevo ejercicio que se centrara en un juego de peleas.

El código es sencillo pero extenso, así que lo desarrollaremos en varios post para que no sean demasiado largos.

El ejercicio se centra en una clase principal o superclase, y tres clases derivadas o subclases. La superclase recoge los valores comunes a todos los objetos y cada una de las subclases añadirá sus características propias.

La superclase recogerá las características comunes a todos los personajes que participan en las peleas y la denominaremos Ente. Abriremos nuestra aplicación Eclipse y añadiremos un nuevo proyecto al que llamaremos nueve y una primera clase que denominaremos Ente.

Lo primero que añadiremos a nuestro código es una importación de la clase util de java.

  1. import java.util.*;
  2. public class Ente {

Después dispondremos los atributos de la clase:

  1. private int fuerza;
  2. private int velocidad;
  3. private int agilidad;
  4. private int suerte;
  5. private int potencia;

Estas variables privadas serán las características de todos los personajes. Es decir todos los personajes participantes en las peleas tendrán fuerza, velocidad, agilidad, potencia y un valor aleatorio del 1 al 10 que será su suerte.

A continuación crearemos un objeto de la clase Scanner para poder tomar los valores que el usuario nos indique por medio del teclado.

  1. Scanner sc=new Scanner(System.in);

Continuaremos con la creación de los get y lo set de los atributos que hemos creado. Controlaremos que los valores que los usuarios introduzcan destinados a los atributos fuerza, velocidad y agilidad no sean superiores a 9 ni inferiores a 1. En caso que este filtro no se cumpla les otorgaremos a los atributo en cuestión el valor de 1.

  1. public int getFuerza() {
  2. return fuerza;
  3. }
  4. public void setFuerza(int fuerza) {
  5. if(fuerza<=9 && fuerza>=1){
  6. this.fuerza = fuerza;
  7. }
  8. else{
  9. this.fuerza = 1;
  10. }
  11. }
  12. public int getVelocidad() {
  13. return velocidad;
  14. }
  15. public void setVelocidad(int velocidad) {
  16. if(velocidad<=9 && velocidad>=1){
  17. this.velocidad = velocidad;
  18. }
  19. else{
  20. this.velocidad = 1;
  21. }
  22. }
  23. public int getAgilidad() {
  24. return agilidad;
  25. }
  26. public void setAgilidad(int agilidad) {
  27. if(agilidad<=9 && agilidad>=1){
  28. this.agilidad = agilidad;
  29. }
  30. else{
  31. this.agilidad = 1;
  32. }
  33. }

El atributo suerte no hará falta filtrar su valor ya que será un valor aleatorio.

  1. public int getSuerte() {
  2. return suerte;
  3. }
  4. public void setSuerte(int suerte){
  5. this.suerte = suerte;
  6. }

Por otra parte el atributo potencia tampoco será preciso que lo verifiquemos. Este valor será el resultado de la multiplicación de los valores anteriores.

  1. public int getPotencia() {
  2. return potencia;
  3. }
  4. public void setPotencia(int potencia) {
  5. this.potencia = potencia;
  6. }

Para calcular el valor del atributo potencia crearemos el método PotenciaPersonaje que recibirá tres parámetros: la fuerza, la velocidad y la agilidad. Utilizando el método random() de la clase Math, hablaremos mas profundamente de ella en posteriores post valga decir que es la clase de java que se encarga básicamente de los cálculos matemáticos, generaremos un número aleatorio entre 1 y 10. Como esta clase genera números aleatorios del 0,1 al 0,9 tendremos que multiplicarlo por 10 y sumarle un 1. Este valor será el grado de suerte del ente. Y lo utilizaremos, junto con los otros tres parámetros que hemos recibido para calcular su potencia.

  1. void PotenciaPersonaje(int fuer, int velo, int agi){
  2. int fortuna;
  3. fortuna = (int) (Math.random()*10+1);
  4. setSuerte(fortuna);
  5. setPotencia(fuer*velo*agi*fortuna);
  6. }

Por ultimo utilizaremos el constructor de la clase para pedir los valores que precisamos al usuario y realizar los cálculos para llegar a la potencia de cada personaje que participara en las peleas.

  1. Ente(String persona){
  2. System.out.println("Del 1 al 9 que fuerza tendra este " + persona);
  3. setFuerza(sc.nextInt());
  4. System.out.println("Del 1 al 9 que velocidad tendra este " + persona);
  5. setVelocidad(sc.nextInt());
  6. System.out.println("Del 1 al 9 que agilidad tendra este " + persona);
  7. setAgilidad(sc.nextInt());
  8. PotenciaPersonaje(fuerza, velocidad, agilidad);
  9. }

Nuestro constructor recibe un parámetro que le indicara que tipo de ente se esta construyendo.

El código completo de este post quedara de esta manera:

  1. import java.util.*;
  2. public class Ente {
  3. private int fuerza;
  4. private int velocidad;
  5. private int agilidad;
  6. private int suerte;
  7. private int potencia;
  8. Scanner sc=new Scanner(System.in);
  9. public int getFuerza() {
  10. return fuerza;
  11. }
  12. public void setFuerza(int fuerza) {
  13. if(fuerza<=9 && fuerza>=1){
  14. this.fuerza = fuerza;
  15. }else{
  16. this.fuerza = 1;
  17. }
  18. }
  19. public int getVelocidad() {
  20. return velocidad;
  21. }
  22. public void setVelocidad(int velocidad) {
  23. if(velocidad<=9 && velocidad>=1){
  24. this.velocidad = velocidad;
  25. }
  26. else{
  27. this.velocidad = 1;
  28. }
  29. }
  30. public int getAgilidad() {
  31. return agilidad;
  32. }
  33. public void setAgilidad(int agilidad) {
  34. if(agilidad<=9 && agilidad>=1){
  35. this.agilidad = agilidad;
  36. }
  37. else{
  38. this.agilidad = 1;
  39. }
  40. }
  41. public int getSuerte() {
  42. return suerte;
  43. }
  44. public void setSuerte(int suerte){
  45. this.suerte = suerte;
  46. }
  47. public int getPotencia() {
  48. return potencia;
  49. }
  50. public void setPotencia(int potencia) {
  51. this.potencia = potencia;
  52. }
  53. void PotenciaPersonaje(int fuer, int velo, int agi){
  54. int fortuna;
  55. fortuna = (int) (Math.random()*10+1);
  56. setSuerte(fortuna);
  57. setPotencia(fuer*velo*agi*fortuna);
  58. }
  59. Ente(String persona){
  60. System.out.println("Del 1 al 9 que fuerza tendra este " + persona);
  61. setFuerza(sc.nextInt());
  62. System.out.println("Del 1 al 9 que velocidad tendra este " + persona);
  63. setVelocidad(sc.nextInt());
  64. System.out.println("Del 1 al 9 que agilidad tendra este " + persona);
  65. setAgilidad(sc.nextInt());
  66. PotenciaPersonaje(fuerza, velocidad, agilidad);
  67. }
  68. }

En el próximo post comenzaremos a desarrollar las subclases o clases derivadas.

Enlaces interesantes

  • Eclipse
  • Página oficial de Java en español





Opiniones sobre Tutorial JAVA (X)

Hace 14 años y 8 meses

muy bueno, muchas gracias



Opina sobre Tutorial JAVA (X)

Nombre:

Tu email:

Página web (si tienes):

Opinar:

Escoge el recuadro negro: para evitar spam