Você está na página 1de 10

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.

390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

ALUNO: DISCIPLINA: Linguagem de Programao III (Java) PROFESSOR: Gabriel de Jesus DATA: 27/03/2013

ATIVIDADE 06 Classes

Orientao: Esta atividade ser utilizada para composio da nota em conjunto com as atividades realizadas em sala de aula. Orientao: A atividade deve ser realizada gabriel.filho@uneb.com.br at o dia 10/04/2013. Valor: 2,5 pontos e devolvida respondida pelo email

INSTRUES

A) B) C) D)

Leia os comentrios. Use o Eclipse para editar, compilar e executar o cdigo. Em seguida, responda a questo solicitada. Esta atividade complementa a atividade 05.

EXEMPLO 01 : HERANA

COMENTRIOS Uma classe define a estrutura dos objetos que sero criados durante a execuo do programa. Na classe so definidos os atributos e mtodos que faro parte do objeto. J vimos que o objeto uma instaciao de uma classe, existe em um determinado momento e pode assumir vrios estados durante a execuo da aplicao. Dentro do modelo de programao orientada a objetos podemos criar um estrutura hierrquica de classes que herdam caractersticas e comportamentos de suas classes ancestrais. Isto facilita a manuteno e modularizao da aplicao. Esta tcnica chamada de herana ou ento de generalizao/especializao.

CDIGO (funcionario.java) package br.com.modelos; public class funcionario extends pessoa { private String funcao; public funcionario(int id, String nome, int ano_nasc, String nacionalidade) { super(id, nome, ano_nasc, nacionalidade); } public String getFuncao() { return funcao; } public void setFuncao(String funcao) { this.funcao = funcao; }

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

CDIGO (funcionario.java) package br.com.controle; import br.com.modelos.*; public class principal { public static void main(String[] args) { funcionario p1 = new funcionario(345, "Maria Aparecida", 1969, "Brasileira"); p1.setFuncao("Gerente de RH"); p1.setProfissao("Administrador"); System.out.println("Dados da Pessoa"); System.out.println("Id: " + p1.getId()); System.out.println("Nome: " + p1.getNome()); System.out.println("Idade: " + p1.calculaIdade() + " anos"); System.out.println("Nacionalidade: " + p1.getNacionalidade()); System.out.println("Profissao: " + p1.getProfissao()); System.out.println("Funo: " + p1.getFuncao()); } } QUESTES Qual a funo da palavra extends?

Quais atributos foram herdados pela classe funcionrio?

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

EXEMPLO 02 : OVERRIDE (SOBREESCRITA)

COMENTRIOS

Os mtodos da classe ancestral podem ser alterados na classe filha. Isto permite a alterao na subclasse do comportamento herdado da superclasse. Quando um mtodo sobreescrito, faz-se necessrio realizar uma nova implementao do comportamento.

CDIGO (funcionario.java)

package br.com.modelos; public class funcionario extends pessoa { private String funcao; public funcionario(int id, String nome, int ano_nasc, String nacionalidade) { super(id, nome, ano_nasc, nacionalidade); } public String getFuncao() { return funcao; } public void setFuncao(String funcao) { this.funcao = funcao; } public String getProfissao() { return super.getProfissao() + ":" + getFuncao(); }

CDIGO (principal.java)

package br.com.controle; import br.com.modelos.*; public class principal { public static void main(String[] args) { funcionario p1 = new funcionario(345, "Maria Aparecida", 1969, "Brasileira"); p1.setFuncao("Gerente de RH"); p1.setProfissao("Administrador"); System.out.println("Dados da Pessoa"); System.out.println("Id: " + p1.getId()); System.out.println("Nome: " + p1.getNome()); System.out.println("Idade: " + p1.calculaIdade() + " anos"); System.out.println("Nacionalidade: " + p1.getNacionalidade()); System.out.println("Profissao: " + p1.getProfissao()); } } QUESTES

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

Qual a funo da palavra super?

Qual mtodo foi sobreescrito na classe funcionrio?

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

EXEMPLO 03 : O MODIFICADOR FINAL

COMENTRIOS

Mtodos ou classes que recebem o modificador final no podem ser sobreescritos ou extendidos. Sempre que uma classe no possuir subclasses deve receber o modificador final. Da mesma forma, um mtodo que recebe a palava final no pode ser sobreescrito. Pode ser til em algumas situaes a utilizao do modificador final, mas no uma boa prtica utiliz-lo de forma leviana. CDIGO (pessoa.java)

ALTERE O CDIGO DE: public String getProfissao() { return profissao.getDescricao(); } PARA: public final String getProfissao() { return profissao.getDescricao(); EXECUTE O APLICATIVO E ANALISE OS RESULTADOS. QUESTES

Qual erro que a incluso da palavra final gerou no cdigo?

O que pode ser modificado na classe funcionrio para corrigir o erro?

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

EXEMPLO 04 : CLASSES ABSTRATAS

COMENTRIOS

Quando uma classe pode originar objetos chamada de classe concreta. As classes concretas podem instanciarem objetos com suas propriedades e comportamentos definidos. Porm, uma classe abstrata no pode gerar objetos. Ela pode apenas ser estendida e originar novas classes que podero, se desejarem, originar novos objetos. CDIGO (pessoa.java)

ALTERE O CDIGO DE: public class pessoa { PARA: public abstract class pessoa { CDIGO (principal.java) ALTERE O CDIGO DE: funcionario p1 = new funcionario(345, "Maria Aparecida", 1969, "Brasileira"); PARA: pessoa p1 = new pessoa(345, "Maria Aparecida", 1969, "Brasileira"); EXECUTE O APLICATIVO E ANALISE OS RESULTADOS. QUESTES

Qual erro que a incluso da palavra abstract gerou no cdigo?

Por que o erro foi gerado?

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

EXEMPLO 05 : INTERFACES

COMENTRIOS

Outro recurso til na programao orientada a objetos so as interfaces. A interface representa um conjunto de mtodos que devem ser implementados pela classe que realiza a interface. A interface fornece um contrato que deve ser realizado pela classe, garantindo desta forma que todos os mtodos sero implementados na classe concreta que implementar a interface. A interface define o comportamento mas no implementa o seu cdigo. Isto ser feito pela classe que realiza a interface. Para encerrar esta atividade, implemente todos os cdigos abaixo, execute a aplicao e analise os resultados. CDIGO (principal.java)

package br.com.controle; import br.com.modelos.*; public class principal { public static void main(String[] args) { funcionario p1 = new funcionario(345, "Maria Aparecida", 1969, "Brasileira"); p1.setFuncao("Gerente de RH"); p1.setProfissao("Administrador"); System.out.println("Dados da Pessoa"); System.out.println("Id: " + p1.getId()); System.out.println("Nome: " + p1.getNome()); System.out.println("Idade: " + p1.calculaIdade() + " anos"); System.out.println("Nacionalidade: " + p1.getNacionalidade()); System.out.println("Profissao: " + p1.getProfissao("Tipo")); } }

CDIGO (pessoa.java)

package br.com.modelos; public abstract class pessoa { private int id, ano_nasc; private String nome, nacionalidade="Brasileira"; private profissao profissao; public pessoa(int id, String nome, int ano_nasc, String nacionalidade) { this.id=id; this.nome=nome; this.ano_nasc=ano_nasc; this.nacionalidade=nacionalidade; } public int getId() { return id; } public String getNome() { return nome; } public int getAno_nasc() { return ano_nasc; } public String getNacionalidade() { return nacionalidade; } public final String getProfissao() { return profissao.getDescricao(); } public void setProfissao(String descricao) { profissao p = new profissao(); p.setDescricao(descricao); this.profissao = p;

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

} public int calculaIdade() { return 2013-this.ano_nasc ; } } CDIGO (profissao.java)

package br.com.modelos; class profissao { private String descricao; public String getDescricao() { return descricao; } public void setDescricao(String descricao) { this.descricao = descricao;} }

CDIGO (calculaSalario.java)

package br.com.modelos; public interface calculaSalario { public int exibeSalarioBruto(); public int exibeSalarioLiquido(); public int calculaINSS(); public int calculaIR(); }

CDIGO (funcionario.java)

package br.com.modelos; public class funcionario extends pessoa implements calculaSalario { private String funcao; public funcionario(int id, String nome, int ano_nasc, String nacionalidade) { super(id, nome, ano_nasc, nacionalidade); } public String getFuncao() { return funcao; } public void setFuncao(String funcao) { this.funcao = funcao; } public String getProfissao(String profissao) { return super.getProfissao() + ":" + getFuncao(); } @Override public int exibeSalarioBruto() { return 0;

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br

} @Override public int exibeSalarioLiquido() { return 0; } @Override public int calculaINSS() { return 0; } @Override public int calculaIR() { return 0; }

QUESTES

Qual a utilidade da palavra interface?

Para que serve a palavra implements?

Implemente na classe funcionario os mtodos exibeSalarioBruto, exibeSalarioLiquido, calculaINSS e calculaIR?

Altere o cdigo principal.java para que os resultados dos mtodos implementados sejam exibidos.

UNIO EDUCACIONAL DE BRASLIA SEQUENCIAL | GRADUAO | PS-GRADUAO SGAS 910 Conj. D CEP: 70.390-100 Asa Sul/Braslia-DF 61 2101 9900 | uneb.com.br