Universidade Federal do Cariri
Professor: Ricardo Ferreira Vilela
Disciplina: Programação Orientada a Objetos
Semestre Letivo: 2023-1
Nesta lista de exercícios, você terá a oportunidade de praticar suas habilidades na Programação Orientada a Objetos. Os exercícios são baseados em um conjunto de classes previstos para um sistema capaz de armazenar companhias e pessoas, onde uma pessoa pode ser um funcionário de uma companhia ou proprietário da mesma.
- Certifique-se de que os nomes das classes, atributos e funções correspondam EXATAMENTE ao texto, pois serão avaliados por meio de testes automatizados.
- Cada classe solicitada deve ser criada em um arquivo separado.
Lembre-se de que o objetivo da atividade é, além da avaliação, uma prática na construção de código orientado a objetos, portanto, evite consultar soluções prontas.
- Desenvolva uma classe denominada
Person
que inclua os seguintes atributos, cada um com seu tipo correspondente:
Atributo | Tipo |
---|---|
firstname |
Cadeia de caracteres |
lastname |
Cadeia de caracteres |
age |
Inteiro |
address |
Cadeia de caracteres |
phoneNumber |
Cadeia de caracteres |
email |
Cadeia de caracteres |
-
Crie um construtor para a classe
Person
que aceite todos os atributos como parâmetros, mantendo a mesma ordem em que foram apresentados na questão anterior. -
Crie um método na classe
Person
chamadospeak
que aceite uma mensagem como parâmetro (String message) e imprima a mensagem no console, conforme exemplo abaixo:
Paulo
says:Hello World!
Onde:
firstname
= Paulomessage
= Hello World!
- Crie um método na classe
Person
chamadowalk
que aceite uma distância em metros como parâmetro (intdistanceInMeters
) e imprima no console uma mensagem que inclua o primeiro nome da pessoa e a distância em metros. A mensagem deve indicar que a pessoa está caminhando essa distância, conforme exemplo a seguir:
Paulo
is walking10
meters.
Onde:
firstname
= PaulodistanceInMeters
= 10
-
Crie um método, do tipo inteiro, na classe
Person
chamadoincreaseAgeByYears
que aceite um número de anos como parâmetro (int yearsToAdd), aumente a idade da pessoa em yearsToAdd e retorne a nova idade. -
Crie um método na classe
Person
chamadoeat
que aceite o nome de um alimento como parâmetro (Stringfood
) e imprima no console uma mensagem que inclua o primeiro nome da pessoa e o alimento, indicando que a pessoa está comendo esse alimento. Conforme apresentado abaixo:
Paulo
is eatingcheese
Onde:
firstname
= Paulofood
= cheese
-
Crie um método na classe Person chamado displayInfo que imprima no console todas as informações da pessoa, exatamente como no exemplo abaixo:
First Name: Paulo Last Name: Silva Age: 20 Address: Avenue 5 Phone Number: 88-99999999 Email: paulo@gmail.com
- Desenvolva uma classe chamada Company que inclua os seguintes atributos, cada um com seu tipo correspondente:
Atributo | Tipo |
---|---|
companyName |
Cadeia de caracteres |
employeeCount |
Cadeia de caracteres |
owner |
Person (classe anterior) |
-
Crie um construtor para a classe
Company
que aceite os atributoscompanyName
,employeeCount
eowner
como parâmetros, mantendo a mesma ordem em que foram apresentados na questão anterior. -
Crie um método na classe
Company
chamadohireEmployee
que aceite um objetoPerson
como parâmetro para representar um novo funcionário. O método deve adicionar o novo funcionário à empresa e atualizar o contador de funcionários. Por exemplo, se você passar um objetoPerson
representando um funcionário chamado "Alice", o método deve imprimir no console uma mensagem indicando que Alice foi contratada e atualizar o contador de funcionários. A mensagem no console deve ser exibida conforme o exemplo abaixo:Hired a new employee: Alice Souza
- Onde:
firstname
= Alicelastname
= Souza
-
Crie um método na classe
Company
chamadoscheduleMeeting
que aceite uma agenda como parâmetro (Stringagenda
). O método deve imprimir no console uma mensagem indicando que uma reunião da empresa foi agendada com a agenda especificada. A mensagem no console deve ser exibida conforme o exemplo abaixo:Meeting Scheduled - Agenda: 09/27/2023 at 3pm
-
Crie um método na classe
Company
chamadodisplayCompanyInfo
que imprima no console todas as informações sobre a empresa, incluindo o nome da empresa, o número de funcionários e as informações do proprietário. O método deve chamar o método displayInfo da classePerson
para exibir as informações do proprietário. A mensagem no console deve ser exibida exatamente como no exemplo abaixo:Company Name: ABC Inc. Number of Employees: 100 Owner: First Name: Paulo Last Name: Silva Age: 20 Address: Avenue 5 Phone Number: 88-99999999 Email: paulo@gmail.com