SóProvas


ID
1159333
Banca
FEPESE
Órgão
MPE-SC
Ano
2014
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as afrmativas abaixo com relação à programação orientada a objeto.

1. Uma linguagem Orientada a Objetos precisa implementar quatro conceitos básicos: abstração, encapsulamento, herança e polimorfsmo.

2. Encapsulamento é a técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos. O conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe.

3. O conceito de herança está relacionado a fornecer um mecanismo para que se defnam novas classes a partir de uma já existente. Podemos dizer que essas novas classes her- dam propriedades e métodos da classe-mãe.

4. O emprego do paradigma de programação Orientada a Objetos garante a reutilização de código.

Assinale a alternativa que indica todas as afrmativas corretas

Alternativas
Comentários
  • A 4 está errada apenas por causa do "GARANTE a reutilização de código."...

    Errei pensando q considerar isso era ser detalhista hehe
  • Esse garante realmente pegou muita gente =/


  • Na minha opinião a 2 esta errada!

    "Encapsulamento é a técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos." na verdade é o funcionamento interno da própria classe (métodos e atributos). Você encapsula métodos e atributos tornando-os, por exemplo, privados, e os expõe por métodos publicos da forma que achar adequado. 

  • 4. O emprego do paradigma de programação Orientada a Objetos garante a reutilização de código.
        *Na minha opinião esta opção está correta. A herança garante a reutilização de código neste paradigma. "Banca fraca".

    A herança é um conceito de programação útil, mas é fácil de usar inadequadamente. Interfaces com frequência fazem um trabalho melhor. When to Use Interfaces help you understand when each approach should be used." xml:space="preserve">Este tópico e Quando usar interfacesajudam você a compreender quando cada abordagem deve ser usada.

    A herança é uma boa escolha quando:
    A hierarquia de herança representa um relacionamento "é um" e não um relacionamento "tem um".

    Você pode reutilizar o código de classes base.

    Você precisa aplicar a mesma classe e métodos para tipos diferentes de dados.

    A hierarquia de classe é razoavelmente superficial, e não é provável que outros desenvolvedores adicionem muitos mais níveis.

    Você deseja fazer alterações globais para classes derivadas alterando uma classe base.

    https://msdn.microsoft.com/pt-br/library/27db6csx(v=vs.90).aspx


  • "Garante" é sempre um termo FORTE em qualquer contexto quando se trata de enunciados em questões de concurso.


    Concordar com a afirmação "O emprego do paradigma de programação Orientada a Objetos garante a reutilização de código." é o mesmo que dizer que "quando se emprega OO não existe nenhum cenário no qual não seja possível reutilizar o código".


    Seria algo muito abstrato, fora da realidade.


  • O termo´: "garante a reutilização de código", é o que inviabiliza a questão, visto que eu posso desenvolver um software orientado a objetos e não realizar reaproveitamento de código.

  • Abstração - é um conceito e não algo que uma linguagem OO deve implementar. Na minha opinião a "1" está errada e a questão deveria ser anulada.

  • Concordo com o erro do item 4 que diz que "garante a reutilização de código". De fato não garante. Entretanto, o item 1 também está errado quando diz que "precisa implementar quatro conceitos básicos" sendo que nenhum deles é obrigatório. Tecnicamente é permitido desenvolver OO sem classes/métodos abstratos, sem herança de classes (e, consequentemente, sem polimorfismo) e apenas com métodos/atributos públicos (o que descaracterizaria encapsulamento). Questão mal formulada e que deveria ser anulada.

  • Sobre a afirmativa 1, uma LINGUAGEM Orientada a Objetos precisa implementar quatro conceitos básicos: abstração, encapsulamento, herança e polimorfsmo.

  • Se a linguagem não implementar abstração, encapsulamento, herança e polimorfsmo, ela pode ser OO?

    Ao meu ver não poderia ser considerada OO. O que não precisa é implementar isso na aplicação, fazendo um código que não use essas características.


    Logo a 1 está correta. Acertei a questão com essa linha de pensamento.