Vamos ver: Princpios Bsicos da POO 1. Classes ou Mtodos Abstratos; 2. Interfaces; 3. Tratamento de Excees; 4. Interface Grfica.
I) Introduo Herana permite a reutilizao de cdigo atravs da criao de classes (subclasses) baseadas em outras classes j existentes (superclasses). Por sua vez, com o Polimorfismo, subclasses podem redefinir um mtodo de uma superclasse. Nem sempre isto desejvel. Em alguns casos interessante descrever os atributos e mtodos que as classes herdeiras devem implementar, mas no permitir a criao de objetos da classe ancestral, que passaria a ser somente um guia dos mtodos e atributos que devem ser implementados nas classes herdeiras.
Exemplo: Classes: Pessoa (superclasse), Funcionario e Gerente (subclasses). A classe Pessoa teria pouca utilidade, uma vez que somente objetos da classe Funcionario (ou herdeiras desta) seriam utilizadas. Por outro lado, no faz sentido eliminarmos completamente a classe Pessoa, transferindo para Funcionario a tarefa de ser a superclasse, uma vez que outra aplicao poderia usar Pessoa como superclasse
Java tem dois mecanismos que permitem a criao de classes que somente contm descries de campos e mtodos que devem ser implementados, mas sem efetivamente implementar estes mtodos.
Classes Abstratas;
Interfaces.
1. Classes Abstratas O primeiro mecanismo permite a criao de mtodos declarados como abstratos.
Exemplo 1: Hierarquia de classes para modelar seres vivos: A classe SerVivo pode ser declarada como abstrata pois no possui detalhes o suficiente para representar sozinha um objeto completo. O usurio no poder criar objetos da classe SerVivo pois esta apenas uma classe parcial e existe apenas para ser estendida por subclasses mais especializadas, tal como Animal e Vegetal.
abstract class SerVivo { String Alimentos; abstract void locomover(); abstract void nascer(); abstract void crescer(); abstract void alimentar(); abstract void respirar(); abstract void morrer(); }
Todos os diferentes tipos de seres vivos executam estas operaes de diferentes maneiras.
Regras para classes abstratas: - Mtodos abstratos so somente declarados. - Uma classe abstrata no pode ser instanciada. - Uma subclasse de uma classe abstrata pode ser instanciada somente se implementar todos os mtodos abstratos. - Se uma subclasse de uma classe abstrata no implementa todos os mtodos abstratos que herda, ento ela tambm uma classe abstrata. - Classes abstratas podem ter variveis e mtodos no abstrato. - Mtodos e classes abstratos so declarados com o modificador abstract. .
Exemplo 2: Superclasse: Forma. Mtodos: rea( ) e circunferncia( ). Subclasses: Retngulo e Crculo, com os mtodos herdados rea() e circunferncia( ). Esses mtodos no poderiam ser implementados na classe Forma, pois eles tm comportamentos diferentes. Por exemplo, a rea de um tringulo diferente da rea de um quadrado.
abstract class Forma { String cor; abstract double area(); abstract double circunferencia(); }
class Circulo extends Forma { double pi = 3.14; double r; double area() { return pi*r*r; }
class Retangulo extends Forma { double w, h; double area() { return w*h; } double circunferencia() { return 2*(w+h); } }
class TestaForma { public static void main(String[] args) { Circulo f1 = new Circulo(); Retangulo f2 = new Retangulo();
2. Interfaces Classes abstratas podem conter mtodos no abstratos que sero herdados e podero ser utilizados por objetos de classes herdeiras. Interfaces so classes abstratas que contm apenas mtodos abstratos. Portanto, em uma interface no existe implementao alguma.
Se a classe deixar de implementar algum mtodo da interface, a classe se torna abstrata. Diversas classes, sem nenhum relacionamento, podem se relacionar com uma mesma interface, assim como uma classe pode implementar mais de uma interface. A principal utilizao de interfaces est em declarar mtodos que uma ou mais classes devem necessariamente implementar. Como a interface no apresenta o cdigo dos mtodos, ela pode ser utilizada para apresentar a interface pblica de uma classe sem revelar sua implementao.
Alm disto, todos os mtodos da interface devem ser obrigatoriamente pblicos (public).
Exemplo 1: Zoolgico com vrios tipos de animais, onde cada animal contm os seguintes mtodos nascer(), dormir(), etc. public interface Animal { public void nascer(); public void durma(); } public class Morcego implements Animal { public void nasca() { System.out.println("Nasce um morcego"); }
public class Zebra implements Animal { double peso = 10; public void nasca() { System.out.println("Nasce uma zebra"); } public void durma() { System.out.println("Dorme em p"); } public double peso() { return peso; } }
public class Zoo { public static void main(String[] args) { Morcego m = new Morcego(); Zebra z = new Zebra(); m.nasca(); m.durma(); z.nasca(); z.durma(); } }
Exemplo 2: Escrever as classes Ponto, Circulo e Cilindro que implementam a interface Forma. Executar a classe UsaFormas para verificar se as classes foram implementadas corretamente.
Molto più che documenti.
Scopri tutto ciò che Scribd ha da offrire, inclusi libri e audiolibri dei maggiori editori.
Annulla in qualsiasi momento.