Ti ringrazio della risposta e del suggerimento (che sto guardando e voglio approfondire), ma quello che l'esercizio chiedeva è la costruzione di un metodo che dia come risultato del confronto true o false, e da lì stilare una lista ordinata.
Il problema per me non è trovare un metodo per riordinare gli oggetti, ma richiamarli all'interno dei metodi o dei comandi da eseguire!
Faccio un altro esempio di esercizio che non riesco a risolvere, dato che l'ho compreso meglio (l'ho costruito da capo) ma mi blocco nello stesso punto:
La classe Veicolo:Scrivere una classe Veicolo che prevede una targa, una marca e un modello. La classeprevede anche una variabile booleana che descrive se il veicolo e guasto. Aggiungere un costruttore op-
portuno e vari metodi get e set opportuni. Scrivere la classi Vettura e Motociclo che estendono la classe
Veicolo. La classe Vettura prevede una stringa che ne descrive la tipologia ("utilitaria","station wagon",
"SUV",....) mentre la classe Motociclo prevede un numero che ne descrive la cilindrata (50, 125, ....).
Per testare le classi, scrivere un programma UsaVeicoli che crea un array inizializzato con veicoli
delle varie tipologie. Alcuni dei veicoli inseriti nell'array dovranno diventare guasti. Il programma deve
stampare la lista delle targhe dei veicoli guasti.
la classe motociclo:codice:public class Veicolo { private int targa; private String marca; private String modello; private boolean guasto; //inserire costruttore public Veicolo (int targa, String marca, String modello, boolean guasto){ this.targa = targa; this.marca = marca; this.modello = modello; this.guasto = guasto; } //get informazioni public int getTarga(){ return targa; } public String getMarca() { return marca; } public String getModello() { return modello; } public boolean getGuasto() { return guasto; } int capienzaArray = 100; Veicolo[] veicoliV = new Veicolo[capienzaArray]; public void stampaTarga(){ System.out.println("Questo veicolo è guasto: " + getTarga()); } }
la classe vettura:codice:public class Motociclo extends Veicolo { private int cilindrata; //costruttore public Motociclo(int targa, String marca, String modello, boolean guasto, int cilindrata) { super(targa, marca, modello, guasto); // TODO Auto-generated constructor stub this.cilindrata = cilindrata; } public int getCilindrata() { return cilindrata; } }
e mi blocco al programma UsaVeicoli, che nel mio cervello dovrebbe essere qualcosa del genere (lasciando perdere per ora la randomizzazione del guasto):codice:public class Vettura extends Veicolo { private String tipologia; //costruttore public Vettura(int targa, String marca, String modello, boolean guasto, String tipologia) { super(targa, marca, modello, guasto); this.tipologia = tipologia; // TODO Auto-generated constructor stub } public String getTipologia(){ return tipologia; } }
Nell'esempio credo si veda bene che non ho capito come costruire e usare un oggetto e un array di oggetti. Sto davvero iniziando a confondermi.codice:public class UsaVeicoli { public static void main ( String args []) { /*tutti questi oggetti entrano a far parte dell'array veicoliV, giusto? Perché io ho creato un array di tipo Veicolo[], chiamato veicoliV, ma dato che Motociclo e Vettura sono sottoclassi di Veicolo sono automaticamente incluse*/ Motociclo mot1 = new Motociclo(4853, "Audi", "smart", false, 150); Veicolo veic1 = new Veicolo(7683, "Fiat", "panda", false); Vettura vett1 = new Vettura(67894, "Volvo", "sportivo", true, "SUV"); /*perché non posso usare veicoliV.length? Se veivoliV è un array, dovrei poter interagire su di esso e sulle sue posizioni, no? Perché non posso?*/ for (int i= 0; i < 3; i++){ if (veicoloV[i] == true){ veicoloV[i].stampaTarga(); } } } }

Rispondi quotando
spero di essermi spiegata bene!

beh l'ho risolto, grazie al tuo consiglio che mi ha permesso di arrivare ad una soluzione più logica
