Orientação a Objetos Java
Por: Hugo.bassi • 19/1/2018 • 2.039 Palavras (9 Páginas) • 362 Visualizações
...
básicas de um módulo?
Exercícios
1. Escolha uma estrutura relativamente simples da vida real, tal como um carro ou edifício. Descreva características usado a técnica de divisão em partes, seguida por um refinamento de cada parte em uma descrição mais detalhada.
2. Extenda sua descrição em 3 níveis de detalhes.
3. Descreva uma coleção de objetos usando a técnica de camadas de
especialização.
Modificadores de acesso
1. O que é uma classe?
Pode-se definir classes de objetos como a descrição de um grupo de objetos por meio de um conjunto uniforme de atributos e serviços. Uma classe é um conjunto de objetos que compartilham as mesmas operações.
2. O que é um método?
Um método é a implementação de uma rotina, ou seja, o código propriamente dito. Pode ser comparado a um procedimento ou função das linguagens imperativas.
3. Qual operação é desempenhada pela instrução System.out.println?
Exibir a mensagem na tela.
4. Quais são os três tipos de modificadores de acesso? O que cada um deles significa?
public:
Uma declaração com o modificador public pode ser acessada de qualquer lugar e por qualquer entidade que possa visualizar a classe a que ela pertence.
private:
Os membros da classe definidos como não podem ser acessados ou usados por nenhuma outra classe. Esse modificador não se aplica às classes, somente para seus métodos e atributos. Esses atributos e métodos também não podem ser visualizados pelas classes herdadas.
protected:
O modificador protected torna o membro acessível às classes do mesmo pacote ou através de herança, seus membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados.
Exercício
• O loop em Java é feito pela palavra chave for, e consiste de três partes. A primeira parte é uma instrução de inicialização, a qual pode também ser usada para declarar a variável do laço de repetição (loop). A segunda parte é um teste de parada. O loop executará até que o teste de parada retorne falso. A parte final é o incremento, no qual é uma instrução que é avaliada para atualizar a variável que controla o loop.
• Considere o programa principal a seguir. Descreva o efeito
produzido pelo programa quando ele é executado com três
argumentos na linha de comando.
public static void main (String [] args){
for (int i = 0; i < args.length; i = i+1)
System.out.println(args[i]);
}
}
Subclasses e subtipos
1. O que significa o teste é-um para herança?
Esse teste simples ajuda a detectar se a subclasse pode herdar a superclasse.
2. Quais são as duas maiores razões para o uso de herança?
Mecanismo de reutilização de software onde uma nova classe é criada absorvendo membros de uma classe existente e aprimorada com capacidades novas ou modificadas;
Permite que elementos mais específicos incorporem a estrutura e o comportamento de elementos mais genéricos;
3. O que é o princípio da substituição? Quais os argumentos usados para
justificar sua aplicação?
Um objeto de uma classe derivada é tratado como se fosse objeto da classe base.
4. Por que subclasse para construção normalmente não é considerada uma boa ideia?
5. Como herança facilita o reúso de software?
Uma das grandes vantagens de usar o recurso da herança é na reutilização do código. Esse reaproveitamento pode ser acionado quando se identifica que o atributo ou método de uma classe será igual para as outras. Para efetuar uma herança de uma classe é utilizada a palavra reservada chamada extends.
6. O que significa dizer que uma classe é uma subclasse de outra?
Subclasse herda explicitamente, uma superclasse indireta é qualquer superclasse acima da classe direta na hierarquia de classes.
7. O que é o princípio da substituição?
Resposta na questão 3.
8. Quais propriedades de um tipo não são capturadas em uma definição de interface?
9. O que significa dizer que uma classe é subtipo de outra?
Os subtipos, além de herdarem todas as características de seus supertipos, também podem adicionar mais características, seja na forma de variáveis e/ou métodos adicionais, bem como reescrever métodos já existentes na superclasse, polimorfismo.
10. Como pode uma classe ser uma subclasse de outra classe e não um subtipo?
A herança permite vários níveis na hierarquia de classes, podendo criar tantos subtipos quanto necessário, até se chegar ao nível de especialização desejado. Podemos tratar subtipos como se fossem seus supertipos, por exemplo, o sistema de RH pode tratar uma instância de Presidente como se fosse um objeto do tipo Funcionário, em determinada funcionalidade. Porém não é possível tratar um supertipo como se fosse um subtipo, a não ser que o objeto em questão seja realmente do subtipo desejado e a linguagem suporte este tipo de tratamento, seja por meio de conversão de tipos ou outro mecanismo.
11. O que são pré e pós-condições para um método?
É possível expressar invariantes sobre classes, pré-condiçoes de métodos e pós-condiçoes de métodos. Finalmente a linguagem permite criar novos atributos ou operações a partir de uma classe existente. Por exemplo, criar a partir de classe Pessoa uma opração ancestral.
...