English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

cual es la diferencia entre este metodo que pasa a string que es valueOf y este otro metodo que tambien pasa a string que es toString
CUaL ES LA DIFERENCIA??

2007-02-27 00:12:33 · 4 respuestas · pregunta de Anonymous en Ordenadores e Internet Programación y Diseño

4 respuestas

"El Método toString()"

A veces es conveniente o necesario convertir un objeto a una cadena o String porque se necesitará pasarlo a un método que sólo acepta Strings. Por ejemplo, System.out.println() no acepta StringBuffers, por lo que necesita convertir el StringBuffer a String para poder imprimirlo.

StringBuffer ejem= new StringBuffer(16);
System.out.println(dest.toString()); esto sí funciona!!!

"El Método valueOf()"

Como es conveniente, la clase String proporciona un método estático valueOf(). Se puede utilizar este método para convertir variables de diferentes tipos a un String. Por ejemplo, para imprimir el número pi.

System.out.println(String.valueOf(Math.PI));

O sea, si se tiene algún tipo de datos y se desea imprimir su valor de una forma legible, primero hay que convertirlo a String. El método valueOf está sobrecargado en todos los tipos posibles de Java, por lo que cada tipo se puede convertir correctamente en una String. Cualquier objeto que se le pase a valueOf devolverá el resultado de llamar al método toString del objeto. De hecho, se podría llamar directamente a toString y obtener el mismo resultado.

Una diferencia es que ValueOf() siempre necesita un argumento y toString no.

2007-02-27 00:29:28 · answer #1 · answered by Nora 3 · 0 0

Gigantesca en cuanto a concepto
en P.O programacion orientada a objetos algo sobre lo cual fue diseñado el lenguaje java (por lo menos lo soporta)
tenes la herencia y las clases
la clase Object de la cual heredan todas las demas(implicitamente:
class MyClass extends Object)
tiene el metodo toString que se supone cada clase (en este caso MyClass) debe de sobreescribir (override) o sea cuando haces un objeto (una clase) tenes que implementar un metodo toString
private overrride void toString (){
system.Out.println("yo soy la clase MyClass, que por ahora no tiene atributos");
}
asi este objeto sabe como mostrarse al mundo haciendo mc = new Myclas();
mc.toString
ahi el objeto muestra una representacion humanamente interpretable y sino hiciste un override solo te va a tirar el nombre de la clase y el valor del puntero si mal no recuerdo.
en cuanto a valueOf te da dependiendo del objeto que lo implemente te retorna por lo gnera el valor "casteado" al objeto del argumento que le pases.
en el caso de la clase Strings tiene el mismo resultado hacer
String s = new String("hola");
Long l = new Long(2.00);

System.Out.println(s.valueOf(l))
System.Out.println(l.toString);
porque valueOf del string que debuelve un string llama a la operacion toString de la clase Long que retorna un string con su representacion.

valueOf

public static String valueOf(long l)

Returns the string representation of the long argument.

The representation is exactly the one returned by the Long.toString method of one argument.

Parameters:
l - a long.
Returns:
a string representation of the long argument.
See Also:
Long.toString(long)

pero vos podrias hacerte una clase Fraccion que represente una fraccion y frac.toString te retorne algo diferente de frac.valueOf
ej:
class Fraccion{

private int dividendo;
private int divisor;

public int getDividendo (){
return dividendo;
}

public void setDividendo (int div){
dividendo = div;
}
....
public String toString (){
return dividendo + "/" + divisor;
}

public static String ValueOf(Fraccion f){
return f.canonica().toString()//retorna una fraccion canonisada de la original (la reduce) a 2/6 lo transforma en 1/3 cambia los dividendos y los divisores
}
}


entonces
Fraccion f = new Fracicon(2/6)
imprimi f.toString imprime "2/6"
imprimi Fraccion.valueOf(f) imprime "1/3"

2007-02-27 01:00:34 · answer #2 · answered by el matematico 1 · 0 0

Si te refieres a los dos metodos que estan dentro de la clase String:



ValueOf() siempre toma un argumento, y te regresa el valor como string del argumento. como son metodos estaticos no necesitas un objeto para llamarlos.

Por ejemplo
int myint = 10;
String myString = String.valueOf(myint);

// tu cadena myString queda con una cadena de dos caracteres "10"


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

toString() no toma argumentos y te manda el valor como cadena desde el objeto que lo llamas , por ejemplo:



String mystring = new String("hola");
System.out.println(mystring . toString()); //<<<< la llamada a toString te regresa una cadena de valor "hola", que en este caso es ella misma

2007-02-27 00:29:25 · answer #3 · answered by mxpengin 3 · 0 0

http://www.devdaily.com/java/edu/qanda/pjqa00008.shtml

2007-02-27 00:28:20 · answer #4 · answered by Jose M 5 · 0 0

fedest.com, questions and answers