Questão JAVA

Sobre a criação de Objetos em JAVA, dento do paradigma da POO, assinale a alternativa CORRETA :

a - A criação de um objeto dá-se através da aplicação do operador “new”.

b - No JAVA, as atividades associadas à inicialização do objeto criado são feitas automaticamente, sem necessidade de haver um método específico para isto.

c - Na criação de um objeto não há necessidade de especificar a Classe de Dados a qual ele pertence, pois isto é feito automaticamente pelo JAVA.

d - No JAVA não há necessidade de inicializar um objeto.

e - A criação de um objeto dá-se através da aplicação do operador “CLASS”.

De cara a gente já sabe que a A está correta e a E está errada.

Com relação a B, C e D, qual é a sua opinião? Qual vc acha que é a resposta certa?

Diz aí pra gente poder comparar nosso ponto de vista.

1 curtida

Ai meu amigo, ainda tenho outra questão:

Java é uma linguagem orientada a objetos que permite o desenvolvimento de sistemas complexos e robustos. A seu respeito, observe as seguintes afirmações:

I.Métodos iguais podem ter o mesmo nome.

II.Métodos diferentes podem ter o mesmo nome.

III.O que diferencia um método com o mesmo nome são os seus argumentos.

IV.Os atributos podem ser visualizados somente de modo público.

Está incorreto o que se afirma em:

a - I, II, III e IV.

b - III, apenas.

c - I, apenas.

d - I, II , apenas.

e - I, IV, apenas.

Me ajudem ai pessoal! Por Favor!

Olha, seria legal se vc desse seu ponto de vista dizendo qual vc acha que é a resposta certa e por que vc pensa assim, pois ai a gente poderia corrigir se seu pensamento estiver errado. É melhor do que a gente te entregar as respostas.

De qualquer forma vou tentar responder.

Em Java, pra 2 métodos serem considerados iguais, eles devem ter assinatura igual.

A assinatura de um método é composta, basicamente, pelo nome do método, e pelos tipos de seus parametros.

Há também um outro conceito a se legar em consideração que são os type parameters do método, mas não se preocupe com eles agora. Fonte.

Então, pra mim, as afirmações I e II não fazem muito sentido, porque, no caso da I, se os método são iguais, logo eles tem o mesmo nome. E no caso da II, se são diferentes, logo tem nomes diferentes. Aí seria bom pedir um esclarecimento pro professor sobre isso.

Já a afirmação III é falsa, pois argumentos são os valores que vc passa pro método quando vc o invoca.

A afirmação correta seria: Uma das coisas que diferencia um método com o mesmo nome são os tipos de seus parametros.

Considere o seguinte código:

class Test {
    doSomething(String message) {
        System.out.println(message);
    }

    doSomething(String msn) {
        System.out.println(message);
    }

    doSomething(int number) {
        System.out.println(number);
    }

    doSomething(String message, String msn) {
        System.out.println(number);
    }
}

O primeiro método tem um parametro, o nome desse parametro é message e o tipo dele é String.

No segundo método, o nome do parametro é msn, contudo, pro Java, ele não é diferente do primeiro, pois o nome dos parametros não são relevantes na hora de diferenciá-los, entende?

Já o terceiro método é diferente dos outros dois porque ele tem o mesmo nome, mas o tipo do seu parametro é int.

O quarto método também é diferente, pois ele tem 2 parametros, ou seja, a quantidade também influencia na diferenciação de um método.

Aí, imagina que vc vai invocar o primeiro método.

Test t = new Test();
t.doSomething("Hello!");

No caso, “Hello!” é o argumento que vc está passando para o método. Deu pra entender a diferença entre parametro e argumento e o porquê dessa afirmação ser incorreta?

A afirmação IV até faz sentido (embora eu prefira substituir o termo “visualizados” por “acessados”), contudo, ela está incompleta.

O motivo de ela estar incompleta é que os atributos podem ser visualizados ou acessados POR QUEM?

Qualquer membro (seja atributo, método, classe ou interface) e contructor publico de uma classe por ser acessado por qualquer outra classe do seu programa.

Já os protected também podem ser acessados, só que com algumas limitações: apenas subclasses podem acessá-los.

Já os membros que não tem modificadores de acesso, só podem ser acessados por membros do mesmo pacote.

Então eu exigiria do professor uma explicação mais detalhada sobre essas afirmações e uma possivel revisão do texto.

Desculpe meu amigo, mas não sei nem por onde começar. rsrsrs. Te agradeço pela ajuda!

Vou tentar responder, se estiver certo eu te digo.

Mais uma vez, obrigado!