Anda di halaman 1dari 5

Terceira Lista de Exerccios Programao Orientada a Objetos Pronatec

Parte I Definio de Classes:


1. Construa a classe Filme em PHP, que obedea descrio abaixo: Filme - titulo: String - duracaoEmMinutos: int + getTitulo(): String + setTitulo(t:String): void + getDuracaoEmMinutos(): int + setDuracaoEmMinutos(dm:int):void + exibirDuracaoEmHoras(): void +Filme(t:String, d:int) - A classe deve possuir dois atributos privados: titulo (do tipo String) e duracaoEmMinutos (do tipo int) - Crie um construtor para a classe que recebe 2 parmetros, cada um representando um dos atributos da classe. - Crie os mtodos de acesso (get e set) para os atributos titulo e duracaoEmMinutos - Crie um mtodo exibirDuracaoEmHoras que converta o valor em minutos para horas e apresente a mensagem O filme TITULO possui X horas e Y minutos de durao. Por exemplo, dado o filme com ttulo Titanic que possui 194 minutos de durao, a mensagem que dever ser exibida para o usurio ser: O filme Titanic possui 3 horas e 14 minutos de durao 2. Crie a classe Livro que obedea representao abaixo: Livro - titulo: String - qtdPaginas: int - paginasLidas: int + getTitulo() : String + setTitulo(t:String) : void + +getQtdPaginas() : int +setQtdPaginas(q:int) : void + +getPaginasLidas() : int + setPaginasLidas(pl:int) : void + +verificarProgresso(): void +Livro(t:String, q:int, pl:int) Crie o mtodo verificarProgresso que dever calcular a porcentagem de leitura do livro at o momento. Para isso, devera usar os valores dos atributos qtdPaginas e paginasLidas, atravs da formula: porcentagem = paginasLidas * 100 / qtdPaginas. O valor da porcentagem dever ser mostrado na tela conforme a mensagem Voc j leu X por cento do livro, onde o valor de X o valor calculado pela frmula apresentada anteriormente. 3. Escreva uma classe para representar um crculo com um atributo chamado raio; 4. Escreva uma classe para representar um funcionrio com atributos para armazenar o nome, as horas trabalhadas e valor da hora; 5. Escreva uma classe para representar um paciente com atributos para armazenar nome, peso e altura. 6. Adicione classe do exerccio 3 os seguintes mtodos: Assinatura Efeito calcularArea() Retorna a rea do circulo calculada usando a frmula: 3,14*raio2

Assinatura Efeito

calcularPerimetro() Retorna o permetro do circulo calculadousando a frmula: 2*3,14*raio

7. Adicione classe do exerccio 4 o seguinte mtodo: Assinatura Efeito calcularSalario() Retorna o salrio do funcionrio usando a frmula: horas trabalhadas * valor da hora

8. Adicione classe do exerccio 5 o seguinte mtodo: Assinatura Efeito calcularIMC() Retorna o ndice de massa corprea do paciente usando a frmula: peso/altura2

9. Modifique a classe desenvolvida no exerccio 3 e adicione um construtor que recebe um valor inteiro e armazena no atributo raio; 10.Modifique a classe desenvolvida no exerccio 4 e adicione um construtor que recebe um nome, a quantidade de horas trabalhadas e o valor da hora e armazene nosatributos correspondentes; 11. Modifique a classe desenvolvida no exerccio 5 e adicione um construtor que recebe um peso e uma altura e armazene nos atributos correspondentes; 12. Criar uma classe para representar um Retngulo (figura geomtrica que possui base e altura). Esta classe dever ter seus atributos encapsulados. Dever ser criado um mtodo para cada um dos problemas abaixo: . Qual a rea do retngulo? (Formula: base x altura) . Qual o permetro do retngulo? (Formula: 2 x base + 2 x altura) . Este retngulo quadrado? Responde SIM ou NO Herana e Polimorfismo 1. Escreva uma classe chamada Pessoa com os atributos: nome(tipo String), sexo(tipo char), idade (tipo int). Escreva agora outra classe chamada Amigo, que uma pessoa (herda/estende da classe Pessoa) de quem sabemos o dia de seu aniversrio. Crie construtor para cada classe, de modo que o da classe Amigo chame o construtor da classe Pessoa e ainda inicialize o atributo especfico da classe Amigo. 2. Baseado no Exerccio 2 da Primeira lista, crie uma classe para representar uma Conta Corrente, que deve possuir um limite para dbitos. E uma classe para representar a Conta Poupana, que deve possuir o aniversrio da conta. Crie um construtor especfico para cada Conta, de modo a inicializar o atributo especfico que cada uma possui. Crie uma funcionalidade Debitar especfica para a Conta Corrente, de modo a permitir que seja debitado um valor maior que o valor que a conta possui de saldo, at um valor limite. Esta funcionalidade deve ser acionada apenas quando o valor a ser debitado maior que o saldo disponvel, caso contrrio, deve ser acionada a funcionalidade de Debitar da classe Conta. Alm disso, deve ser descontado um valor de administrao da conta a cada retirada acima do saldo da Conta Corrente, no valor de 5% do valor do limite utilizado. 3. Escreva as seguintes classes: a) Uma classe Pessoa com atributos nome(tipo String) e sobrenome(tipo String). A classe Pessoa ainda deve ter o seguinte mtodo: Assinatura Efeito getNomeCompleto() Retorna a concatenao do atributo nome com o atributo sobrenome

Alm disso, a classe deve possuir um construtor que recebe como parmetro o nome e o sobrenome da pessoa e armazena respectivamente nos atributos nome e sobrenome. b) Uma subclasse de Pessoa, chamada Funcionario. A classe Funcionario deve ter os atributos matricula(tipo int) e salario(tipo Double). O contrutor da Classe Funcionrio deve chamar o contrutor da classe Pessoa e ainda inicializar o atributo especfico da classe Funcionario. Considere a seguinte regra no mtodo modificador setSalario: Assinatura setSalario(valor)

Efeito

Atribui ao atributo salrio o valor recebido como parmetro desde que este valor no seja negativo. Caso seja negativo, no faz nada.

Todo funcionario recebe seu salrio em duas parcelas, sendo 60% na primeira parcela e 40% na segunda parcela. Assim, escreva os mtodos: Assinatura getSalarioPrimeiraParcela() Efeito Retorna o valor da primeira parcela do salrio (60%) Assinatura getSalarioSegundaParcela() Efeito Retorna o valor da segunda parcela do salrio (40%) c) Uma subclasse de Funcionario, chamada Professor. Todo professor recebe seu salrio em uma nica parcela. Assim, deve-se sobrescrever os mtodos getSalarioPrimeiraParcela e getSalarioSegundaParcela. Assinatura getSalarioPrimeiraParcela() Efeito Retorna o valor integral do salrio do professor Assinatura getSalarioSegundaParcela() Efeito Retorna o valor zero.

Programao Orientada a Objetos Caderno de exerccios mdulo 3 Professor Edson Angoti Jnior

Efeito
Assinatura

Retorna o valor da primeira parcela do salrio (60%) double getSalarioSegundaParcela() Retorna o valor da segunda parcela do salrio (40%)

Efeito

c) Uma subclasse de Funcionario, chamada Professor. Todo professor recebe seu salrio em uma nica parcela. Assim, deve-se sobrescrever os mtodos getSalarioPrimeiraParcela e getSalarioSegundaParcela. Assinatura double getSalarioPrimeiraParcela()

Efeito
Assinatura

Retorna o valor integral do salrio do professor


double getSalarioSegundaParcela() Retorna o valor zero.

Efeito