Duvida Modificador de acesso em contrutor padrão

8 respostas
P

Boa noite pessoal,

Gostaria apenas de um esclarecimento.

Ao criar uma classe e não adicionar um construtor, o compilador do java adiciona um compilador implícito. (Construtor padrão)

Qual é o modificador de acesso desse construtor padrão, public ou default?

Obrigado!

8 Respostas

d34d_d3v1l

Pergunta boa…
por que não testa pra descobrir?

:smiley:
Eu coloco minhas fichas no public,
mas nao sei não…

nel

PedroAJunior:
Boa noite pessoal,

Gostaria apenas de um esclarecimento.

Ao criar uma classe e não adicionar um construtor, o compilador do java adiciona um compilador implícito. (Construtor padrão)

Qual é o modificador de acesso desse construtor padrão, public ou default?

Obrigado!

Publico, senão como você iria instanciar a classe?

P

Na verdade eu já tinha testado.

Mas fiquei mais confuso ainda,

Pelo Livro da Kathy, na pagina 82 diz o seguinte:

class Foo{ Foo(){} Foo(String s){} }

Fala que o construtor Foo sem argumentos é idêntico ao construtor padrão que o compilador oferece quando na verdade não é,pois, o modificador de acesso do construtor padrão é public.

Pelo menos pelo teste que eu fiz.

Então só queria ter certeza!

P

nel:
PedroAJunior:
Boa noite pessoal,

Gostaria apenas de um esclarecimento.

Ao criar uma classe e não adicionar um construtor, o compilador do java adiciona um compilador implícito. (Construtor padrão)

Qual é o modificador de acesso desse construtor padrão, public ou default?

Obrigado!

Publico, senão como você iria instanciar a classe?

Com o construtor com o modificador de acesso default eu consigo instanciar a classe, desde que, eu esteja no mesmo pacote.

nel

Por isso o construtor default dele é publico, entendeu ?
Isso daqui:

public class Teste { public Teste () {}; }

Nao muda em nada, colocando ou nao ele, entende ? :slight_smile:

P

Vc tentou instanciar essa classe em outro pacote?

Pelo teste que eu fiz aqui que está muito parecido com o seu não compilou.

nel

PedroAJunior:
Vc tentou instanciar essa classe em outro pacote?

Pelo teste que eu fiz aqui que está muito parecido com o seu não compilou.

Perdão, faltou o modificador public. O que eu quis dizer é que todos os construtores que não são definidos explicitamente são por default “publicos”.
É que chamam o construtor de “construtor padrão” ou “construtor default”, acaba confundindo.

P

Provavelmente foi por causa disso que eu me confundi,

Mas agora já esclareceu tudo.

Obrigado a todos!

Criado 25 de abril de 2012
Ultima resposta 25 de abr. de 2012
Respostas 8
Participantes 3