|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2002
Città: ATZARA
Messaggi: 2204
|
java e classi
ciao a tutti avrei un problemino: ho progettato una classe che esegue delle conversioni in hex... il costruttore prende come parametro una stringa,il problema è che quando mando in stampa su schermo il nome dell'oggetto creato con la classe,nello schermo stampa il nome della classe@numeristrani.....
esempio miaclasse c1=new miaclasse("ABC"); System.out.println(c1); output: miaclasse@431121 che fare? io vorrei che stampasse la stringa precedentemente inserita con la creazione.... AIUTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Stampando con System.out.println o altri metodi una classe, ti stampa la definizione della stessa...(Ovvero il metodo toString() della classe) Per stampare il parametro non devi fare altro che scrivere un metodo che ti restituisca il par stesso...mi spiego
Codice:
String tuoPar public void tuoCostruttore (String _par){ .... tuoPar = _par; } Public String getTuoPar(){ return tuoPar; } System.out.println(nomeOggetto.getTuoPar()) Oppure fai un override del metodo toString() ridefinendolo e implementandolo secondo le tue esigenze; in questo modo quando "stampi la classe" ti stampa quello che hai definito tu nel metodo toString(); |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2002
Città: ATZARA
Messaggi: 2204
|
grazie tante.
ora ti spiego bene: è un'esercitazione per l'università...il prof ci ha dato una classe per testare quella progettata da noi... import Es03; public class HexTest { public static void main(String[] args) { Es03 c1, c2, c3, ct; c1 = new Es03("7A4"); c2 = new Es03("A76"); c3 = new Es03("FFF"); System.out.println("c1 = " + c1);//PROBLEMA System.out.println("c2 = " + c2); System.out.println("c3 = " + c3); System.out.println("c1 + c2 = " + c1.add(c2)); System.out.println("c1 - c2 = " + c1.sub(c2)); System.out.println("c2 - c1 = " + c2.sub(c1)); System.out.println("c1 * c2 = " + c1.mult(c2)); System.out.println("c2 * c1 = " + c2.mult(c1)); System.out.println("c2 * c3 = " + c2.mult(c3)); System.out.println("c1 / c2 = " + c1.div(c2)); System.out.println("c2 / c1 = " + c2.div(c1)); System.out.println("c2 / c2 = " + c2.div(c2)); System.out.println("c1 % c2 = " + c1.mod(c2)); System.out.println("c2 % c1 = " + c2.mod(c1)); System.out.println("c2 % c2 = " + c2.mod(c2)); ct =c2.div(c3); System.out.println("c2 / c3 = " + ct); ct =c2.mult(c3); System.out.println("(c2 / c3) * c3 = " + ct); } } ora nella mia classe ho messo un metodo tostring() ma o il prof ha sbagliato a scrivere questa oppure ci deve essere un modo per farla come vuole lui.... se ci fosse stato scritto cosi: System.out.println("c1 = " + c1.tostring()); non ci sarebbero stati problemi... comunque grazie ancora ![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Credo di avere capito...il metodo DEVE chiamarsi toString() e non tostring()...Java è case sensitive
![]() Se nella classe Es03 definisci Codice:
public String toString(){ return "quello che cuoi che stampi!"; } System.out.println("c1 = " + c1); avrà come risultato c1 = quello che cuoi che stampi! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:35.