Analise as afrmativas abaixo com relação à programação orien...
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
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.
Abstração, Encapsulamento, Herança e Polimorfismo são pilares do paradigma de orientação a objetos. Classe abstrata é uma classe que não é instanciada; apenas fornece um modelo para geração de outras classes.
polimorfismo - Técnica que indica a capacidade de abstrair várias implementações diferentes em uma única interface. As classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas.
encapsulamento- Técnica que faz com que detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. 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.
Alternativa correta: B - São corretas apenas as afirmativas 1, 2 e 3.
Para resolver a questão é necessário ter compreensão dos quatro pilares da programação orientada a objetos: abstração, encapsulamento, herança e polimorfismo. Também é preciso entender o contexto de aplicação e os benefícios potenciais que a orientação a objetos pode trazer, como a reutilização de código, embora isso não seja garantido apenas pelo uso do paradigma.
A afirmativa 1 é correta pois realmente são estes os quatro conceitos básicos que definem uma linguagem como orientada a objetos. Estes conceitos trabalham em conjunto para permitir o desenvolvimento de sistemas modulares e reutilizáveis.
A afirmativa 2 também é correta, pois encapsulamento é um conceito fundamental na programação orientada a objetos. Seu objetivo é ocultar os detalhes da implementação interna de um objeto, expor apenas operações seguras e manter o estado do objeto protegido contra acesso externo inapropriado.
Quanto à afirmativa 3, ela está correta pois descreve adequadamente o conceito de herança. Na herança, uma classe filha herda atributos e métodos de uma classe pai (ou classe base), o que permite a reutilização e extensão de funcionalidades existentes de maneira controlada.
A afirmativa 4 é incorreta justamente porque a reutilização de código não é uma garantia intrínseca do paradigma orientado a objetos. Embora o paradigma facilite e incentive a reutilização, ela ainda depende de um bom design e implementação. Existem diversas situações em que o código pode ser orientado a objetos e ainda assim ser difícil de reutilizar devido a um design pobre ou altamente acoplado.