Erro: missing method body

3 respostas
R

Tô fazendo alguns exercícios do livro dos Deitel mas tem um exemplo sobre utilização dos métodos set e get que está gerando o seguinte erro na linha public Time3( int h ): missing method body, or declare abstract.

Já achei vários erros neste livro e consegui resolvê-los, mas acredito que neste caso eu precise de um pouco mais de teoria. Se alguém puder ajudar, segue abaixo o código. É o exercício que começa na página 392 do livro (Fig. 8.8).

Valeu.

import java.text.DecimalFormat;

public class Time3 extends Object
{

	private int hour;
	private int minute;
	private int second;
	
	// Construtor Time3 inicializa cada variável de instância com zero.
	// Assegura que o objeto Time inicie em um estado consistente.
	public Time3()
	{
		setTime( 0, 0, 0 );
	}
	
	// Construtor Time3: hora informada, minuto e segundo colocados em 0 por default
	public Time3( int h );
	{
		setTime( h, 0, 0 );
	}
	
	// Construtor Time3: hora e minuto informados, segundo colocado em 0 por default
	public Time3( int h, int m )
	{
		setTime( h, m, 0 );
	}.
	
	// Construtor Time3: hora, minuto e segundo informados
	public Time3( int h, int m, int s )
	{
		setTime( h, m, s );
	}

	// Construtor Time3: outro objeto Time3 fornecido
	public Time3( Time3 time )
	{
		setTime( time.getHour(), time.getMinute(), time.getSecond() );
	}

	// Métodos Set
	// Configura um novo valor de hora usando o formato universal.
	// Faz verificação de validade nos dados.
	// Configura valores inválidos com zero.
	public void setTime( int h, int m, int s )
	{
		setHour( h );
		setMinute( m );
		setSecond( s );
	}
	
	// valida e configura a hora
	public void setHour( int h )
	{
		hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
	}
	
	// valida e configura os minutos
	public void setMinute( int m )
	{
		minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
	}
	
	// valida e configura os segundos
	public void setSecond( int s )
	{
		second = ( ( s >= 0 && s < 60 ) ? s : 0 );
	}
	
	// Métodos Get
	// Obtém o valor da hora
	public int getHour()
	{
		return hour;
	}
	
	// Obtém o valor dos minutos
	public int getMinute()
	{
		return minute;
	}
	
	// Obtém o valor dos segundos
	public int getSecond()
	{
		return second;
	}
	
	// converte para String no formato de hora universal
	public String toUniversalString()
	{
	
		DecimalFormat twoDigits = new DecimalFormat( "00" );
		
		return twoDigits.format( getHour() ) + ":" +
			twoDigits.format( getMinute() ) + ":" +
			twoDigits.format( getSecond() );
			
	} // fim da classe toUniversalString
	
	// converte para String no formato de hora padrão
	public String toString()
	{
	
		DecimalFormat twoDigits = new DecimalFormat( "00" );
		
		return ( ( getHour() == 12 || getHour() == 0 ) ? 12 : getHour() % 12 ) + ":" +
			twoDigits.format( getMinute() ) + ":" + twoDigits.format( getSecond() ) +
			( getHour() < 12 ? " AM" : " PM" );
				
	} // fim da classe toString
	
} // fim da classe Time3

3 Respostas

L

Olá,

observe o seguinte:

public Time3( int h );  [b] OBSERVE ISTO AQUI[/b]
   {
      setTime( h, 0, 0 );
   }

na assinatura do construtor existem um ponto-e-vírgula que está atrapalhando.

Outro detalhe importante, pois não sei se seu fonte está idêntico ao que foi postado, veja:

// Construtor Time3: hora e minuto informados, segundo colocado em 0 por default
   public Time3( int h, int m )
   {
      setTime( h, m, 0 );
   }.  [b] OBSERVE ESTE PONTO [/b]

o ponto que aparece após o fim do bloco parece ser um erro de digitação.

Até +

Boa Sorte!!! :grin:

R

Nossa, que absurdo. Valeu cara. Tem dias que a gente não consegue raciocinar mesmo!

L

:grin:
Eh isso mesmo… às vezes acontece comigo também!!!

Qualquer coisa, é só postar!!!

Criado 21 de dezembro de 2004
Ultima resposta 21 de dez. de 2004
Respostas 3
Participantes 2