Lista 2 - Programação II
Por: lucalvos • 22/3/2016 • Trabalho acadêmico • 1.040 Palavras (5 Páginas) • 305 Visualizações
PC II
1-
a. Composição de objetos é a utilização de um objeto de uma classe como atributo de uma outra classe.
b. Podemos criar uma classe Circulo onde um dos atributos é um objeto da classe Ponto para que possamos traçar um gráfico ou calcular a área. As classes Médico e Paciente podem ter, em um de seus atributos, um objeto da classe Pessoa para que o cadastro de ambas seja facilitado ou ainda uma classe Chamada onde um dos atributos é um objeto da classe Numero, para que possamos registrar os números de origem e destino.
c.
public class Funcionario {
private String matricula;
private String nome;
private Funcionario tutor;
public Funcionario(String matricula, String nome, Funcionario tutor) {
this.matricula = matricula;
this.nome = nome;
this.tutor = tutor;
}
}
d.
public class Aluno {
private String matricula;
private String nome;
}
public class Turmas {
private int numero;
private String sala;
private Aluno [] alunos = new Aluno [35];
}
2-
a. Herança é um recurso que permite que novas classes sejam definidas a partir de classes já definidas. Representam um relacionamento do tipo “é um”.
b. Superclasse são as ascendentes de uma classe, ou seja, a partir dela foram geradas outras classes. Subclasses são as descendentes de uma classe, ou seja, foram criadas a partir de outras classes. Classe mãe é a ascendente direta de uma classe. Classe filha e a descendente direta de uma classe.
c. Para acessarmos o método construtor de uma classe mãe na classe filha utilizamos o comando super( <atributos do construtor>); . Esse método deve ser invocado no construtor da classe filha.
d. Atributos do tipo public e protected são acessíveis por suas subclasses e podem ser acessados diretamente. Já atributos do tipo private não são visíveis e precisam ser acessados a partir de métodos específicos.
e. Classes abstratas são classes “semi-completas” onde não são instanciados objetos a partir delas. São uteis para fornecer assinaturas (protótipos) de caracteristicas para as suas subclasses. A interface possui um conceito semelhante, porém, ela apenas determina quais funcionalidades serão passadas e não como essas funcionalidades serão estabelecidas. Estes recursos são utilizados para que os métodos determinados possam ser utilizados por várias classes sem a necessidade de duplicação de código.
f.
i. public class A extends B{}
ii. public class A extends B implements I{}
iii. Não é possível. Herança múltipla não é possível em Java.
g.
public abstract class Conta {
private String conta;
private String agencia;
private float saldo;
public Conta(String conta, String agencia, float saldo) {
this.conta = conta;
this.agencia = agencia;
this.saldo = saldo;
}
public String getConta() {
return conta;
}
public void setConta(String conta) {
this.conta = conta;
}
public String getAgencia() {
return agencia;
}
public void setAgencia(String agencia) {
this.agencia = agencia;
}
public float getSaldo() {
return saldo;
}
public void setSaldo(float saldo) {
this.saldo = saldo;
}
public abstract float getSaldoTotal();
}
public class ContaCorrente extends Conta {
private float limite;
public ContaCorrente(String conta, String agencia, float saldo, float limite) {
super(conta, agencia, saldo);
this.limite = limite;
}
public float getLimite() {
return limite;
}
public void setLimite(float limite) {
this.limite = limite;
}
@Override
public float getSaldoTotal() {
return getSaldo()+limite;
}
}
public class ContaPoupanca extends Conta{
private float rendimentos;
public ContaPoupanca(String conta, String agencia, float saldo,
float rendimentos) {
...