Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [Java]idee esercizio

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    20

    [Java]idee esercizio

    sono alle prime armi con il java.
    ho da risolvere un esercizio che richiede di creare un array di oggetti cd nel quale vi sono il Nome, l'autore, la durata, il prezzo. chiede tramite la classe collaudo di riempirli automaticamente e la possibilità di ordinarli per durata tramite un qualsiasi algoritmo di ordinamento e successivamente di visualizzare i dati dopo l'ordinamento.
    ho provato a stendere il codice creando un oggetto cd e un costruttore per la classe ma con scarsi risultati. ( a seguire il codice) qualcuno ha idea di come concatenare gli array in modo che se un valore viene spostato di posizione anche il suo equivalente viene spostato? il resto non è difficile

    public class test {
    String auth[]= new String [6];
    String title[]= new String [6];
    int time []= new int [6];
    double price [] = new double[6];
    test(String ath ,String tl, int tm,double pr){
    for( int i=0; i<6; i++){
    auth[i]=ath;
    title[i]=tl;
    time[i]=tm;
    price[i]=pr;
    }
    }
    }
    class collaudo{
    public static void main(String args[]){

    test cd1 = new test("Lady gaga", "The Fame monster", 118, 20.72);
    test cd2 = new test("Track 2 inediti", "Vasco Rossi", 95, 16.72);
    test cd3 = new test("if", "Mario biondi", 100, 17.52);
    test cd4 = new test("Laura live tour","Laura pausini", 98, 19.50);
    test cd5 = new test ("Crazy love", "Michael bublè", 90, 20.40);
    test cd6 = new test ("this is is", "Michael Jackson",120, 21.90);
    for(int i=0;i<cd1.auth.length; i++)
    System.out.println(cd1.auth[i]); //questa parte serve solo a dimostrare se l'array è stato riempito correttamente

    quest è solo un abbozzo, (ovviamente errato) ma sinceramente non ho idea di come implementare quello che mi chiede ogni suggerimento è il benvenuto.ringrazio in anticipo.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Crea un classe Cd con nome, autore, durate e prezzo. E poi crei un array di Cd.
    Tu ora hai un array di nomi, un array di autori, un array di durate e un array di prezzi.. Con la programmazione ad oggetti non c'entra nulla.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    20
    public class test {
    String auth;
    String title;
    int time;
    double price ;}

    Ma dichiarando un array di oggetti cd mi da errore e chiede il costruttore, mi potresti scrivere la dichiarazione dell'array di oggetti, magari sbaglio qualcosa io. grazie.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Ironwill
    public class test {
    String auth;
    String title;
    int time;
    double price ;}

    Ma dichiarando un array di oggetti cd mi da errore e chiede il costruttore, mi potresti scrivere la dichiarazione dell'array di oggetti, magari sbaglio qualcosa io. grazie.
    Non è difficile, sono argomenti trattati nei primi capitoli di qualsiasi libro java...

    codice:
    public class Cd {
      private String author, title;
      private int time;
      private double price;
    
      // costruttore e metodi getter/setter
    }
    
    Cd[] cd = new Cd[10];
    
    cd[0] = new Cd();
    ecc ecc...
    ..
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Ironwill
    public class test {
    String auth;
    String title;
    int time;
    double price ;}

    Ma dichiarando un array di oggetti cd mi da errore e chiede il costruttore, mi potresti scrivere la dichiarazione dell'array di oggetti, magari sbaglio qualcosa io. grazie.
    Innanzitutto metti il tuo codice frai gli appositi tag [CODE] così è più leggibile.

    La classe che hai appena definito è giusta, probabilmente hai inizializzato l'array di oggetti CD ma non li hai inizializzati singolarmente, devi farlo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    20
    codice:
    public class test {
     private	String auth;
     private	String title;
     private	int time;
     private 	double price;
      void cd(String au, String tl, int tm, double pr){
    	 this.auth = au;
    	 this.title = tl;
    	 this.time = tm;
    	 this.price = pr;
    	 
     }
      
    }
    
    	class collaudo{
    public static void main(String args[]){
    	test cd[] = new test[6];
    	cd[0]= cd ("Lady gaga", "The Fame monster", 118, 20.72);
    	cd[1]= cd ("Track 2 inediti", "Vasco Rossi", 95, 16.72);
    	cd[2]= cd ("if", "Mario biondi", 100, 17.52);
    	cd[3] = cd("Laura live tour","Laura pausini", 98, 19.50);
    	cd[4] = cd ("Crazy love", "Michael bublè", 90, 20.40);
    	cd[5] = cd("this is is", "Michael Jackson",120, 21.90);
    for(int i=0;i<6; i++)
    	System.out.println(cd[1]);
    la dichiarazione era identica ma il problema rimane, mi dice il metodo cd (string string, int, double) non è definito per il type collaudo e che ovviamente le variabili auth title ecc ecc non vengono usate. Dove diavolo sbaglio?

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Ironwill
    codice:
    public class test {
     private	String auth;
     private	String title;
     private	int time;
     private 	double price;
      void cd(String au, String tl, int tm, double pr){
    	 this.auth = au;
    	 this.title = tl;
    	 this.time = tm;
    	 this.price = pr;
    	 
     }
      
    }
    
    	class collaudo{
    public static void main(String args[]){
    	test cd[] = new test[6];
    	cd[0]= cd ("Lady gaga", "The Fame monster", 118, 20.72);
    	cd[1]= cd ("Track 2 inediti", "Vasco Rossi", 95, 16.72);
    	cd[2]= cd ("if", "Mario biondi", 100, 17.52);
    	cd[3] = cd("Laura live tour","Laura pausini", 98, 19.50);
    	cd[4] = cd ("Crazy love", "Michael bublè", 90, 20.40);
    	cd[5] = cd("this is is", "Michael Jackson",120, 21.90);
    for(int i=0;i<6; i++)
    	System.out.println(cd[1]);
    la dichiarazione era identica ma il problema rimane, mi dice il metodo cd (string string, int, double) non è definito per il type collaudo e che ovviamente le variabili auth title ecc ecc non vengono usate. Dove diavolo sbaglio?
    1. La tua classe si chiama test. Pessimo nome: stai rappresentando un CD, cosa c'entra quel nome? All'interno della classe test hai messo un metodo void cd che penso tu voglia usare come costruttore.. Solo che per essere usato come costruttore deve avere lo stesso nome della classe e non avere un valore di ritorno.
    2. cd[0]= cd non vuol dire nulla visto che manca il NEW.

    Curiosità, stai studiando su un libro o stai andando allo sbaraglio?

    edit: 3. All'interno del ciclo dovresti usare cd[i] e non cd[1]: ti mostrerà sempre solo il secondo elemento.

    4. Cd è un oggetto complesso, quando lo manderai in stampa non vedrai nulla ti interessante: solo il nome della classe seguita da un hash. Devi ridefinire il metodo toString().

    File Cd.java:
    codice:
    public class Cd
    {
    	private String author;
    	private String title;
    	private int time;
    	private double price;
    
    	public Cd(String author, String title, int time, double price)
    	{
    		this.author = author;
    		this.title = title;
    		this.time = time;
    		this.price = price;
    	}
    
    	public String getAuthor()
    	{
    		return author;
    	}
    
    	public void setAuthor(String author)
    	{
    		this.author = author;
    	}
    
    	public String getTitle()
    	{
    		return title;
    	}
    
    	public void setTitle(String title)
    	{
    		this.title = title;
    	}
    
    	public int getTime()
    	{
    		return time;
    	}
    
    	public void setTime(int time)
    	{
    		this.time = time;
    	}
    
    	public double getPrice()
    	{
    		return price;
    	}
    
    	public void setPrice(double price)
    	{
    		this.price = price;
    	}
    
    	@Override
    	public String toString()
    	{
    		return String.format("%s, %s - %d (%f)", title, author, time, price);
    	}
    }
    File Collaudo.java:
    codice:
    public class Collaudo
    {
    	public static void main(String args[])
    	{
    		Cd cd[] = new Cd[6];
    		cd[0] = new Cd("Lady gaga", "The Fame monster", 118, 20.72);
    		cd[1] = new Cd("Track 2 inediti", "Vasco Rossi", 95, 16.72);
    		cd[2] = new Cd("if", "Mario biondi", 100, 17.52);
    		cd[3] = new Cd("Laura live tour", "Laura pausini", 98, 19.50);
    		cd[4] = new Cd("Crazy love", "Michael bublè", 90, 20.40);
    		cd[5] = new Cd("this is is", "Michael Jackson", 120, 21.90);
    
    		for (int i = 0; i < cd.length; i++)
    		{
    			System.out.println(cd[i]);
    		}
    	}
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    20
    ho capito,grazie per l'aiuto. Per la cronaca sto sa studiando da un libro che andando allo sbaraglio, ma in entrambi i casi ha importanza?
    Grazie ancora per la illuminante spiegazione.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se stai usando un libro, sicuro di non aver tralasciato argomenti importanti? Perché in genere sono spiegate davvero bene queste (basilari)
    RTFM Read That F*** Manual!!!

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.