Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 11 2021 Prog
Aula 11 2021 Prog
class Ponto2D {
// ...
// ...
}
Classes Derivadas
É por esse motivo que todos os objetos podem invocar os métodos da classe Object, tais
como equals() e toString(). O método equals permite comparar objetos por seus
conteúdos. A implementação padrão desse método realiza uma comparação de conteúdo
bit a bit; se um comportamento distinto for desejado para uma classe definida pelo
programador, o método deve ser redefinido. O método toString() permite converter uma
representação interna do objeto em uma string que pode ser apresentada ao usuário.
Outros métodos da classe Object incluem clone(), um método protegido que permite
criar uma duplicata de um objeto, e getClass(), que retorna um objeto que representa a
classe à qual o objeto pertence. Esse objeto será da classe Class; para obter o nome da
classe, pode-se usar o seu método estático getName(), que retorna uma string.
Exemplo - Classes Derivadas
public class Ponto3D extends Ponto2D {
private int z;
public Ponto3D(int x, int y, int z) {
super(x, y);
this.z= z;
}
public int getZ() {
return z;
}
public void setZ(int z) {
this.z = z;
}
public static void main(String[] args) {
Ponto2D p1 = new Ponto2D(1,2);
Ponto3D p2 = new Ponto3D(1,2,3);
p2.setZ(10);
System.out.println("Distancia: " + p2.getZ());
}
}
Encapsulamento
Conceitua-se encapsulamento como sendo o processo utilizado para proteger os campos
e operações de uma classe (atributos e métodos), permitindo que apenas os membros
públicos - em Java métodos Get / Set - sejam acessados pelos usuários de determinada
classe.
}
Exemplo - Herança
public class Estudos{
aluno.idade = 20;
aluno.matricula = "XXXX99999“;
}
Classes Abstratas e Finais
Uma classe abstrata não pode ser instanciada, ou seja, não há objetos que possam ser
construídos diretamente de sua definição. Por exemplo, a compilação do seguinte trecho
de código:
}
Classes Abstratas e Finais
geraria a seguinte mensagem de erro:
AbsClass.java:3: class AbsClass is an abstract class.
It can’t be instantiated.
AbsClass obj = new AbsClass();
1 error
}
Classes Abstratas e Finais
Pode-se dizer que as classes abstratas servem como “modelo” para outras classes que dela
herdem, não podendo ser instanciada por si só. Para ter um objeto de uma classe abstrata
é necessário criar uma classe mais especializada herdando dela e então instanciar essa
nova classe. Os métodos da classe abstrata devem então serem sobrescritos nas classes
filhas.
Classes Abstratas e Finais
Por exemplo, é definido que a classe “Animal” seja herdada pelas subclasses “Gato”, “Cachorro”, “Cavalo”,
mas ela mesma nunca pode ser instanciada.
this.saldo = saldo;
return saldo;
}
Classes Abstratas e Finais
import java.text.SimpleDateFormat;
import java.util.Date;
@Override
public void imprimeExtrato() {
System.out.println("### Extrato da Conta ###");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/aaaa HH:mm:ss");
Date date = new Date();
System.out.println("Saldo: "+this.getSaldo());
System.out.println("Data: "+sdf.format(date));
}
}
Classes Abstratas e Finais
public class TestaConta {
public static void main(String[] args) {
Conta cp = new ContaPoupanca();
cp.setSaldo(2121);
cp.imprimeExtrato();
}
}
Classes Abstratas e Finais
Uma classe final, por outro lado, indica uma classe que não pode ser estendida.
A palavra-chave final pode também ser aplicada a métodos e a atributos de uma classe.
Um método final não pode ser redefinido em classes derivadas. Um atributo final não
pode ter seu valor modificado, ou seja, define valores constantes. Apenas valores de tipos
primitivos podem ser utilizados para definir constantes. O valor do atributo deve ser
definido no momento da declaração, pois não é permitida nenhuma atribuição em outro
momento.
Classes Abstratas e Finais
1 - Abstract: quando uma Classe é abstrata, a mesma não pode ser instanciada em tempo
de execução. Nenhum objeto pode ser criado.
2 - Final: quando uma classe é final, a mesma não pode ser herdada. Não pode possuir
sub-classes.
Classes Abstratas e Finais
1 - Abstract: quando uma Classe é abstrata, a mesma não pode ser instanciada em tempo
de execução. Nenhum objeto pode ser criado.
2 - Final: quando uma classe é final, a mesma não pode ser herdada. Não pode possuir
sub-classes.
Classes Abstratas e Finais
Um método que é definido como final em uma classe não pode ser redefinido em classes derivadas.
Considere o seguinte exemplo:
class ComFinal {
return 1;
int f() {
return 0;
}
Exercícios
1. Crie uma classe calculadora. Esta classe deve ser abstrata e implementar as operações
básicas (soma, subtração, divisão e multiplicação). Utilizando o conceito de herança crie
uma calculadora cientifica que implementa os seguintes cálculos: raiz quadrada e a
potência. Dica utilize a classe Math do pacote java.lang.