Erro: missing method body

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.

[code]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[/code]

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:

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

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

Qualquer coisa, é só postar!!!