viernes, 30 de septiembre de 2011

Herencia

Bueno, aquí están dos códigos en los cuales mostré un avance en mi proyecto(lo fue siendo el demo), y de esta manera se puede apreciar un poco de lo que es la herencia, y de como se utilizan las funciones o métodos.
Como se ve en la clase RandomColor posee tres funciones que regresan un valor, el cual se almacena en la clase Color, para que en la clase Color, se puedan mover los colores de diversas formas.

Clase RandomColor

import java.util.Random;


public class RandomColor
{      
    protected int color1;
    protected int color2;
    protected int color3;

    public void estableceColor()
    {
        Random colorAleatorio = new Random();
        int a[] = new int[ 3 ];
        int almacena;

      
        for( int i = 0; i < 3; i++ ){

            almacena = 1 + colorAleatorio.nextInt( 5 );
            a[ i ] = almacena;


            switch( almacena )
            {
                case 1:
                    System.out.println( "Amarillo" );              
                break;

                case 2:
                    System.out.println( "Rojo" );
                break;

                case 3:
                    System.out.println( "Azul" );
                break;

                case 4:
                    System.out.println( "Verde" );
                break;

                case 5:
                    System.out.println( "Morado" );
                break;
            }
        }
      
        color1 = a[ 0 ];
        color2 = a[ 1 ];
        color3 = a[ 2 ];

        System.out.println();
    }

    public int obtieneColor1()
    {
        return color1;
    }


    public int obtieneColor2()
    {
        return color2;
    }


    public int obtieneColor3()
    {
        return color3;
    }




Clase Color

import java.util.Random;
import java.util.Scanner;

public class Color extends RandomColor
{
    public void moverColor()
    {

        int comodin;
        int b[] = new int [ 3 ];
        b[ 0 ] = obtieneColor1();
        b[ 1 ] = obtieneColor2();
        b[ 2 ] = obtieneColor3();

        for( int i = 1; i <= 3; i++ ){
            comodin = i;
            if( i == 3 ){
                comodin = comodin - 3;
                mostrarPieza( b[ comodin ] );
            }
            else{
                mostrarPieza( b[ comodin ] );
            }
        }
    }

    public void moverColor2()
    {

        int comodin;
        int b[] = new int [ 3 ];
        b[ 0 ] = obtieneColor1();
        b[ 1 ] = obtieneColor2();
        b[ 2 ] = obtieneColor3();

        for( int i = 2; i >= 0; i-- ){
            comodin = i;
            if( i % 2 == 0 ){
                mostrarPieza( b[ comodin ] );
            }

           
        }
        mostrarPieza( b[ 1 ] );
    }

    public void moverColor3()
    {
        int comodin;
        int b[] = new int [ 3 ];
        b[ 0 ] = obtieneColor1();
        b[ 1 ] = obtieneColor2();
        b[ 2 ] = obtieneColor3();

        for( int i = 0; i < 3; i++ ){

            mostrarPieza( b[ i ] );
        }
    }

    public void preguntarMover()
    {
        int opcion;
        Scanner entrada = new Scanner( System.in );
        int contador = 0;
   
        do{
            System.out.print( "Mover (8): " );
            opcion = entrada.nextInt();

            if( opcion != 8 ){
                break;
            }
            else{
                moverColor();
            }
            System.out.println();

            System.out.print( "Mover (8):  " );
            opcion = entrada.nextInt();

            if( opcion != 8 ){
                break;
            }
            else{
                moverColor2();
            }
            System.out.println();

            System.out.print( "Mover (8): " );
            opcion = entrada.nextInt();

            if( opcion != 8 ){
                break;
            }
            else{
                moverColor3();
           
            }
            System.out.println();


        }while( opcion == 8 );
    }

    public void mostrarPieza( int almacena )
    {
        switch( almacena )
        {
            case 1:
                System.out.println( "Amarillo" );               
            break;

            case 2:
                System.out.println( "Rojo" );
            break;

            case 3:
                System.out.println( "Azul" );
            break;

            case 4:
                System.out.println( "Verde" );
            break;

            case 5:
                System.out.println( "Morado" );
            break;
        }

    }
}

1 comentario:

  1. Sigo recomenándote fuertemente que desacoples la interfaz de usuario de la funcionalidad; si no, va a ser una pesadilla pasar esto a una interfaz gráfica.

    En cuanto a herencia, está algo difícil de interpretar tu entrada, ya que falta explicación y, como el código no está marcado (trata de usar Syntax Highlighter), tampoco está fácil de leer.

    Calificación: 3.75/5

    ResponderEliminar