Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-01-2008, 13:16   #1
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
[java] sbaglio la toString?

ho fatto questo programmino(ancora devo mettere tutti i controlli) ma ho problemi quando mi stampa la "rubrica"(visto che ancora non salva sui file ), uso male la toString? qualcuno può provarlo?

src.zip

altrimenti il codici sono

Eser1.java:

Codice:
import java.util.Vector;

public class Eser1 {

	public static void main(String args[]) {
	
		int choose;
		Vector elenco = new Vector(1, 1);
		
		System.out.println("\tRUBRICA");
		
		menu();
		
		do {
			
			do {
				
				choose = Console.readInt("? ");
				
				if(choose < 1 || choose > 5)
					System.out.println("scelta errata. ripeti.");
			} while(choose < 1 || choose > 5);
			
			switch(choose) {
			
			case 1:
				add(elenco);
				break;
			case 2:
				modify(elenco);
				break;
			case 3:
				delete(elenco);
				break;
			case 4:
				showAll(elenco);
				break;
			case 5:
				break;
			}	
		
		} while(choose != 5);
	
	}
	
	static void menu() {
		
		System.out.println("1- aggiungi scheda\n2- modifica scheda\n3- elimina scheda");
		System.out.println("4- visualizza rubrica\n5- esci");
	}
	
	static void add(Vector elenco) {
		
		Persona p = new Persona();
		p.name = Console.readLine("inserisci nome: ");
		p.number = Console.readLine("inserisci numero: ");
		elenco.addElement(p);
	}
	
	static void modify(Vector elenco) {
	
		int ind = Console.readInt("inserire numero della scheda da modificare: ");
		
		Persona p = new Persona();
		p.name = Console.readLine("inserisci nome: ");
		p.number = Console.readLine("inserisci numero: ");
		
		elenco.setElementAt(p, --ind);
		
	}
	
	static void delete(Vector elenco) {
		
		int ind = Console.readInt("inserire numero della scheda da eliminare: ");
		
		elenco.removeElementAt(--ind);
		
		System.out.println("scheda elminata.");
	}
	
	static void showAll(Vector elenco) {
		
		Persona p = new Persona();
		
		for(int i = 0; i < elenco.size(); i++) {
			
			p = (Persona) elenco.elementAt(i);
			System.out.println(i+1 + "- " + p);
		}
	}
	
}
Persona.java:

Codice:
public class Persona {

	public String number;
	public String name;
	
	public String toString() {
		
		return name + "\t" + number;
	}
}
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 13:29   #2
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Si ma il problema qual'è?
Magari se postassi anche cosa ti stampa...
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 13:32   #3
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
No, la toString() in class Persona è definita correttamente, devi solo invocarla esplicitamente qui:
Codice:
static void showAll(Vector elenco) {
		
		Persona p = new Persona();
		
		for(int i = 0; i < elenco.size(); i++) {
			
			p = (Persona) elenco.elementAt(i);
			System.out.println(i+1 + "- " + p);
		}
	}
in questo modo:
Codice:
System.out.println(i+1 + "- " + p.toString());
Altrimenti ti stampa solo l'indirizzo della reference p.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 13:35   #4
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
no ma funziona solo che un esempio di stampa:

Codice:
ivan 347
ciao 123
dio      666
erty 345
asd         17
cioè ogni tanto stampa con la tablatura in mezzo e ogni tanto no.. non capisco con che criterio purtroppo.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 13:39   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Codice:
ivan 347
ciao 123
dio      666
erty 345
asd         17
Nella prima frase blu sballa perchè è un po' blasfema
Nella seconda perchè "si tocca", 17 porta male

@ERRATA CORRIGE: ho scritto una vaccata sopra, meglio se oggi non posto più, sto crollando dal sonno e sono ai minimi livelli di lucidità (si era già notato? )
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 13:50   #6
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
ma perchè infatti da quel che ho capito la toString dovrebbe evitare quella chiamata.. cioè dovrebbe definire l'"output" di un oggetto.. e infatti l'esempio faceva
System.out.println(p); grazie al metodo toString ma senza chiamarlo esplicitamente..

boh non capisco.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 14:32   #7
vladix
Member
 
L'Avatar di vladix
 
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
Quote:
Originariamente inviato da ndakota Guarda i messaggi
ma perchè infatti da quel che ho capito la toString dovrebbe evitare quella chiamata.. cioè dovrebbe definire l'"output" di un oggetto.. e infatti l'esempio faceva
System.out.println(p); grazie al metodo toString ma senza chiamarlo esplicitamente..

boh non capisco.
infatti non devi x forza chiamarlo esplicitamente , ti stampa il reference solo se tu non hai fatto l' "ovveride" ,
vladix è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 16:07   #8
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
è quel che ho fatto.. però c'è qualche problemino.. nessuno?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 17:50   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ehmm, prova a dargli due tab di fila e vedi come viene l'allineamento.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2008, 18:18   #10
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Ho provato a compilarlo e a me funziona bene mettendo i tuoi stessi input
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 08:49   #11
vladix
Member
 
L'Avatar di vladix
 
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Ho provato a compilarlo e a me funziona bene mettendo i tuoi stessi input
anche a me funziona bene , ( dipendera forse da OS o console ?)
vladix è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 09:06   #12
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Io credo dipenda dalla lunghezza del nome che deve stampare.

Se scrivi "asd" e poi tab, il numero si posiziona alla prima tabulazione (che supponiamo è alla "colonna" n°5), quindi ti sembra di vedere solo uno spazio)
Se scrivi "erty" allora premendo tab salterà la prima tabulaizone e si sposterà sulla seconda (che, sempre ipoteticamente parlando, è alla "colonna" n° 10).

Prova a scrivere nomi con numero di lettere uguali e vedi se tabula bene!
astorcas è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v