View Full Version : 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
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
String tuoPar
public void tuoCostruttore (String _par){
....
tuoPar = _par;
}
Public String getTuoPar(){
return tuoPar;
}
Dalla classe principale non dovrai fare altro che stampare
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();
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
:) :)
Credo di avere capito...il metodo DEVE chiamarsi toString() e non tostring()...Java è case sensitive ;)
Se nella classe Es03 definisci
public String toString(){
return "quello che cuoi che stampi!";
}
vedrai che una chiamata a
System.out.println("c1 = " + c1);
avrà come risultato
c1 = quello che cuoi che stampi!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.