0% acharam este documento útil (0 voto)
2 visualizações10 páginas

Programação Orientada a Objetos em Java

O documento aborda a Programação Orientada a Objetos, destacando a utilização de classes abstratas e interfaces para padronização e reuso de código. Exemplos de implementação de classes como TrianguloRetangulo, Retangulo, Circulo e Quadrado são apresentados, ilustrando conceitos como polimorfismo e herança. O texto também menciona a possibilidade de implementar múltiplas interfaces em uma classe.

Enviado por

caiogabriel0730
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações10 páginas

Programação Orientada a Objetos em Java

O documento aborda a Programação Orientada a Objetos, destacando a utilização de classes abstratas e interfaces para padronização e reuso de código. Exemplos de implementação de classes como TrianguloRetangulo, Retangulo, Circulo e Quadrado são apresentados, ilustrando conceitos como polimorfismo e herança. O texto também menciona a possibilidade de implementar múltiplas interfaces em uma classe.

Enviado por

caiogabriel0730
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Programação Orientada a Objetos

(interface)
Exemplo – classe abstrata
Public abstract class Poligono { public class TrianguloRetangulo extends Poligono {
private double altura; public TrianguloRetangulo(double altura, double largura) {
super(altura, largura);
private double largura; }

public Poligono(double altura, public double getArea() {


double largura) { return getAltura() * getLargura() / 2;
}
[Link] = altura;
}
[Link] = largura;
}
public double getAltura() {
public class Retangulo extends Poligono {
return altura; public Retangulo(double altura, double largura) {
} super(altura, largura);
public double getLargura() { }
return largura;
public double getArea() {
} return getAltura() * getLargura();
public abstract double getArea(); }
} }
Classe abstrata

• Possui dois papéis interligados:


• Permite padronizar uma interface de acesso sem
implementação associada
• A herança permite reuso de código
Padronizando Interface por Herança - Limites

• Muitas vezes o único objetivo é a padronização da Interface


• Herança limita o reuso do código apenas da classe que padroniza a
interface
• Não é possível padronizar duas interfaces na mesma classe
• É comum separarmos a padronização da interface do reuso
Exemplo – as classes circulo e quadrado
public class Circulo { public class Quadrado{
protected int raio; protected int lado;
public Circulo(int raio) { public Quadrado(int lado) {
[Link] = raio; [Link] = raio;
} }
public float getArea() { public float getArea() {
return 3.14 * raio * raio; return lado * lado;
} }
} }

Como implementar polimorfismo com essas classes?


Interface

• Mecanismo de generalização – padronização de interface


• Não tem relação com herança
• não é um mecanismo de reúso de código
• Funciona como um “filtro de visão” em classes
Exemplo – a interface figura
public interface Figura { public class App {
public static void main(String[] args) {
double getArea();
Figura[] vet = new Figura[2];
} vet[0]=new Circulo(5);
vet[1]=new Quadrado(3);
public class Circulo implements Figura {
protected int raio; for(int i=0; i< [Link]; i++) {
[Link](vet[i].getArea());
public Circulo(int raio) {
}
[Link] = raio;
} }
}
public float getArea() {
return 3.14 * raio * raio;
}
}
Exemplo – transformando o Retangulo numa Figura
public class Retangulo extends Poligono implements Figura { public class App {
public Retangulo(double altura, double largura) {
public static void main(String[] args) {
super(altura, largura);
} Figura[] vet = new Figura[2];

public double getArea() { vet[0]=new Circulo(5);


return getAltura() * getLargura(); vet[1]=new Quadrado(3);
}
} vet[1]=new Retangulo(2, 3);

for(int i=0; i< [Link]; i++) {


[Link](vet[i].getArea());
}
}
}
Implementando mais de uma interface
public interface Figura { public class Retangulo extends Poligono implements Figura, FigPer {
public Retangulo(double altura, double largura) {
double getArea(); super(altura, largura);
}
}
public double getArea() {
return getAltura() * getLargura();
public interface FigPer { }
public double getPerimetro() {
double getPerimetro(); return 2 * getAltura() + 2 * getLargura();
}
}
}

public interface FigTotal extends Figura {


double getPerimetro();
}
Referências

• Slides de prof. André Santanchè (UNICAMP)

Você também pode gostar