SóProvas


ID
1460773
Banca
FGV
Órgão
DPE-MT
Ano
2015
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação à Programação Orientada a Objetos, analise as afirmações a seguir.
I. Uma classe derivada (ou subclasse) herda atributos e métodos definidos em sua classe-pai (superclasse), podendo sobrepor métodos da classe-pai e/ou criar novos atributos e métodos conforme suas necessidades específicas.
II. Um método sobrecarregado é aquele com nome e parâmetros iguais ao método original implementado na superclasse.
III. Métodos podem ter três possíveis formas de visibilidade: a pública permite que métodos sejam invocados apenas por métodos externos à sua hierarquia de classe; a privada permite que sejam invocados apenas por métodos da própria classe; a protegida permite que sejam invocados apenas por métodos da própria classe e subclasses.
Assinale:

Alternativas
Comentários
  • Métodos não invocam outros métodos, quem invoca método é objeto. Pegadinha

  • a II esta incorreta porque o método precisa ter o mesmo nome e os mesmos parâmetros para ser sobrecarregado

    a III esta incorreta porque o método publico pode ser invocado por qualquer outro método (internou ou externo a sua hierarquia de classe ou pacotes)

  • I. Correta

    II. Está errada, pois na sobrecarga de método existe a necessidade do método possuir uma assinatura diferente (diferentes tipos de parâmetros e/ou ordem dos parâmetros diferente).

    III. Está errada, pois um método público pode também ser invocado por 'métodos' da própria classe.
  • II - Errada, pois Sobrecarga ocorre quando criamos dois ou mais métodos com o mesmo nome mas com uma lista de argumentos diferentes.

  • I - Correta

    II - Um método sobrecarregado é aquele com nome igual, mas parâmetros diferentes ao método original implementado na superclasse. 

    III - A visibilidade pública como o nome já diz é visivel para todos, independente de estar na subclasse, mesmo pacote ou qualquer outra coisa.

  • I. Uma classe derivada (ou subclasse) herda atributos e métodos definidos em sua classe-pai (superclasse), podendo sobrepor métodos da classe-pai e/ou criar novos atributos e métodos conforme suas necessidades específicas. 

     Basicamente aqui o conceito de herança e através dela eu posso fazer o uso de polimorfismo e existe 2 tipos (estático/sobrecarga e dinâmico/sobreposição) e com a herança eu posso, nas classes bases, criar mais métodos ou atributos específicos.  Alternativa CORRETA.

    II. Um método sobrecarregado é aquele com nome e parâmetros iguais ao método original implementado na superclasse.  Alternativa FALSA.  O item ficou errando qual ele disse que os parâmetros são iguais, complicado né pessoal, a diferença do polimorfismo de sobrecarga esta justamente nos parâmetros passados no método, não podem ser iguais.

    III. Métodos podem ter três possíveis formas de visibilidade: a pública permite que métodos sejam invocados apenas por métodos externos à sua hierarquia de classe; a privada permite que sejam invocados apenas por métodos da própria classe; a protegida permite que sejam invocados apenas por métodos da própria classe e subclasses. Alternativa FALSA. a palavrinha "apenas por método" invalida toda a alternativa. Essa palavrinha "apenas" tomar cuidado com ela pessoal. 

  • No item III, penso que está errado, entre outros erros apontados aqui, porque a questão diz " Métodos podem ter três possíveis formas de visibilidade". Normalmente não seriam 4 formas de visibilidade?            (Por favor, corrijam-me se estiver errado)


    Visibilidade: É utilizada para indicar o nível de acessibilidade de um determinado atributo ou método, sendo representada à esquerda destes. Existem basicamente 4 tipos de visibilidades: público, protegido, privado e pacote.

    A visibilidade privada é representada por um símbolo (-) e significa que somente os objetos da classe detentora do atributo ou método poderão enxergá-lo ou utilizá-lo.

    A visibilidade protegida é representada por um símbolo de sustenido (#) e determina que além dos objetos da classe detentora do atributo ou método também os objetos de suas subclasses poderão ter acesso ao mesmo.

    A visibilidade pública é representada por um símbolo de mais (+) e determina que o atributo ou método pode ser usado por qualquer objeto.

    A visibilidade pacote é representada por um til (~) e determina que um atributo ou método é visível por qualquer objeto dentro do pacote. Somente elementos que fazem parte de um pacote podem ter essa visibilidade. Nenhum elemento fora do pacote poderá ter acesso a um atributo ou método com essa visibilidade.

    Resumo:

    + public (classe, subclasse, pacote, todos);

    # protected (classe, subclasse);

    - private (classe)

    ~package (classe, pacote)

    (classe, pacote):  O só tem no Java. Na UML, ele corresponde ao Package.

    (entre parenteses, quem pode acessar atributos ou métodos)


  • a pública permite que métodos sejam invocados apenas por métodos externos. FALSO porque quando um método está com esse tipo de visibilidade ele também pode ser acessado pela sua própria classe onde ele esta localizado e qualquer outra classe do sistema poderá enxergar esse método e invocá-lo. 


    ta aí o erro da terceira. 
  • Thiago Amazonas

    A questão não falou APENAS, SOMENTE. Ele disse que podem ter três possíveis formas de visibilidade. Sim, podem ter até 4 possíveis formas de visibilidade. Acho que ela está errada por causa da definição do public.

  • Bom, acredito que existe 4 formas de visibilidade: public, private, protect e package.

    Mas também existe um erro na afirmativa III em:"a pública permite que métodos sejam invocados apenas (erro!) por métodos externos à sua hierarquia de classe ".

  • Analise das questões:

    I. Uma classe derivada (ou subclasse) herda atributos e métodos definidos em sua classe-pai (superclasse), podendo sobrepor métodos da classe-pai e/ou criar novos atributos e métodos conforme suas necessidades específicas. (Correto - Conceito básico de herança )

     

    II. Um método sobrecarregado é aquele com nome e parâmetros iguais ao método original implementado na superclasse. (Errado - sobrecarga de método existe a necessidade do método possuir uma assinatura diferente )

     

    III. Métodos podem ter três possíveis formas de visibilidade: a pública permite que métodos sejam invocados apenas por métodos externos à sua hierarquia de classe; a privada permite que sejam invocados apenas por métodos da própria classe; a protegida permite que sejam invocados apenas por métodos da própria classe e subclasses. (Errado - método publico pode ser invocado por qualquer outro método (internou ou externo a sua hierarquia de classe ou pacotes).