Construtor is undefined

Oi pessoal,

Estou tentando fazer testes, mas está dando um pequeno erro.

public void testFormat() { DoubleHelper helper = new DoubleHelper(); //The constructor DoubleHelper() is undefined String esperado = new String("1.000.000,57"); Double value = new Double ("1000000.565656565"); helper.setValue(value); String resultado = helper.format(); assertEquals(esperado, resultado); }
Minha classe DoubleHelper:

public class DoubleHelper extends WrapperHelper
{
    private Double value;
    
    public DoubleHelper(Double value)
    {
    	super(value);
    	this.value = value;
    }

    public void setValue(Double value)
    {
        this.value = value;
    }

    public Double getValue()
    {
        return value;
    }
}

O que está faltando??
[]´s

Sua classe DoubleHelper só tem 1 construtor e ele recebe um double como parametro, ao chamar o new DoubleHelper() você não está passando esse double…

DoubleHelper helper = new DoubleHelper(10.0);

Não se esqueça que construtores não são herdados e que um construtor padrão sem parametros só é criado automaticamente se sua classe não tiver nenhum…

No código abaixo você faz uma chamada ao construtor da classe DoubleHelper e não passa nenhum argumento, sendo que o construtor padrão sem argumentos só é incluído automaticamente em classes que não possuem nenhum construtor declarado. Logo, como você declarou um construtor, o construtor padrão não foi incluído automaticamente pelo compilado. Ou seja, você faz uma chamada a um construtor inexistente.

DoubleHelper helper = new DoubleHelper();

Mesmo passando um valor double continua dando o mesmo erro…

Se você estiver usando um JDK anterior ao 5.0 passe um objeto Double.

DoubleHelper helper = new DoubleHelper(new Double(10.0));

Desculpe… esqueci de dizer que estava usando Java 4…
Me responde outra coisa…
Antes minha classe estava assim:

public class DoubleHelper
{
    private Double value;

    public void setValue(Double value)
    {
        this.value = value;
    }

    public Double getValue()
    {
        return value;
    }
}

E quando eu fazia o teste não dava nenhum erro de construtor is undefined
Por que??

Porque toda classe precisa ter um construtor, sempre, e nesse caso sua classe não tem nenhum, então o compilador adiciona um construtor padrão a ela, que é assim:

[code]public DoubleHelper(){

}[/code]

E esse construtor não recebe qualquer parametro. Quando você adiciona um outro construtor o compilador não coloca mais o padrão.

[quote=“jairelton”]Porque toda classe precisa ter um construtor, sempre, e nesse caso sua classe não tem nenhum, então o compilador adiciona um construtor padrão a ela, que é assim:

[code]public DoubleHelper(){

}[/code]

E esse construtor não recebe qualquer parametro. Quando você adiciona um outro construtor o compilador não coloca mais o padrão.[/quote]
Uma dúvida: o construtor padrão inicia as variáveis de instância com seus valores padrão, logo o resultado que ele produz, no caso da classe DoubleHelper, é o mesmo resultado que o construtor abaixo:

public DoubleHelper() { value = null; }

Logo, eu fiquei na dúvida se o construtor incluído pelo compilador é parecido com o que eu declarei acima ou se ele é como o que você declarou no post acima. Caso ele seja como você falou, como é feita a inicialização das variáveis de instância, já que não há nenhum instrução no construtor?

Variaveis de instancia são inicializadas automaticamente, não depende do construtor.

para ser mais preciso o construtor padrão pareceria com isso:

public DoubleHelper(){ super(); }

Pois deve haver uma instrução super() ou this() na primeira linha de qualquer construtor, sempre.

Entendi agora. Valeu por mais este esclarecimento.