Você está na página 1de 5

Exercício Avaliativo Encapsulamento e Classes e Métodos

Abstratos
1) O que é normalmente escondido no Encapsulamento?

R) Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto


qualquer, ignorando características menos importantes ou acidentais. Em modelagem
orientada a objetos, uma classe é uma abstração de entidades existentes no domínio
do sistema de software.

2) Explique o significado de especialização, generalização. Dê um Exemplo:

R) A generalização e a especialização são conceitos usados para representar objetos


do mundo real que possuem os mesmos atributos e que podem ser categorizados e
que podem ser representados em uma hierarquia que mostra as dependências entre
entidades de uma mesma categoria.
Um exemplo do uso da Generalização é quando existe algum atributo que seja
aplicável a mais de uma entidade no Modelo Entidade Relacionamento. Se existe,
devemos usar a Generalização e criar uma entidade mãe que contenha os atributos
comuns às outras entidades especializadas.
Uso da Especialização é indicado quando temos atributos específicos para um
determinado sub-conjunto de ocorrências dentro de uma Entidade. Por exemplo, na
entidade CLIENTES temos clientes que são empresas e outros clientes são pessoas
físicas. Os clientes que são empresas possuem atributos específicos como CNPJ e
Inscrição Estadual. Neste caso podemos promover uma especialização e criar a
entidade CLIENTE-EMPRESA que especializa a entidade CLIENTE e que possui
atributos específicos de uma empresa.

3) Pesquise sobre os seguintes conceitos da orientação a objetos e responda com suas


palavras.

a) O que é e para que serve o encapsulamento? Quando eu devo implementar e como


funciona?

R) Encapsulamento. Conceitua-se encapsulamento como sendo o processo utilizado


para proteger os campos e operações de uma classe (atributos e métodos),
permitindo que apenas os membros públicos - em Java métodos Get / Set - sejam
acessados pelos usuários de determinada classe.

b) Descreve para que serve o construtor de classe. O construtor pode receber


parâmetros? O que é um construtor de classe implícito no Java?

R) O construtor também permite determinar a ordem como cada membro é


inicializado, seja automaticamente ou manualmente. Sem um construtor o
compilador ou o runtime da linguagem determinará a ordem de inicialização dos
membros, o que pode ser documentado ou não, até porque pode não ser
determinístico.
c) O que é a abstração na Orientação a Objetos? Qual o seu propósito para o
desenvolvimento de software?

R) Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto


qualquer, ignorando características menos importantes ou acidentais. Na POO, uma
classe é uma abstração de entidades existentes no domínio do software.

 
4) Crie uma interface chamada cartão que possui os atributos número, nome e bandeira é
um método pagar.

5) Implemente a classe retângulo. Desenvolva a página “retângulo.php” considerando que se


o botão “Calcula área” foi pressionado , a página deverá mostrar o valor calculado. Para
calcular a área, utilize a classe Retangulo.
Retangulo
- ladoMaior: float
- ladoMenor : float
+ setladoMaior (maior)
+ setladoMenor (menor)
+calculaArea()
R) index

<?php

require_once("Retangulo.php");

$area = new Retangulo;

$area->calculoArea(9,3);

?>

Retangulo.php

<?php
class Retangulo{

private $ladoMenor;

private $ladoMaior;

function setLadoMenor($ladoMenor){

$this->ladoMenor = $ladoMenor;

function setLadoMaior($ladoMaior){

$this->ladoMaior = $ladoMaior;

function calculoArea($ladoMaior, $ladoMenor){

$resultado = $ladoMaior * $ladoMenor;

echo $resultado;

?>

6) )Explique com suas palavras por que uma classe abstrata não pode ser instanciada.

R) É um tipo de classe especial que não pode ser instanciada, apenas herdada. É aí que


entra o termo “abstrato” desse tipo de classe, por não haver a necessidade de criar objetos
com base em uma classe “pai”, não há porquê ela permitir a instanciação de novos objetos.

7) Explique com suas palavras por que não podemos ter construtores declarados com a
palavra-chave abstract.

R) Uma classe da categoria abstract pode não definir ou definir parcialmente a


implementação de seu comportamento. Somente uma classe abstrata pode ter métodos
abstratos. Métodos abstratos são métodos declarados com o modificador abstract ou
métodos definidos em interfaces.
8) Qual é a vantagem em se ter um método abstrato?

R) A vantagem é que desta forma consegue-se prover um caminho para uma classe ser
parte de duas classes: uma herdada hierarquicamente e outra da Interface. Quando nós
criamos uma Classe Abstrata, nós estamos criando uma classe base que pode ter um ou
mais métodos completos, mas pelo menos um ou mais destes métodos tem que criados
incompletos (sem corpo), isto caracteriza uma Classe Abstrata.

9) Não possui instâncias diretas, mas apenas classes descendentes:


a) a classe concreta.
b) o objeto.
C) a classe abstrata.
d) o pacote

R) LETRA C

10) A cidade de São Paulo, que possuía uma população de 10.000.000 de habitantes, teve
um aumento de mais 2.000.000 de novos habitantes. 

Na associação da frase acima aos conceitos da modelagem orientada a objeto, é correto


afirmar que São Paulo, população e aumento, referem-se, respectivamente, a
a) classe, objeto, instância de classe.
b) objeto, atributo, implementação por um método do objeto.
c) classe, objeto, atributo.
d) objeto, instância, operação.

R) LETRA B

11) Faça uma breve pesquisa sobre:


a) classe String

R) Uma String armazena uma sequência de caracteres. Apesar de ser fácil de utilizar,


essa classe possui diversas características que podem não ser óbvias para quem está
tendo o seu primeiro contato com ela. Por exemplo, um objeto String é imutável, o que
significa que o texto que ele carrega nunca é alterado.

b) Classe Object

R) A Object é a classe pai de todas as classes do java. ... Cada Object tem sua própria


representação string. Esta representação pode ser gerada pelo sistema ou produzida por
alguma classe.
12) Implemente no Netbeans os seguinte diagrama de Classes: Adicione atributos e
métodos em cada classe.

13) Implemente no Netbeans o seguinte diagrama de Classes: Adicione atributos e


métodos em cada classe.