To string

6 respostas
G

Ola. tenho duas classes, seguro auto e seguro casa

na seguro auto tenho as variaveis

private int numlic; private int dedcar; private String estado2; private String modelo; private int ano;

e o metodo tostring e imprimi

public String toString()
	 {
	 return modelo + estado2 + numlic + dedcar + ano ;
     }
  public  String  imprimiSeguro()
  {
	  return modelo + estado2 + numlic + dedcar + ano;


  }

na classe seguro casa, tenho as variaveis

private int ano;
	private int ded;

e o metodo tostring e imprimi

public String toString()
  	 {
  	 return ano + ded ;
       }
    public  String  imprimiSeguro()
    {
  	  return ano + ded;


  }

mas da erro de tipo incompativel SOMENTE na classe seguro casa

found : int
required: java.lang.String
return ano + ded ;

sendo que esta praticamente igual a classe anterior a qual compila sem problemas. o que seria? e tambem, como eu faço o tostring de variaveis de outra classe ? ex, tenho a classe seguro auto e tenho a classe seguro. seguro auto extends seguro. e queria um tostring na seguro auto com algumas variaveis privadas de seguro

6 Respostas

getAdicted

Na classe SeguroCasa o erro ocorre por que o tipo de retorno eh um inteiro, sendo que no metodo toString, voce deve retornar uma String.

O erro não ocorre na classe SeguroAuto por que dentre os atributos, existe um tipo String, portanto, o operador + será sobrecarregado, concatenando o tipo inteiro com o tipo String resultando em um tipo String.

O seguinte código foi gerado utilizando uma IDE, veja:

public class Seguro {
	//private int idseguro;
	protected int idseguro;
}
public class SeguroCasa extends Seguro {
	private int ano;
	private int ded;

	@Override
	public String toString() {
		return "SeguroCasa [ano=" + ano + ", ded=" + ded + "]";
	}
}
public class SeguroAuto extends Seguro {
	private int numlic;
	private int dedcar;
	private String estado2;
	private String modelo;
	private int ano;

	@Override
	public String toString() {
		return "SeguroAuto [numlic=" + numlic + ", dedcar=" + dedcar
				+ ", estado2=" + estado2 + ", modelo=" + modelo + ", ano="
				+ ano + ", idseguro=" + idseguro + "]";
	}
}

Um atributo com o modificador de acesso private será visível, somente, dentro da classe em que se encontra, para acessa-lo de outra classe, eh preciso instanciar um objeto no seu programa, entretanto, existe o modificador protected, ele fará com que o atributo da classe pai seja visivel as classes filhas, atravez de herança.

[]'s

G

entendi. obrigado

e o return no caso ficaria como?

public  String  imprimiSeguro()
    {
  	  return +ano+ ded+;


  }

??

getAdicted

Eh o mesmo erro do metodo toString da classe SeguroCasa, com um erro de sintaxe. Se voce quer fazer a soma, altere de String para int, o tipo de retorno, tranquilo?

[]'s

G

não seria a soma. seria as 2 variaveis

yurifw
se vc quer que o retorno seja a soma das 2 variaveis, vc tem que alterar a assinatura do metodo:
public  int imprimiSeguro()  
   {  
      return ano+ ded;  
  
  
}
se quiser que seja uma concatenação dessas variaveis, tem que converte-las para string:
public  String imprimiSeguro()  
   {  
      return ""+ano+ ded;  
  
  
}
G

consegui. muito obrigado

esses dados estão em uma arraylist. e tentei imprimir com 3 cadastros. ele zera os 2 primeiros e imprime o utlimo. o for teria que estar no metodo imprimir onde onde eu chamo o metodo imprimir?

Criado 15 de março de 2013
Ultima resposta 15 de mar. de 2013
Respostas 6
Participantes 3