13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
Resolucao exercicios
1. EXERCÍCIOS
Com base no modelo abaixo, resolva os exercícios 1 e 2.
cio
package modelo;
public class Aluno {
String nome;
String sexo;
String dtNascimento;
public static int idade;
protected String getNome() {
return nome;
}
protected void setNome(String nome) {
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getDtNascimento() {
return dtNascimento;
}
public void setDtNascimento(String dtNascimento) {
this.dtNascimento = dtNascimento;
}
Aluno(String nome, String sexo, String dtNascimento) {
this.nome = nome;
this.sexo = sexo;
this.dtNascimento = dtNascimento;
}
Aluno() {
}
}
package teste;
import modelo.Aluno;
public class CadastroAluno {
public static void main(String[] args) {
Aluno aluno = new Aluno("Genoveva", "Feminino", "06/04/1975");
Aluno.idade = 39;
}
}
2. 1) Responda as perguntas sobre as classes:
a. Os atributos nome, dtNascimento e sexo possuem qual qualificador, e quem poderá
acessa-los?
b. Não é possível instanciar o método construtor Aluno na classe CadastroAluno.
Por que isso acontece?
c. Qual o modificador que permite que o atributo idade se referencie a
classe, e não ao objeto, na classe CadastroAluno?
d. Conforme o modelo JavaBeans, os atributos nome, dtNascimento, sexo, os métodos
getNome e setNome, e os métodos construtores teriam que ter quais
qualificadores?
2) Arrume as classes de modo que elas compilem, e mostre o nome e a idade,
como no modelo abaixo:
3) Relacione os modificadores:
1. Private
2. Public
3. Protected
4. Default
5. Static
a. (__) Indica que o método ou atributo pertence à classe.
b. (__) Permite o acesso de qualquer pacote.
c. (__) É o qualificador padrão, torna o atributo ou método
visível a todas as classes do mesmo pacote.
d. (__) No modelo JavaBeans, esse modificador é utilizado para
declarar os atributos.
e. (__) Permite que todas as classes acessem, contudo, se
estiverem no mesmo pacote.
Idade da Genoveva é: 39
3. RESOLUÇÃO DOS EXERCICIOS
1) Responda as perguntas sobre as classes:
a. Os atributos nome, dtNascimento e sexo possuem qual qualificador, e quem
poderá acessa-los?
R: É o default, ele é o modificador padrão, com ele é possível que classes do
mesmo pacote acessem esses atributos.
b. Não é possível instanciar o método construtor Aluno na classe
CadastroAluno. Por que isso acontece?
R: Por que ele foi declarado como default na classe Aluno, e
esse qualificador permite que apenas as classes do mesmo pacote
tenham acesso ao método.
c. Qual o modificador que permite que o atributo idade se
referencie a classe, e não ao objeto, na classe CadastroAluno?
R: O static, por que ele indica que o atributo idade pertence à
classe e não ao objeto.
d. Conforme o modelo JavaBeans, os atributos nome, dtNascimento, sexo, os
métodos getNome e setNome, e os métodos construtores teriam que ter quais
qualificadores?
R: Os atributos teriam que ser Private. Os métodos setNome e getNome
teriam que ser Public. Os métodos construtores públicos.
2) Arrume as classes de modo que elas compilem, e mostre o nome e a idade,
como no modelo abaixo:
Idade da Genoveva é: 39
4. package modelo;
public class Aluno {
private String nome;
private String sexo;
private String dtNascimento;
public static int idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getDtNascimento() {
return dtNascimento;
}
public void setDtNascimento(String dtNascimento) {
this.dtNascimento = dtNascimento;
}
public Aluno(String nome, String sexo, String dtNascimento) {
this.nome = nome;
this.sexo = sexo;
this.dtNascimento = dtNascimento;
}
public Aluno() {
}
}
package teste;
import modelo.Aluno;
public class CadastroAluno {
public static void main(String[] args) {
Aluno aluno = new Aluno("Genoveva", "Feminino", "06/04/1975");
Aluno.idade = 39;
System.out.println("Idade da "+aluno.getNome()+" é: "+Aluno.idade);
}
}