Você está na página 1de 2

Lista de Exercı́cios - Introdução à OO

Prof. Thiago Cavali

26/02/2024

1. Responda as seguintes questões:


(a) Qual a diferença entre uma classe e um objeto?
(b) Como uma classe é definida?
(c) Qual o conteúdo de um objeto?
(d) Qual a função do operador new?
(e) Qual a função da coleta de lixo? Como ela funciona?
(f) Qual a função da palavra this?
(g) Qual o nome e a função de um construtor? Quais parâmetros ele pode ter?
2. Faça a adaptação dos seguintes exercı́cios da Lista de Exercı́cios da última aula para o paradigma
orientado à Objeto:
(a) Exercı́cio 3 (cálculo da média final de um aluno);
(b) Exercı́cio 4 (aposentadoria em 2024);
3. Uma indústria deseja controlar o funcionamento de um determinado equipamento presente em seu
processo. Esse equipamento pode receber os comandos ”ligar” e ”desligar”, o que altera o seu status
para ”true” (ligado) ou ”false” (desligado). Quando o equipamento recebe o comando para ser ligado,
recebe também o tempo (em segundos) pelo qual deve permanecer ligado. Ao fim desse tempo, o
equipamento é desligado.
Baseado nesse cenário, crie um programa que implemente esse sistema e no teste receba o nome do
equipamento, mostre seu status atual e, caso esteja ligado, o tempo restante para que desligue.
4. Um GPS pode ter como parâmetros ”idioma”, ”origem” e ”destino”. Desenvolva e teste os seguintes
cenários para esse GPS:
• Configuração: em sua inicialização, sua configuração pode ser vazia ou com um idioma pré-
definido. Caso seja vazia deve-se configurar o idioma antes da utilização (utilize as mensagens de
configuração padrão em português);
• Utilização: Dada uma origem (x) e um destino (y), exibir a mensagem: ”Saindo de x e indo para
y” na lı́ngua configurada na etapa de configuração (use sua criatividade!).
5. Determinada empresa possui o nome e o salário atual de um colaborador em seus registros. Essa
empresa deseja uma forma amigável de o setor de RH (que anda de mau humor ultimamente...) saber
o novo salário desse colaborador a partir de um percentual de aumento dado pela empresa. Você, como
desenvolvedor chefe ficou incumbido dessa missão! Então desenvolva um programa que:
• Permita o cadastro de um funcionário (todos os dados devem ser passados no ato, não sendo
possı́vel inserção posterior);
• A partir de um percentual de aumento calcule o novo salário desse funcionário;
• Exiba essa mensagem (de uma maneira feliz) para a pessoa do RH!

1
6. Um supermercado tem produtos com nome e data de validade. Faça um programa que permita o
cadastro de um produto e, caso o ano de vencimento do produto seja o mesmo ano atual, avise o
usuário na forma ”Nome - vence esse ano!”. Caso contrário, avise na forma ”Nome - Tudo tranquilo!”.
7. Faça um programa que escreva um e-mail. Esse programa deve permitir o cadastro de um remetente
e de um destinatário e ter um método que permita que uma nova linha seja adicionada à esse e-mail.
Deve ser possı́vel que o e-mail seja exibido na tela no formato:

Olá Sr(a) (nome do destinatário)!


Texto da linha 1
Texto da linha 2
...
Texto da linha n
Atenciosamente, (nome do remetente)

Observações:
• A primeira e a última linha devem ser geradas automaticamente pelo programa;
• Você pode utilizar a função concat() para unir duas Strings e o caracter ”\n” para quebrar uma
linha.
8. Escreva uma classe Bichinho que represente um inseto se movendo sobre uma linha horizontal para
esquerda ou para a direita. Ao se instanciar um objeto dessa classe deve-se passar a posição inicial do
inseto (exemplo, 5) e, a cada vez que um comando ”mover” é dado, esse inseto se move uma casa para
a direita ou para a esquerda. Considerações:

• O inseto deve sempre começar a se movimentar para o lado direito. Nesse caso acrescenta-se 1 à
sua posição original (Se era 5, vira 6) quando o comando ”mover” é dado;
• Caso o inseto esteja se movimentando para o lado esquerdo, sua posição deve ser reduzida em
uma casa (se era, 5, vira 4);
• A mudança de direção do inseto ocorre com o comando ”virar”;
• A cada comando mover, deve-se imprimir a posição do inseto.

Considerações Gerais:

• Desenvolver classes separadas para definição e testes;


• O UML simplificado (diagrama de classes) deve ser entregue para cada classe (exceto às de teste)
solicitadas;
• Ao terminar, chamar o Professor para conferir a resolução e explicar o desenvolvimento;

• A entrega deverá ser feita via AVA na Tarefa ”Lista de Exercı́cios - Introdução à OO e Encapsulamento”
em um único arquivo compactado (.rar/.zip/.7z/.tar) com nome no formato ”Nome - RA”;
• Esse item deve conter a pasta do projeto que contém os arquivos e um arquivo pdf com os UML
simplificados para cada exercı́cio e as questões teóricas.

Você também pode gostar