Buscar

[03]-Tutorial-POO Classe Abstrata

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);
		
	}
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando