Bom pessoal, hoje vamos começar aqui no blog uma série de posts com dicas para certificação Java SCJP, Certificação com o JLiVe. Como estou começando a estudar para conseguir esta certificação, estes posts vão servir tanto para mim quanto para quem tem o mesmo objetivo.
Vamos então:
Sobre construtores, considere o código abaixo.
Sobre construtores, considere o código abaixo.
1. public class TesteQual a opção correta?
2. {
3. public Teste(String str){
4. System.out.println ("Teste(String) executado");
5. }
6. public Teste(Object obj){
7. System.out.println ("Teste(Object) executado");
8. }
9. public Teste(){
10. System.out.println ("Construtor sem argumentos executado");
11. }
12. public static void main(String[] args) {
13. Teste teste = new Teste(null);
14. }
15. }
- chama o construtor public Teste(String str)
- chama o construtor public Teste(Object obj)
- chama o construtor public Teste()
- Código não compila, nenhum construtor adequado definido.
A resposta correta é a número 1. Tanto o construtor que recebe Object e o que recebe uma String são considerados pelo compilador como elegíveis. O null apesar de ser nada... ele está sendo passado como parâmetro, é uma referencia vazia, por tanto o construtor sem parâmetro não é chamado.
Entre o String e o Object o compilador escolhe o mais especifico. Mais o que string tem a ver com null? O null é nada, nada pode ser string ou object (?)... O string é escolhido pois sempre que vc passar uma string você vai poder fazer cast pra object, mas nem todo object vai poder ser uma string.
Dúvidas???
Falei bobagem???
Então entre em contato... através de comentário
abraços.
Entre o String e o Object o compilador escolhe o mais especifico. Mais o que string tem a ver com null? O null é nada, nada pode ser string ou object (?)... O string é escolhido pois sempre que vc passar uma string você vai poder fazer cast pra object, mas nem todo object vai poder ser uma string.
Dúvidas???
Falei bobagem???
Então entre em contato... através de comentário
abraços.