Primo codice, utilizzo dell'ereditarietà e polimorfismo

di il
46 risposte

46 Risposte - Pagina 4

  • Re: Primo codice, utilizzo dell'ereditarietà e polimorfismo

    Sulla scia del codice consigliatomi da AndBin ho elaborato qualcosa di mio e ringrazio tanto per le dritte:
    import baseNumerica.*;
    public class Main {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String mioNumero="AB34";
    System.out.println("La cifra da convertire "+mioNumero);
    System.out.println();
    BaseNumerica[] arrayX=new BaseNumerica[3];
    arrayX[0]=new Binario();
    arrayX[1]=new Decimale();
    arrayX[2]=new Esadecimale();
    for (BaseNumerica x:arrayX)
    if (x.isOk(mioNumero))
    System.out.println("E' un numero corretto in base "+x.getBASE());
    else
    System.out.println("Non é un numero corretto in base "+x.getBASE());
    }
    }

    package baseNumerica;
    public abstract class BaseNumerica {
    private int base;
    public BaseNumerica() {
    System.out.println("Nessuna base");
    }
    public BaseNumerica(int base) {
    setBase(base);
    // System.out.println("Questo numero verrà analizzato in base "+base);
    }
    public boolean isOk(String stringa) {
    for (char cifra:stringa.toCharArray())
    if (!isOk(cifra))
    return false;
    return true;
    }
    abstract boolean isOk(char cifra);

    package baseNumerica;
    public class Binario extends BaseNumerica {
    private final static int BASE=2;
    public Binario() {
    super(BASE);
    }
    public boolean isOk(String stringa) {
    return super.isOk(stringa);
    }
    boolean isOk(char cifra) {
    if (cifra=='0' || cifra=='1')
    return true;
    return false;
    }
    }
  • Re: Primo codice, utilizzo dell'ereditarietà e polimorfismo

    Ok fatto anche x i decimali, ho usato una serie di if nidificati e dei flag:,
    Flag segno, flag virgola,
    Ora sto studiando come fare la conversione generica in modo da usare l'ereditarietà ed avere un unico per tutte le conversioni
Devi accedere o registrarti per scrivere nel forum
46 risposte