Академический Документы
Профессиональный Документы
Культура Документы
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?
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
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
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
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
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
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
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
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
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