Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
[03]-Tutorial-POO Classe Abstrata/aula3.rar [03]-Tutorial-POO Classe Abstrata/[03]-POO Classe Abstrata.docx Tutorial 03 Programação Orientada a Objetos (JAVA) Professor: Jorge Viana Doria Jr, M.Sc. jjunior@unicarioca.edu.br package model; public class Pessoa { private Integer id; private String nome; private String email; public Pessoa(Integer id, String nome, String email) { super(); this.id = id; this.nome = nome; this.email = email; } public Pessoa() { super(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } package model; import java.util.Date; public class Funcionario extends Pessoa { private Double salario; private Date admissao; public Funcionario(Integer id, String nome, String email, Double salario, Date admissao) { super(id, nome, email); this.salario = salario; this.admissao = admissao; } public Funcionario() { super(); } public Double getSalario() { return salario; } public void setSalario(Double salario) { this.salario = salario; } public Date getAdmissao() { return admissao; } public void setAdmissao(Date admissao) { this.admissao = admissao; } public Double calcSalario(){ if(getSalario() < 1500){ return getSalario() * 0.91; }else if(getSalario() < 4000){ return getSalario() * 0.83; }else{ return getSalario() * 0.74; } } public Double calcSalario(Double comissao){ Double novoSalario = calcSalario() + comissao; if(getSalario() < 1500){ return novoSalario * 0.91; }else if(getSalario() < 4000){ return novoSalario * 0.83; }else{ return novoSalario * 0.74; } } } package model; /* * Uma classe abstract nao pode ser instancidada, ela deve ser herdada */ public abstract class Pessoa { private Integer id; private String nome; private String email; public Pessoa(Integer id, String nome, String email) { super(); this.id = id; this.nome = nome; this.email = email; } public Pessoa() { super(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } package control; import java.util.Calendar; import model.Funcionario; import model.Pessoa; public class Principal { //main + ctrl + espaço public static void main(String[] args) { Funcionario f1 = new Funcionario(); f1.setNome("Jose"); f1.setEmail("jose@ig.com"); f1.setSalario(3800.); f1.setId(1454); Calendar cal = Calendar.getInstance(); cal.set(2015, 5, 20); f1.setAdmissao(cal.getTime()); //syso System.out.println("Nome: " + f1.getNome()); System.out.println("Email: " + f1.getEmail()); System.out.println("Salario: " + f1.getSalario()); System.out.println("Admissao: " + f1.getAdmissao()); System.out.println("Comissao: "+ f1.calcSalario(350.)); } } package view; import javax.swing.JOptionPane; /* * Esta classe vai fazer a entrada de dados do funcionario */ public class InputFuncionario { //?As entradas de dados sao sempre como String public String lerNome(){ String nome = JOptionPane.showInputDialog("Informe o nome"); return nome; } public String lerEmail(){ String email = JOptionPane.showInputDialog("Informe o email"); return email; } public String lerSalario(){ String salario = JOptionPane.showInputDialog("Informe o salário"); return salario; } public String lerAdmissao(){ String admissao = JOptionPane.showInputDialog("Informe a data de admissão"); return admissao; } } package control; import java.util.Calendar; import view.InputFuncionario; import model.Funcionario; import model.Pessoa; public class Principal { //main + ctrl + espaço public static void main(String[] args) { InputFuncionario input = new InputFuncionario(); Funcionario f1 = new Funcionario(); f1.setNome(input.lerNome()); f1.setEmail(input.lerEmail()); f1.setSalario(new Double(input.lerSalario())); Calendar cal = Calendar.getInstance(); cal.set(2015, 5, 20); f1.setAdmissao(cal.getTime()); //syso System.out.println("Nome: " + f1.getNome()); System.out.println("Email: " + f1.getEmail()); System.out.println("Salario: " + f1.getSalario()); System.out.println("Admissao: " + f1.getAdmissao()); System.out.println("Comissao: "+ f1.calcSalario(350.)); } } package util; import java.text.NumberFormat; import java.util.Locale; public class FuncionarioUtil { /* * static -- O metodo ja esta alocado na memoria, * nao é necssário instanciar esta classe para utilizar o metodo */ public static String formatarSalario(Double salario){ Locale lc = new Locale("pt", "br"); NumberFormat nf = NumberFormat.getCurrencyInstance(lc); return nf.format(salario); } } package view; import java.util.Date; import javax.swing.JOptionPane; import util.FuncionarioUtil; import model.Funcionario; public class OutputFuncionario { public void imprimir(Funcionario f){ StringBuilder sb = new StringBuilder("DADDOS DE FUNCIONARIO\n\n"); if(f.getNome() != null){ sb.append("\nNome: "); sb.append(f.getNome()); } if(f.getEmail() != null){ sb.append("\nEmail: "); sb.append(f.getEmail()); } if(f.getSalario() != null){ sb.append("\nSalário: "); sb.append(FuncionarioUtil.formatarSalario(f.getSalario())); } if(f.getAdmissao() != null){ sb.append("\nAdmissao: "); sb.append(f.getAdmissao()); } JOptionPane.showMessageDialog(null, sb.toString()); } public static void main(String[] args) { /* * Sat Nov 12 14:47:28 BRST 2016 Sat Nov 12 14:48:29 BRST 2016 System.out.println(new Date()); String msg = "Aula"; for(int i = 0; i < 100000; i++){ msg += " Aula"; } System.out.println(new Date()); */ System.out.println(new Date()); StringBuilder sb = new StringBuilder("Aula"); for(int i = 0 ; i < 10000; i++){ sb.append(" Aula"); } System.out.println(new Date()); } } package control; import java.util.Calendar; import util.FuncionarioUtil; import view.InputFuncionario; import view.OutputFuncionario; import model.Funcionario; import model.Pessoa; public class Principal { //main + ctrl + espaço public static void main(String[] args) { InputFuncionario input = new InputFuncionario(); Funcionario f1 = new Funcionario(); f1.setNome(input.lerNome()); f1.setEmail(input.lerEmail()); f1.setSalario(new Double(input.lerSalario())); Calendar cal = Calendar.getInstance(); cal.set(2015, 5, 20); f1.setAdmissao(cal.getTime()); //syso /* System.out.println("Nome: " + f1.getNome()); System.out.println("Email: " + f1.getEmail()); System.out.println("Salario: " + FuncionarioUtil.formatarSalario(f1.getSalario())); System.out.println("Admissao: " + f1.getAdmissao()); System.out.println("Comissao: "+ FuncionarioUtil.formatarSalario(f1.calcSalario(350.))); */ OutputFuncionario out = new OutputFuncionario(); out.imprimir(f1); } } package validate; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ValidarFuncionario { public boolean validarNome(String nome){ if(nome == null || nome.equals("")) return false; //Regra de validação p o nome Pattern p1 = Pattern.compile("[a-zA-Z ]{3, 30}"); Matcher m1 = p1.matcher(nome); return m1.matches(); } public boolean validarSalario(String salario){ if(salario == null || salario.equals("")) return false; // 4000,00 Pattern p1 = Pattern.compile("[0-9]+\\,[0-9]{2}"); Matcher m1 = p1.matcher(salario); return m1.matches(); } public boolean validarEmail(String email){ if(email == null || email.equals("")) return false; Pattern p1 = Pattern.compile("[a-z0-9_.-]+@[a-z0-9_.-]+"); Matcher m1 = p1.matcher(email); return m1.matches(); } } package view; import javax.swing.JOptionPane; import validate.ValidarFuncionario; /* * Esta classe vai fazer a entrada de dados do funcionario */ public class InputFuncionario { ValidarFuncionario validar = new ValidarFuncionario(); //?As entradas de dados sao sempre como String public String lerNome(){ String nome = JOptionPane.showInputDialog("Informe o nome"); if(!validar.validarNome(nome)){ JOptionPane.showMessageDialog(null, "Nome invalido"); return lerNome(); } return nome; } public String lerEmail(){ String email = JOptionPane.showInputDialog("Informe o email"); if(!validar.validarEmail(email)){ JOptionPane.showMessageDialog(null, "E-mail invalido"); return lerEmail(); } return email; } public String lerSalario(){ String salario = JOptionPane.showInputDialog("Informe o salário"); if(!validar.validarSalario(salario)){ JOptionPane.showMessageDialog(null, "Salário invalido"); return lerSalario(); } //Se o usuario digitar o salario correto, alterar a , pelo . return salario.replace(',', '.'); } public String lerAdmissao(){ String admissao = JOptionPane.showInputDialog("Informe a data de admissão"); return admissao; } } package control; import java.util.Calendar; import util.FuncionarioUtil; import view.InputFuncionario; import view.OutputFuncionario; import model.Funcionario; import model.Pessoa; public class Principal { //main + ctrl + espaço public static void main(String[] args) { InputFuncionario input = new InputFuncionario(); Funcionario f1 = new Funcionario(); f1.setNome(input.lerNome()); f1.setEmail(input.lerEmail()); f1.setSalario(new Double(input.lerSalario())); // 20/10/2016 String admissao = input.lerAdmissao(); String[] data = admissao.split("/"); Calendar cal = Calendar.getInstance(); cal.set(new Integer(data[2]), new Integer(data[1]) - 1, new Integer(data[0])); f1.setAdmissao(cal.getTime()); //syso /* System.out.println("Nome: " + f1.getNome()); System.out.println("Email: " + f1.getEmail()); System.out.println("Salario: " + FuncionarioUtil.formatarSalario(f1.getSalario())); System.out.println("Admissao: " + f1.getAdmissao()); System.out.println("Comissao: "+ FuncionarioUtil.formatarSalario(f1.calcSalario(350.))); */ OutputFuncionario out = new OutputFuncionario(); out.imprimir(f1); } }
Compartilhar