Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação II Exercícios Objetos e Classes Considere a linguagem Java e a classe Pessoa implementada a seguir: public class Pessoa { public String nome; public String telefone; private Date dataDeNascimento; public Date getDataDeNascimento() { return dataDeNascimento; } public String toString() { String texto = String.format("Nome: %s\nTelefone: %s", this.nome, this.telefone); return texto; } } 1) Na classe Pessoa, identifique e cite: seus atributos: nome (public String nome), telefone (public String telefone) e dataDeNascimento (private Date dataDeNascimento) seus construtores: Não possui seus métodos: getDataDeNascimento(), toString() 2) Mostre o trecho de código necessário para adicionar um construtor à classe Pessoa que receba como parâmetros um valor inicial para todos seus atributos e defina seu estado inicial. Indique na especificação acima onde o construtor deveria ser posicionado. public Pessoa(String nome, String telefone, Date dataDeNascimento) { this.nome = nome; this.telefone = telefone; this.dataDeNascimento = dataDeNascimento; } DEVE SER COLOCADO ENTRE O ATRIBUTO DATADENASCIMETO E O MÉTODO GETDATADENASCIMENTO() 3) Considerando o construtor adicionado na questão anterior, mostre um trecho de código que cria uma instância da classe Pessoa e especifique um estado inicial. Quais serão os valores retornados ao invocar getDataDeNascimento() e toString()? public class CriarPessoa { public static void main(String[] args) { Pessoa p1 = new Pessoa("Kleison", "(83)3000-0000", new Date(94, 05, 16)); } } GET - IRÁ RETORNAR A DATA DE NASCIMENTO, QUE NESTE CASO É 16/05/1994. TOSTRING - Nome: Kleison Telefone: (83)3000-0000 4) Explique o conceito de sobrecarga (overloading) e mostre como ela pode ser usada para adicionar um segundo construtor que receba como parâmetros apenas um nome e um telefone e que use o construtor criado na questão anterior. Em java pode-se ter vários métodos com o mesmo nome. Isso é chamado de sobrecarga. Mas cada um dos métodos tem uma assinatura, que é o que difere uns dos outros, junto com o seu nome. Sua assinatura são os parâmetros que ele espera receber. public Pessoa(String nome, String telefone, Date dataDeNascimento) { this.nome = nome; this.telefone = telefone; this.dataDeNascimento = dataDeNascimento; } public Pessoa(String nome, String telefone) { this.nome = nome; this.telefone = telefone; } 5) Explique o conceito de encapsulamento, sua importância e mostre detalhadamente como ele é aplicado ou quais modificações deveriam ser feitas na classe Pessoa para que ele fosse corretamente aplicado. Encapsulamento é a técnica utilizada para esconder uma ideia, ou seja, não expor detalhes internos para o usuário, tornando partes do sistema mais independentes possível. Em um processo de encapsulamento os atributos das classes são do tipo private. Para acessar esses tipos de modificadores, é necessário criar métodos setters e getters. public class Pessoa { private String nome; private String telefone; private Date dataDeNascimento; public void setNome(){ this.nome = nome; } public String getNome() { return nome; } public void setTelefone(){ this.telefone = telefone; } public String getTelefone() { return telefone; } public void setDataDeNascimento(){ this.dataDeNascimento = dataDeNascimento; } public Date getDataDeNascimento() { return dataDeNascimento; } public String toString() { String texto = String.format("Nome: %s\nTelefone: %s", this.nome, this.telefone); return texto; } }
Compartilhar