Visualizzazione dei risultati da 1 a 2 su 2

Visualizzazione discussione

  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java]compareTo con superclasse di tipo abstract e sottoclassi

    Ciao devo implementare una classe che costruisca delle torri;la superclasse è abstract e le sottoclassi ne devono implementarne i metodi:

    codice:
    import java.lang.*;
    abstract class Blocco implements Comparable<Blocco>{
    String colore;Blocco(String colore){
    this.colore=colore;
    }
    public String getColore(){
    return colore;
    }
    abstract boolean puoStareSopra(Blocco b);
    public abstract int compareTo(Blocco o);
    }
    poi:

    codice:
    
    import java.util.*;
    class BloccoNumerato extends Blocco implements {
    int numero;
    BloccoNumerato(String colore,int numero){
    super(colore);
    this.numero=numero;
    }
    /** if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }*/
    public boolean equals(Blocco bn){
    return colore.equals(bn.colore);
    }
    /**puoStareSopra(Blocco b)
      che restituisce true se, nella costruzione della torre, questo blocco puo' stare sopra al blocco 
      specificato dal parametro b, false altrimenti. 
      Si assume che b sia un blocco disponibile (quindi, b!= null).*/
      
    public  boolean puoStareSopra(Blocco b){
    if(b.colore=="jolly"){
    return true;
    }else
    return false;
    }
    public int compareTo(Blocco o){
    int verifica=colore.compareTo(o.colore);
    if(verifica!=0){
    return verifica;
    }else
    return this.numero.compareTo(numero);
    }
    public String toString(){
    String s="";
    return s+=colore+ " "+numero;
    }
    public static void main(String[] args){
    BloccoNumerato i= new BloccoNumerato("blu",-5);
    BloccoNumerato n=new BloccoNumerato("blue",-1);
    ArrayList<Blocco> b=new ArrayList<Blocco>();
    b.add(i);
    b.add(n);
    Collections.sort(b);
    for(Blocco v:b){
     System.out.println(v);
     }
     }
     }
    Il punto è che Io vorrei verifcare che se due oggetti di tipo BloccoNumerato hanno lo stesso nome(con compareTo),allora comparo il numero...il compilatore mi dà errore...solo che non sò come posso fare xkè solo la classe Blocco può implementare il metodo comparable<Blocco>...come posso appilcare compareTo(della classe Blocco)anche con numeri(che è della classe BloccoNumerato)?
    Ultima modifica di el92; 12-05-2015 a 12:12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.