Dúvida!

15 respostas
Glenn_Ramos

Galera, li um topico do Mantu sobre os getters e setters. Ele explicou vantagens e desvantagens. Acho que entendi a razão de se usá-los. Porém, não sei invoca-los. Esse codigo abaixo é um exemplo do Mantu, mas não consigo compila-lo, alguém tem alguma idéia de qual seja o problema :?:

Obrigado :)

public class Time
{
	private int
		hour,
		minute,
		second;	
	
	public int getHour()
	{
		return hour;
	}
	
	public int getMinute()
	{
		return minute;
	}
	
	public int getSecond()
	{
		return second;
	}
	
	public void setHour()
	{
		if (hour < 0 || hour > 23)
		{
			this.hour = 0;
		}
		else
		{
			this.hour = hour;
		}
	}
	
	public void setMinute()
	{
		if (minute < 0 || minute > 59)
		{
			this.minute = 0;
		}
		else
		{
			this.minute = minute;
		}
	}

	public void setSecond()
	{
		if (second < 0 || second > 59)
		{
			this.second = 0;
		}
		else
		{
			this.second = second;
		}
	}

	
	public String toString()
	{
		return hour + ":" + minute + ":" + second;
	}

}


public class TestTime02 {  
    public static void main(String[] args) {  
        Time time = new Time();  
        time.setHour(27);  
        time.setMinute(85);  
        time.setSecond(-523);  
          
        System.out.println("Horário de Brasília: " + time.toString());  
    }  
}

15 Respostas

T

parametros na assinatura dos métodos set …

public void setHour(int hour){
   this.hour= hour;
}
Bravox

Mostra o erro que está dando para nós !

Glenn_Ramos

tarcisio.filo:
parametros na assinatura dos métodos set …

public void setHour(int hour){ this.hour= hour; }

Hum, voce poderia me explicar um pouco melhor?
oq seria essa assinatura?

sou novo aqui e não entendo muito bem esses vocabulários todos!
valeu!

Bravox

tarcisio.filo:
parametros na assinatura dos métodos set …

public void setHour(int hour){ this.hour= hour; }

opá nem vi isso ai …

Glenn_Ramos

time.java:68: class TestTime02 is public, shoulb be declares in a file named TestTime02.class
public class TestTime02 {
^

time.java:71: setHour() in Time cannot be applied to (int)

time.setHour(27);

^

Há mais 2 outros erros mas são iguais ao setHour()

valeu!

Bravox

Glenn Ramos:
tarcisio.filo:
parametros na assinatura dos métodos set …

public void setHour(int hour){ this.hour= hour; }

Hum, voce poderia me explicar um pouco melhor?
oq seria essa assinatura?

sou novo aqui e não entendo muito bem esses vocabulários todos!
valeu!

trecho retirado de um artigo no Devmedia

Glenn_Ramos

Acho que fugi do assunto!
uhauheahae

então, mas por que da o erro de compilaçao?

a assinatura está errada? não né?!

mas oq está errado com esse programa? alguem tem alguma ideia?

Bravox

Glenn Ramos:
time.java:68: class TestTime02 is public, shoulb be declares in a file named TestTime02.class
public class TestTime02 {
^

A Classe TestTime02 tem que estar em um outro arquivo .java

Vc tem que adicionar o parâmetro nos métodos

public void setHour(int hour)
  {
      if (hour < 0 || hour > 23)
      {
          this.hour = 0;
      }
      else
      {
          this.hour = hour;
      }
  }

  public void setMinute(int minute)
  {
      if (minute < 0 || minute > 59)
      {
          this.minute = 0;
      }
      else
      {
          this.minute = minute;
      }
  }

  public void setSecond(int second)
  {
      if (second < 0 || second > 59)
      {
          this.second = 0;
      }
      else
      {
          this.second = second;
      }
  }
Glenn_Ramos

caiu minha net cara…

então, mas 27 nao seria o parametro do meu método?
valeu

Bravox

Glenn Ramos:
caiu minha net cara…

então, mas 27 nao seria o parametro do meu método?
valeu

Sim, mas perceba que no seu código os métodos set… não recebe nenhum parâmetro , então o compilador vai “xingar” mesmo ou seja vc esta querendo passar alguma coisa para quem não recebe nada

Glenn_Ramos

huumm
estou quase entendo…

voce poderia dar um exemplo basico soh pra mim entender de vez isso?

obrigado.

adriano_si

Na hora de criar:

public void esperaParametro(int meuParametro)
{
    this.meuParametro = meuParametro;
}

na hora de chamar:

this.esperaParametro(); //errado aqui porque você não passou o parâmetro que ele estava esperando

this.esperaParametro(1); // certo o par. foi passado

espero ter ajudado…

Falows 8)

Glenn_Ramos

valeu cara!

realmente eu não tinha passado os parametros! hahaha :smiley:

faloow

adriano_si

Na verdade, os parâmetros foram passados… mas na declaração do método, é que voc~e não os declarava… aí o Compilador reclamava…

Kassiane_Pretti
public void setHour(int hour)   
    {   
        if (hour < 0 || hour > 23)   
        {   
            this.hour = 0;   
        }   
        else   
        {   
            this.hour = hour;   
        }   
    }   
       
    public void setMinute(int minute)   
    {   
        if (minute < 0 || minute > 59)   
        {   
            this.minute = 0;   
        }   
        else   
        {   
            this.minute = minute;   
        }   
    }   
  
    public void setSecond(int second)   
    {   
        if (second < 0 || second > 59)   
        {   
            this.second = 0;   
        }   
        else   
        {   
            this.second = second;   
        }   
    }
Criado 18 de janeiro de 2008
Ultima resposta 18 de jan. de 2008
Respostas 15
Participantes 5