Aula – JAVA – FACULDADE

Publicado: outubro 26, 2007 em Java

// Declaração do pacote – Para melhor organizar o projeto
package basico;

// Declaração da classe
//public significa que a classe é visível para todo o projeto
public class Empregado {
// Declaração dos atributos da classe
// private significa que os atributos só são visíveis para a classe
// Encapsulamento
 private int matricula;
 private String nome;
 private float salario;
 
// Declaração de variável estática, só da classe. Não faz parte dos objetos da classe
 private static int novamatricula = 0;
 
// Declaração de método estático, só da classe. Não faz parte dos objetos da classe
 public static int getNovaMatricula(){
  novamatricula ++;
  return novamatricula;
 }
 
// Declaração de construtor default
 public Empregado(){}
 
// Declaração de construtor (sobrecarga)
 public Empregado(String nome, float salario) {
  this(getNovaMatricula(),nome, salario);
// this referencia o objeto corrente  
 }
// Declaração de construtor (sobrecarga)  
 public Empregado(int matricula, String nome, float salario) {
  this.matricula = matricula;
  this.nome      = nome;
  this.salario   = salario;
 }
// Declaração de método
 public int getMatricula() {
  return matricula;
 }
//  Declaração de método
 public void setMatricula(int matricula) {
  this.matricula = matricula;
 }
//  Declaração de método
 public String getNome() {
  return nome;
 }
//  Declaração de método
 public void setNome(String nome) {
  this.nome = nome;
 }
//  Declaração de método
 public float getSalario() {
  return salario;
 }
//  Declaração de método 
 public void setSalario(float salario) {
  this.salario = salario;
 }
//  Declaração de método
 public void print() { 
  System.out.println(matricula + ” ” + nome + ” ” + salario);
 }

//  Declaração de método
 public void aumentarSalario(double percentual) { 
  salario *= 1 + percentual / 100;
 }
}
************************************************************************************
package teste;
import basico.Empregado;

public class TesteEmpregado {

 public static void main(String[] args) {
       Empregado[] equipe = new Empregado[3];
       equipe[0] = new Empregado(“José”, 100);
       equipe[1] = new Empregado(“Maria”, 200);
       equipe[2] = new Empregado(“Pedro”, 300);
      
       int i;
      
       for (i = 0; i < 3; i++) equipe[i].aumentarSalario(5);
       for (i = 0; i < 3; i++) equipe[i].print();
 }

}
************************************************************************************
package basico;

public class Departamento {
 private int codigo;
 private String nome;
 private Gerente gerente;
 
 public Departamento(int codigo, String nome, Gerente gerente) {
  this.codigo  = codigo;
  this.nome    = nome;
  this.gerente = gerente;
 }
 public int getCodigo() {
  return codigo;
 }
 public void setCodigo(int codigo) {
  this.codigo = codigo;
 }
 public String getNome() {
  return nome;
 }
 public void setNome(String nome) {
  this.nome = nome;
 }
 public Gerente getGerente() {
  return gerente;
 }
 public void setGerente(Gerente gerente) {
  this.gerente = gerente;
 }
}
************************************************************************************
package basico;

// A classe Empregado está disponível para uso
import basico.Empregado;

// Herança – extends indica que a classe Gerente é uma subclasse de Empregado
// ela herda os atributos e métodos da superclasse (Empregado)
public class Gerente extends Empregado{
    private float comissao;
  
//  super se referencia à superclasse, no caso está chamando o construtor.
    public Gerente(int matricula, String nome, float salario, float comissao) {
  super (matricula, nome, salario);
  this.comissao = comissao;
 } 
 public float getComissao(){
  return this.comissao;
 }
 
 public void setComissao(float comissao){
  this.comissao = comissao;
 }
 
// polimorfismo – o método está sendo redefinido. Este método também foi definido em Empregado
 public void aumentarSalario(double percentual) {
  float salario = 0;
  salario *= 1 + percentual / 100;
  this.setSalario(salario);
  comissao *= 1 + percentual / 100;
 }

}
************************************************************************************
package teste;

import basico.Departamento;
import basico.Gerente;
import basico.Empregado;

public class TesteDepartamento {

 public static void main(String[] args) {
  Gerente gerente = new Gerente(1, “José”, 100, 30);
  Departamento departamento = new Departamento(1, “Vendas”, gerente);
  
  System.out.println(departamento.getCodigo() + ” ” + departamento.getNome() + ” ” + departamento.getGerente().getNome() + ” ” + departamento.getGerente().getComissao() );
  
  gerente.aumentarSalario(5);
  System.out.println(departamento.getCodigo() + ” ” + departamento.getNome() + ” ” + departamento.getGerente().getNome() + ” ” + departamento.getGerente().getComissao() );
 }

}

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s