Buscar

Aula 6 Programação Orientada Objeto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Programação Orientada a Objetos. 
 
1 
Prof.Fábio Rener 
 
Herança. 
 
Vamos supor que nós temos três impressoras, uma matricial, uma de jato -de-
tinta e outra laser. Todas elas são diferentes tipos de impressora. Em 
orientação a objetos dizemos que a impressora matricial, a de jato de tinta e a 
laser são subclasses da classe Impressora. E da mesma forma dizemos que 
Impressora é a superclasse das impressoras matricial, jato-de-tinta e laser. 
 
A classe Impressora define atributos e métodos que todas impressoras devem 
possuir(por exemplo o atributo tamanho máximo do papel). Uma classe 
impressora matricial vai ter por exemplo, uma variável que indica o número de 
agulhas utilizadas para impressão. Já a impressora a laser não precisa desta 
variável pois não utiliza agulhas. Mas como as duas impressoras são 
subclasses de Impressora, elas herdam todos os atributos e métodos da 
mesma. 
 
Uma subclasse fornece um comportamento especializado para sua 
superclasse. 
 
Através de herança podemos reutilizar o código da superclasse muitas vezes. 
 
 
 
Utilizando Herança 
 
Quando estamos projetando as classes que farão parte de um sistema, é 
aconselhável ter em mente um conceito muito importante da programação 
orientada a objetos: a herança. 
 
O que um aluno, um professor e um funcionário possuem em comum? Todos 
eles são pessoas e, portanto, compartilham alguns dados comuns. Todos têm 
nome, idade, endereço, etc. E, o que diferencia um aluno de uma outra pessoa 
qualquer? Um aluno possui uma matrícula; Um funcionário possui um código 
de funcionário, data de admissão, salário, etc; Um professor possui um código 
de professor e informações relacionadas à sua formação. 
 
É aqui que a herança se torna uma ferramenta de grande utilidade. Podemos 
criar uma classe Pessoa, que possui todos os atributos e métodos comuns a 
todas as pessoas e herdar estes atributos e métodos em classes mais 
específicas, ou seja, a herança parte do geral para o mais específico. Comece 
criando uma classe Pessoa (Pessoa.java) como mostrado no código a seguir: 
 
 
 
 
 
 
Programação Orientada a Objetos. 
 
2 
Prof.Fábio Rener 
 
 
Exemplo: Pessoa.java 
 
 
public class Pessoa { 
 
private String nome; 
private int idade; 
 
 public String getNome() { 
 return nome; 
 } 
 public void setNome(String nome) { 
 this.nome = nome; 
 } 
 public int getIdade() { 
 return idade; 
 } 
 public void setIdade(int idade) { 
 this.idade = idade; 
 } 
 
 
} 
 
 
Esta classe possui os atributos nome e idade. Estes atributos são comuns a 
todas as pessoas. Veja agora como podemos criar uma classe Aluno que 
herda estes atributos da classe Pessoa e inclui seu próprio atributo, a saber, 
seu número de matrícula. Eis o código 
 
 
Exemplo: Aluno.java 
 
public class Aluno extends Pessoa { 
 
 private String matricula; 
 
 public String getMatricula() { 
 return matricula; 
 } 
 
 public void setMatricula(String matricula) { 
 this.matricula = matricula; 
 } 
 
} 
 
Observe que, em Java, a palavra-chave usada para indicar herança é extends. 
A classe Aluno agora possui três atributos: nome, idade e matricula. Veja um 
aplicativo demonstrando este relacionamento. 
 
Programação Orientada a Objetos. 
 
3 
Prof.Fábio Rener 
 
Exemplo: TesteHeranca.java 
 
public class TesteHeranca { 
 
 public static void main(String[] args) { 
 
 //cria um objeto da classe Aluno 
 Aluno aluno = new Aluno(); 
 
 aluno.setNome("Osmar J. Silva"); 
 aluno.setIdade(36); 
 aluno.setMatricula("AC33-65"); 
 
 // Exibe o resultado 
 System.out.println("Nome: " + aluno.getNome() + "\n" + "Idade: " 
 + aluno.getIdade() + "\n" + "Matrícula: " + aluno.getMatricula()); 
 
 
 
 } 
 
} 
 
 
Vamos analisar mais um exemplo, a classe Retangulo, ela será usada para 
criação de objetos Geométricos. 
 
 
Exemplo: Retangulo.java 
 
public class Retangulo { 
 
 int largura; 
 int altura; 
 
 //Construtor 
 public Retangulo (int x){ 
 largura=x; 
 altura=x; 
 } 
 
 //Construtor 
 public Retangulo (int l, int a){ 
 largura=l; 
 altura=a; 
 } 
 
 public void setLargura(int l){ 
 largura=l; 
 } 
 
 public int getLargura(){ 
 return largura; 
Programação Orientada a Objetos. 
 
4 
Prof.Fábio Rener 
 } 
 
 public void setAltura(int a){ 
 altura = a; 
 } 
 
 public int getAltura(){ 
 return altura; 
 } 
 
 public int calculaArea(){ 
 int area = largura*altura; 
 return area; 
 } 
 
} 
 
Exemplo: Geometria.java 
 
public class Geometria 
{ 
 
 public static void main(String args[]) 
 { 
 int largura = 13; 
 int altura = 9; 
 
 // Utilização da classe retangulo 
 Retangulo ret = new Retangulo(largura, altura); 
 int area = ret.calculaArea(); 
 
 System.out.println("Retangulo:"); 
 System.out.println("Largura = " + ret.getLargura()); 
 System.out.println("Altura = " + ret.getAltura()); 
 System.out.println("Area="+area+ "\n"); 
 
 } 
} 
 
 
Vamos criar outro objeto Geométrico que herde as caracteristicas de 
Retangulo, vamos criar um Cubo. 
 
 
Exemplo: Cubo.java 
 
 
public class Cubo extends Retangulo 
{ 
 public Cubo (int x) 
 { 
 super(x); 
 } 
Programação Orientada a Objetos. 
 
5 
Prof.Fábio Rener 
 
 public int calculaVolume() 
 { 
 int areaFace=calculaArea(); 
 int volume= areaFace*getLargura(); 
 return volume; 
 } 
} 
 
Exemplo: Geometria.java (Alterada para usar Cubo) 
 
public class Geometria 
{ 
 
 public static void main(String args[]) 
 { 
 int lateralCubo = 4; 
 
 Cubo cubo = new Cubo(lateralCubo); 
 System.out.println("Cubo:"); 
 System.out.println("Volume="+cubo.calculaVolume()); 
 
 } 
} 
 
 
Exercicios 
 
 
1) Usando o primeiro exemplo onde definidos a classe Pessoa, vamos criar a 
classe, Professor que deve herdar os atributos ja definidos em Pessoa e 
implementar seus atributos especificos, não esqueça de fazer uma classe para 
testar sua classe Professor. 
 
2) O que é subclasses ? 
 
 
3) O que é superclasses ?

Outros materiais