Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Classe Q!!!

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    22

    Classe Q!!!

    Scusate ragazzi..ho delle difficoltà nel risolvere questo esercizio...qualcuno potrebbe aiutarmi??!! Grazie

    Realizzare i metodi della classe Q
    assimilabile ad un vettore di interi (ordinato in ordine crescente)
    secondo le informazioni presenti nel diagramma delle Classi UML in
    figura. Il metodo fondiM prende in ingresso due oggetti di tipo Q
    aventi dimensione d1 e d2, e restituisce un nuovo oggetto Q (con
    dimensione d1+d2 tale che in ogni sua posizione i gli elementi sono
    ordinati in ordine crescente).
    Esempio:se a=1 2 4 7; b= 1 5 9
    l’oggetto restituito conterrà: 1 1 2 4 5 7 9

    Il diagramma UML è il seguente:

    Q
    - int [] vettore
    + Q (int vettore[])
    + fondiM(Q a, Q b) : Q
    + toString() : String

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Classe Q!!!

    Originariamente inviato da Sole_20
    Scusate ragazzi..ho delle difficoltà nel risolvere questo esercizio...qualcuno potrebbe aiutarmi??!! Grazie
    Che difficoltà incontri?
    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 2013
    Messaggi
    22
    Ti posto il mio codice:

    codice:
    public class Q {
    protected int v[];
    	
    	public Q(int v []){
    			this.v=v;
    	}
    	public static Q fondiM(Q a, Q b){
    		int d3=a.v.length+b.v.length;
    		int i,j;
    		int c[]= new int [d3];
    	
    		for(i=0;i<a.v.length;i++)
    			c[i]=a.v[i];
    		for(i=0;i<b.v.length;i++)
    			c[a.v.length+i]=b.v[i];
    		int max=0;
    			for(i=0;i<d3;i++){
    				for(j=i+1;j<d3;j++){
    					if(c[i]>c[j]){
    						max=c[i];
    						c[i]=c[j];
    						c[j]=max;
    						
    					}}}
    		Q vett= new Q(c);
    		return vett;		
    	}
    	
    	public void print(){
    		for(int i=0;i<v.length;i++)
    			System.out.print(v[i]+" ");
    		}
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int k1[]={1,2,4,7};
    		int k2[]={1,5,9};
    		Q vett1= new Q(k1);
    		Q vett2= new Q(k2);
    		Q res = fondiM(vett1,vett2);
    		res.print();
    		
    }
    }
    Il problema è che se utilizzo il metodo toString() ottengo come risultato questo:
    vettore [I@c3c749
    mentre se utilizzo il metodo print() ottengo l'output corretto: 1 1 2 4 5 7 9...per quale motivo??

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    - usa i tag CODE per mantenere la formattazione

    - toString lo devi ridefinire tu, altrimenti qualunque classe non preveda un toString "suo" utilizzerà quello della classe genitore, che nel tuo caso è Object per Q (tutte le classi derivano da Object). Il toString di Object darà una rappresentazione testuale del tuo oggetto a te di scarso interesse.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Sole_20
    Il problema è che se utilizzo il metodo toString() ottengo come risultato questo:
    vettore [I@c3c749
    mentre se utilizzo il metodo print() ottengo l'output corretto: 1 1 2 4 5 7 9...per quale motivo??
    Devi ridefinire il metodo toString(). Quello di default, ereditato da Object, stampa una specie di hash dell'oggetto.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    22
    Grazie mille ad entrambi!!

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.