GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

toString

Tags: #<Tag:0x00007f2898232c70>

Olá,
Estou estudando java e sou iniciante, quero me tornar um dev e com isso não quero deixar nenhuma duvida para trás. Enfim, o toString só pode ser usado por atributos da classe?? pois eu não consigo atribuir funçoes da classe no mesmo.

Grato pela atenção!

Vc pode explicar melhor o que vc está tentando fazer? Se puder mostra o código que tentou e não conseguiu.

De qualquer forma, o toString é um método como qualquer outro, vc pode invocar outros métodos dentro dele.

Vc poderia fazer algo assim, por exemplo:

class Person {
  private String name;
  private int age;

  Person(String n, int a) {
    name = n;
    age = a;
  }

  int getAge() {
    return age;
  }

  String getName() {
    return name;
  }

  @Override
  public String toString() {
    return String.format("Person[name=%s, age=%d]", getName(), getAge());
  }
}

public class Main {
  public static void main(String... args) {
    System.out.println(new Person("Junior", 20));
  }
}

Seria tipo isso:
package operacoes;
public class NumerosComplexos {
private double inteiro;
private double fracionario;

public NumerosComplexos(double inteira, double fracionaria) {
	inteiro = inteira;
	fracionario = fracionaria;
}

public double getInteiro() {
	return this.inteiro;
}
public void setInteiro(double inteiro) {
	this.inteiro = inteiro;
}
public double getFracionario () {
	return this.fracionario;
}
public void setFracionario(double fracionario) {
	this.fracionario = fracionario;
}

public double somar (double a, double bi, double c, double di) {
	this.inteiro = (a + bi) + (c + di);
	return this.inteiro;
}

public double subtrair (double a, double bi, double c, double di) {
	this.inteiro = (a - bi) + (c - di);
	return this.inteiro;
}

public double multiplicar (double a, double bi, double c, double di) {
	this.inteiro = (a + bi) * (c + di);
	return this.inteiro;
}

public double dividir  (double a, double bi, double c, double di) {
	this.fracionario = (a+bi) / (c+di);
	return this.fracionario;
}

public Boolean comparacao ( ) {
	if(this.inteiro == this.fracionario) {
		return true;
	}
	return false;
}
public String representacao () {
	return String.valueOf(this.inteiro);
}
public String toString() {
	return "Somar: " + somar +"Subtrair: " + subtrair;
}

}

Queria colocar os metodos no toString, mas n sei se isso é possível

Também sou novo e uso toString da seguinte forma: Integer to String.

Exemplo 1: tenho um tela de cadastro onde salvo numero no mysql como integer e para mostrar em um campo no formulário, aceita string, tenho que capturar como int e usar o toString para inserir ele no campo.

Exemplo 2: jTextField.setText(Integer.toString(c.getCodigo()));

Acho que não entendi sua ideia ainda. Para mim não faz sentido invocar os métodos somar() e subtrair() dentro do toString().

De qualquer forma, é como eu disse, vc consegue sim invocar métodos de dentro do toString, mas vc tem que invocar com os argumentos corretos, tipo assim:

public String toString() {
  return "Somar: " + somar(1, 2, 3, 4) + "Subtrair: " + subtrair(1, 2, 3, 4);
}

Não to string é usado pra converter qualquer coisa onde é possivel representar por palavras em string como numeros e datas

O toString() serve para você exportar os dados de um objeto.

Você sobrescreve ele para que a exportação tenha o formato que você precisar.

O toString() serve para obter uma representação textual do seu objeto.

//