///******************************************************************* //* //* Projeto: Aulas de Projeto de Software I //* //* Modulo: Heranca.java //* //* Objetivo: Define objeto ..... //* //* Classes & Funcoes Exportadas: Heranca //* //* Versao Original: 1.0 Data: agosto 2001 //* //* Autor: Ismael H F Santos //* //* Email: ismael@tecgraf.puc-rio.br //* //******************************************************************** //* //* Historico de Alteracoes: //* //* DATA AUTOR COMENTARIO //* ---- ----- ---------- //* xx/yy/00 .... .... //* //*******************************************************************/ ////////////////////////////////////////////////////////// // //* Concrete Class Pessoa // --------------------- // // Objetivo: ..... // ///////////////////////////////////////////////////////// class Pessoa{ //* Metodos e Atributos de Classe // ----------------------------- //* Elementos privados da classe // ---------------------------- //* Construtores & Destrutores //* Metodos e Atributos //* Elementos package da classe // --------------------------- //* Construtores & Destrutores Pessoa( String nome ) { _nome = nome; _endereco = ""; _idade = -1; } Pessoa( String nome, String endereco, int idade ) { _nome = nome; _endereco = endereco; _idade = idade; } //* Metodos e Atributos //* Elementos protegidos da classe // ------------------------------ protected String _nome, _endereco; protected int _idade; //* Construtores & Destrutores //* Metodos e Atributos //* Elementos públicos da classe // ---------------------------- //* Construtores & Destrutores //* Metodos e Atributos public void setNome( String nome ) { _nome = nome; } public void setEndereco( String endereco ) { _endereco = endereco; } public void setIdade( int idade ) { _idade = idade; } public String getNome() { return _nome; } public String getEndereco() { return _endereco; } public int getIdade() { return _idade; } public void atualizaDados( String nome, String end, int idade ) { setNome(nome); setEndereco(end); setIdade(idade); } public String toString() { return "Nome : " + _nome + "\n" + "End : " + _endereco+ "\n" + "Idade: " + _idade; } } ////////////////////////////////////////////////////////// // //* Concrete Class Empregado // ------------------------ // // Objetivo: ..... // ///////////////////////////////////////////////////////// class Empregado extends Pessoa{ //* Metodos e Atributos de Classe // ----------------------------- //* Elementos privados da classe // ---------------------------- private String _matricula; //* Construtores & Destrutores //* Metodos e Atributos //* Elementos package da classe // --------------------------- //* Construtores & Destrutores Empregado( String nome, float sal, String matricula ) { super( nome ); _salario = sal; _matricula = matricula; } //* Elementos protegidos da classe // ------------------------------ protected float _salario; //* Construtores & Destrutores //* Metodos e Atributos //* Elementos públicos da classe // ---------------------------- //* Construtores & Destrutores //* Metodos e Atributos public void setSalario( float salario ) { _salario = salario; } public void setMatricula( String matricula ) { _matricula = matricula; } public float getSalario() { return _salario; } public String getMatricula() { return _matricula; } public void atualizaDados( String nome, String end, int idade, String matricula ) { super.atualizaDados( nome, end, idade ); if( matricula.length() != 0 ) _matricula = matricula; } public String toString() { return super.toString()+ "\n" + "Matr : " + _matricula+ "\n" + "Sal : " + _salario; } } ////////////////////////////////////////////////////////// // //* Concrete Class Vendedor // ----------------------- // // Objetivo: ..... // ///////////////////////////////////////////////////////// class Vendedor extends Empregado{ //* Metodos e Atributos de Classe // ----------------------------- //* Elementos privados da classe // ---------------------------- private float _comissao, _salarioLiquido; //* Construtores & Destrutores //* Metodos e Atributos //* Elementos package da classe // --------------------------- //* Construtores & Destrutores Vendedor( String nome, float salario, float comissao, String matricula ) { super( nome, salario, matricula ); _comissao = comissao; _salarioLiquido = _salario * _comissao; } //* Elementos protegidos da classe // ------------------------------ //* Construtores & Destrutores //* Metodos e Atributos //* Elementos públicos da classe // ---------------------------- //* Construtores & Destrutores //* Metodos e Atributos public float getSalarioFixo() { return _salario; } public float getSalarioLiquido() { return _salarioLiquido; } public void setSalarioFixo( float salario ) { _salario = salario; } public void setSalarioLiquido( float salarioLiquido) { _salarioLiquido = salarioLiquido; } public void atualizaSalario( float salario, float comissao ) { _salario = salario; _comissao = comissao; _salarioLiquido = salario * comissao; } public String toString() { return super.toString()+ "\n" + "Comissao : " + _comissao+ "\n" + "SalLiquido: " + _salarioLiquido; } } ////////////////////////////////////////////////////////// // //* Concrete Class Recepcionista // ---------------------------- // ///////////////////////////////////////////////////////// //class Recepcionista extends Empregado{ }; ////////////////////////////////////////////////////////// // //* Concrete Class HerancaSimples // ----------------------------- // // Objetivo: ..... // ///////////////////////////////////////////////////////// public class HerancaSimples { //* Metodos e Atributos de Classe // ----------------------------- public static void main( String args[] ) { //Código do Programa Pessoa p = new Pessoa("Ismael"); p.atualizaDados("Jose", "Rua yyy", 22); Empregado f = new Empregado("Aloisio", 1000.0f, "123456"); Vendedor v = new Vendedor("Joao", 1200.0f, 1.5f, "123123"); System.out.println(""); System.out.println(p); // Invoca metodo toString !!! System.out.println("-------------------------------"); System.out.println(f); // Invoca metodo toString !!! System.out.println("-------------------------------"); System.out.println(v); // Invoca metodo toString !!! System.out.println("-------------------------------"); } //* Elementos privados da classe // ---------------------------- //* Construtores & Destrutores //* Metodos e Atributos //* Elementos package da classe // --------------------------- //* Construtores & Destrutores //* Metodos e Atributos //* Elementos protegidos da classe // ------------------------------ //* Construtores & Destrutores //* Metodos e Atributos //* Elementos públicos da classe // ---------------------------- //* Construtores & Destrutores //* Metodos e Atributos }