Duda setteando hora objeto.setHrInicio(new Date("06:00"));

class hora{
private Date hrInicio;
        public Date getHrInicio() {
                return hrInicio;
        }
        public void setHrInicio(Date hrInicio) {
                this.hrInicio = hrInicio;
        }
}
hora objeto = new hora();
objeto.setHrInicio(new Date("06:00"));   Así se setea una hora el tipo de dato lo deje así.

Esto es correcto el setHrIn..... ?

Saludos .....

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

WTF?

Date es una clase que guarda hora Y fecha. Realmente guarda el número de milisegundos que han trascurrido desde una fecha de referencia (1 de enero de 1970, a las 0 horas, en GMT).

El constructor de Date que recibe un String está deprecado desde JDK 1.1, de verdad no sé por qué no lo han quitado ya.

Si estás buscando hacer operaciones con rangos de hora y cosas así, revisa JodaTime, no reinventes el hilo negro.

Si, es correcto ( de inicio )

Si, es correcto, de inicio.

Acá van varias recomendaciones:
En Java la convención es usar mayúsculas en el nombre de la clase, y la mayoría de las veces es mejor crear objetos inmutables porque son más confiables, por lo que la mejora quedaría así:

class Hora {
    private final Date horaInicio;
    public Hora( Date horaInicio ) {
        this.horaInicio = new Date( horaInicio.getTime() );
    }
    public Date getHoraInicio() {
       return new Date( this.horaInicio.getTime() );
    }
    // quitar el setter
}

Que si te fijas es casi lo mismo.

La razón por la cual se quita el setter y por la cual se crea un nuevo Date en el getter es por lo siguiente:

java.util.Date es mutable, si utilizas esa clase para guardar una hora y regresas tu original te lo pueden alterar:

Date laHora = hora.getHoraInicio();
laHora.setTime( 0 );// ja!.. adios hora dentro de tu objeto "hora" :) :)

Por la misma razón no hay un setter y el constructor crea uno nuevo cuando lo recibe ( si... es un poco paranoico, pero es lo malo de los objetos mutables )

La segunda parte no está correcta, creando un objeto Date desde un String. Como dice Enrique este deprecado y Java nunca lo ha quitado por si había código que lo usara, pero en realidad no se debe de escribir más.

Ve la documentación:

http://download.oracle.com/javase/6/docs/api/java/util/Date.html#Date(java.lang.String)

Dice:

Deprecated. As of JDK version 1.1, replaced by DateFormat.parse(String s). O sea hace casi .. no sé 12 años o algo así.

Ahí mismo viene el el sustituto:

http://download.oracle.com/javase/6/docs/api/java/text/DateFormat.html#parse(java.lang.String)

Como DateFormat es abstracto no lo puedes instanciar, puedes obtener una isntancia con el método:

DateFormat df = DateFormat.getInstance();

O bien puedes crear una instancia con SimpleDateForma que es el más común:

DateFormat df = new SimpleDateFormat("HH:mm");
Hora hora = new Hora();
hora.setHoraInicio( df.parse("06:00"));

Este método lanza una excepción que te sirve en este caso para proveer un valor en caso de que falle o tomar alguna acción, entonces el ejemplo completo quedaría:

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
class Hora {
    private final Date horaInicio;
    public Hora( Date horaInicio ) {
        this.horaInicio = new Date( horaInicio.getTime() );
    }
    public Date getHoraInicio() {
       return new Date( this.horaInicio.getTime() );
    }
    // quitar el setter
}
class Test {
    public static void main( String ... args ) {
        DateFormat dateFormat = new SimpleDateFormat("HH:mm");// hora de 0-23 hrs. mm minutos
        Date horaInicio;
        try {
            horaInicio =  dateFormat.parse("06:00");
        } catch( ParseException pe ) {
            throw new IllegalArgumentException("No se pudo crear una hora válida, revise el formato");
        }
        System.out.println( horaInicio );
        Hora hora = new Hora( horaInicio );

    }
}

:) :) :) ... ya no fue tan sencillo, pero es importante saber porque pasan las cosas.

Ahí te va el link de JodaTime: http://joda-time.sourceforge.net/ como alternativa.

Espero que esto te sirva.

Entonces esto es válido

Así tambíen es válido.

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
class Hora {
    private final Date horaInicio;
    private final Date horaFin;
    private final Date horaEntrada;
    public Hora( Date horaInicio, Date HoraFin, Date HoraEntrada ) {
        this.horaInicio = new Date( horaInicio.getTime() );
        this.horaFin = new Date( horaInicio.getTime() );
        this.horaEntrada = new Date( horaInicio.getTime() );
    }
    public Date getHoraInicio() {
       return new Date( this.horaInicio.getTime() );
    }
    public Date getHoraFin() {
       return new Date( this.horaFin.getTime() );
    }
    public Date getHoraEntrada() {
       return new Date( this.horaEntrada.getTime() );
    }
}

Ándele... ahora nada más

Ándele... ahora nada más pruebalo y de preferencia deja la prueba que puedas correr automáticamente.

Busca en Google "pruebas unitarias"

Lo que te ayudará es que cuando siga creciendo tu programa puedes ver si cuando le mueves a otra parte de tu código esta de aquí no se rompe ( no debería )

Saludos.