Método construtor ou não

5 respostas
W

Pessoal,
se tenho o seguinte código:

public class MyClass {
    long var;
    
    
    public void MyClass()
    {
      System.out.println("..");
    }

O método “public void MyClass()” não é um construtor ou não, alguem poderia me explicar tal situação.
Obrigado.

5 Respostas

T
public class MyClass {
     long var;
     
     
     public void MyClass()
     {
       System.out.println("..");
     }

“public void MyClass” é um método normal, não um construtor.

Isso foi uma cochilada do James Gosling na hora de definir a linguagem.
O incrível é que o Guy Steele deixou passar isso quando foi escrever a especificação da linguagem.
Em C++ não é possível definir um método com o mesmo nome da classe; mas em Java isso é possível, o que pode levar a muitas confusões e erros.

Foxlol

Não é apenas um método na sua classe!

Construtor não pode ter RETORNO.

nbluis

Assim.

public class MyClass {
      public MyClass() {
        System.out.println("..");
      }
}
L
thingol:
public class MyClass {
     long var;
     
     
     public void MyClass()
     {
       System.out.println("..");
     }

"public void MyClass" é um método normal, não um construtor.

Isso foi uma cochilada do James Gosling na hora de definir a linguagem.
O incrível é que o Guy Steele deixou passar isso quando foi escrever a especificação da linguagem.
Em C++ não é possível definir um método com o mesmo nome da classe; mas em Java isso é possível, o que pode levar a muitas confusões e erros.

Thingol,

mas fora esse problema de confundir um pouquinho algum programador menos experiente, essa "cochilada" não acarreta mais problemas a linguagem né? Ou acarreta?

Pra explicar é meio confuso mesmo. Construtor é um método que não tem retorno. Void é um retorno que indica q não retorna nada! Pra quem já programa faz um tempo entende fácil, mas pra quem nunca viu isso e ouvi, acha que nós somos todos loucos! :D

T

Acho que linguagens de computador são feitas para os seres humanos poderem escrever e ler; e não deveriam ter esses casos “problemáticos”, que causam problemas até para os programadores mais experientes :frowning:

Criado 7 de maio de 2007
Ultima resposta 8 de mai. de 2007
Respostas 5
Participantes 5