<file_sep>public class Conta{
	private int numero = 0;
	private double saldo = 0;
	private double limite = 0;
	private Cliente cliente = new Cliente();
	
	int getNumero(){ 
		return this.numero; 
	}
	void setNumero(int numero){
		this.numero = numero;
	}	

	double getSaldo(){
		return this.saldo;
	}

	double getLimite(){
		return this.limite;
	}
	void setLimite(double limite){
		this.limite = limite;
	}

	Cliente getCliente(){
		return this.cliente;
	}
	
	boolean sacar(double valor){
		if ((this.saldo >= valor) && (valor>0)){
			this.saldo -= valor;
			return true;
		}
		return false;		
	}
	
	void depositar(double valor){
		this.saldo += valor;
	}
	
	boolean transferirPara(Conta contaDestino, double valor){
		if (this.sacar(valor)){
			contaDestino.depositar(valor);
		}
		return false;		
	}
	
	void exibirConta(){
		System.out.println("--------------------------------------------");
		System.out.println("Conta");
		System.out.println("--------------------------------------------");
		System.out.println("Dono: "+this.getCliente().getNome());
		System.out.println("Número: "+this.getNumero());
		System.out.println("Saldo: "+this.getSaldo());
		System.out.println("Limite: "+this.getLimite());
		System.out.println("Saque realizado? "+this.sacar(10));
		System.out.println("Saldo agora: "+this.getSaldo());	
	}
}<file_sep>public class TesteAluguelImoveis{
	public static void main(String[] args){
		Imovel imovel = new Imovel();
		Casa casa = new Casa();
		Apartamento apartamento = new Apartamento();
		
		imovel.setValor(25000);
		casa.setValor(25000);
		apartamento.setValor(25000);

		System.out.println("Imovel qualquer:");
		System.out.println("Valor: R$ "+imovel.getValor());
		System.out.println("Aluguel: R$ "+imovel.getAluguel());
		System.out.println("Iptu: R$ "+imovel.getIptu());		
		System.out.println("-------------");
		
		System.out.println("Casa:");
		System.out.println("Valor: R$ "+casa.getValor());
		System.out.println("Aluguel: R$ "+casa.getAluguel());
		System.out.println("Iptu: R$ "+casa.getIptu());				
		System.out.println("-------------");
		
		System.out.println("Apartamento:");
		System.out.println("Valor: R$ "+apartamento.getValor());
		System.out.println("Aluguel: R$ "+apartamento.getAluguel());
		System.out.println("Iptu: R$ "+apartamento.getIptu());
		
		System.out.println("-------------------------------------------");
		
		ComissaoCorretor comissao = new ComissaoCorretor();
		
		comissao.registraComissao(imovel);
		comissao.registraComissao(casa);
		comissao.registraComissao(apartamento);
		
		System.out.println("Total de comissao: R$ "+comissao.getTotalDeComissao());
	}
}<file_sep>public class Cliente{
	private String nome;
	private String cpf;	
	private String endereco;

	String getNome(){
		return this.nome;
	}
	void setNome(String nome){
		this.nome = nome;
	}

	String getCpf(){
		return this.cpf;
	}
	void setCpf(String cpf){
		this.cpf = cpf;
	}
	
	String getEndereco(){
		return this.endereco;
	}
	void setEndereco(String endereco){
		this.endereco = endereco;
	}
	
}
<file_sep>package br.com.empresa.banco.conta;

public class ContaCorrente extends Conta {

}
<file_sep>package br.com.empresa.banco;
import br.com.empresa.banco.conta.Conta;
import br.com.empresa.banco.conta.ContaCorrente;

public class TestaExceptionsConta {

	public static void main(String[] args) {
		Conta contaCorrente = new ContaCorrente();
		contaCorrente.depositar(10);
		
		try {
			contaCorrente.sacar(45555);
			System.out.println("Sacou corretamente");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
			

	}

}
<file_sep>package br.com.triadworks.model;
public class Empresa{
	String nome;
	String cnpj;
	Funcionario[] funcionarios = new Funcionario[10];

	void adiciona(Funcionario f){
		for (int x=0; x<funcionarios.length; x++ ){
			if (funcionarios[x] == null){
				this.funcionarios[x] = f;
				break;
			}
		}
	}

	void mostraFuncionarios(){
		System.out.println("Funcionarios da Empresa:");
		for (Funcionario funcionario : this.funcionarios){
			if (funcionario != null){
				System.out.println(funcionario);
				System.out.println("--");
			}			
		}
	}
}<file_sep>package br.com.triadworks.model;
class Exercicio01{
	public static void main (String[] args){	
		System.out.println("Exercicio 01 - Imprime intervalo de 30 há 180");
		System.out.println("--");
		for (int i=0; i<=180; i++){
			if(i>30 && i<180){
				System.out.print(i + ",");	
			}			
		}
		System.out.println();
		System.out.println("--");
	}
}<file_sep>package br.com.empresa.banco.conta;

public class LisoException extends Exception {
	public LisoException(String mensagem){
		super(mensagem);
	}
}
<file_sep>package br.com.empresa.banco.sistema;

import java.util.LinkedList;
import java.util.List;

import br.com.empresa.banco.conta.Conta;

public class Banco {
	private List<Conta> listaContas = new LinkedList<Conta>();
	
	public List<Conta> getListaContas(){
		return this.listaContas;
	}
	
	public void adicionaConta(Conta conta){
		this.listaContas.add(conta);
	}
	
	public void imprimeContas(){
		
		for (Conta  conta : getListaContas()) {
			System.out.println(conta);
		}
	}
}
<file_sep>public class Funcionario {
	String nome;
	double salario = 0;
	String cargo = "Sem cargo";
	String rg = "0";

	public Funcionario(){}
	public Funcionario(String nome){
		this.nome = nome;
	}

	void bonifica(double valor){
		this.salario += valor;	
	}

	double calculaGanhoAnual(){
		return this.salario*12;
	}

	void exibirSalario(){
		System.out.println("Salario atual: "+this.salario);		
	}

	void exibirGanhoAnual(){
		System.out.println("Ganho anual: "+this.calculaGanhoAnual());
	}	

	void mostra(){
		System.out.println("Nome: "+this.nome);
		System.out.println("Cargo: "+this.cargo);
		System.out.println("RG: "+this.rg);
		System.out.println("Salario: "+this.salario);
	}
}<file_sep>package br.com.triadworks;
import br.com.triadworks.model.Funcionario;
import br.com.triadworks.model.Gerente;


public class TestaFuncionario{
	public static void main(String [] args){
		Funcionario funcionario01 = new Gerente();
		funcionario01.setNome("Frodo");
		funcionario01.setSalario(300);

		Funcionario funcionario02 = funcionario01;

		if (funcionario01 == funcionario02){
			System.out.println("iguais");
		} else {
			System.out.println("diferentes");
		}
	}
}<file_sep>package br.com.triadworks;

import br.com.triadworks.model.Funcionario;
import br.com.triadworks.model.Gerente;

public class TestaStrings {
	public static void main(String[] args) {
		Funcionario funcionario = new Gerente();
		funcionario.setNome("<NAME>");
		funcionario.setSalario(1000);
		
		System.out.println(funcionario);
	}
}
<file_sep>class Exercicio03{
	public static void main (String[] args){
		int qtdImpares = 0;
	
		System.out.println("Exercicio03 - Imprime Impares contidos entre 10 há 50");
		System.out.println("--");
		for (int i=0; i<=100; i++){			
			if((i>=10) && (i<=50) &&(i%2 != 0)){
				qtdImpares++;
			}			
		}
		System.out.println(qtdImpares);
		System.out.println("--");
	}
}<file_sep>
public class ModeloLGSmartTV extends TV implements ControleRemoto{

	public ModeloLGSmartTV() {
		super("SmartTVLG", 42);
	}

	@Override
	public void volume(int volume) {
		System.out.println("aumentando volume");
		
	}

	@Override
	public void mudarCanal(int canal) {
		System.out.println("mudando de canal");
		
	}

	@Override
	public void ligar() {
		System.out.println("Ligando sua TV "+getMarca()+"...");
		setLigada(true);
		
	}

	@Override
	public void desligar() {
		System.out.println("Desligando"+getMarca());
		setLigada(false);
		
	}

	@Override
	public void status() {
		String mensagem = "OFFLINE";
		String status = "desligada";
		if (isLigada()) {
			mensagem = "TVON";
			status = "ligada";
		}

		System.out.println(getMarca()+" - Sua TV está "+status);
		System.out.println("Canal:"+getCanal());
		System.out.println("Volume:"+getVolume());
		System.out.println(getMarca() + " - "+mensagem );
	}
	
}
<file_sep>package br.com.empresa.banco.conta;

public class Conta implements Comparable<Conta>{
	private int numero = 0;
	private double saldo = 0;
	private double limite = 0;
	private Cliente cliente = new Cliente();
	
	public int getNumero(){ 
		return this.numero; 
	}
	public void setNumero(int numero){
		this.numero = numero;
	}	

	public double getSaldo(){
		return this.saldo;
	}

	public double getLimite(){
		return this.limite;
	}
	public void setLimite(double limite){
		this.limite = limite;
	}

	public Cliente getCliente(){
		return this.cliente;
	}
	
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	
	public boolean sacar(double valor) throws LisoException{
		if (this.saldo < valor){
			throw new LisoException("Você esta liso");
		} else{
			this.saldo -= valor;
			return true;
		}
	}
	
	public void depositar(double valor){
		this.saldo += valor;
	}
	
	public boolean transferirPara(Conta contaDestino, double valor) throws LisoException{
		if (sacar(valor)){
			contaDestino.depositar(valor);
			return true;
		}
		return false;		
	}
	
	public void setSaldo(double saldo) {
		this.saldo = saldo;		
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + numero;
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (obj == null)
			return false;
		if (!(obj instanceof Conta))
			return false;
		Conta other = (Conta) obj;
		if (numero != other.numero)
			return false;
		return true;
	}
	@Override
	public String toString() {
		return "Conta [numero=" + getNumero() + ", Saldo = R$ "+getSaldo()+"]";
	}
	@Override
	public int compareTo(Conta o) {
		return this.getNumero() - o.getNumero();
	}
}<file_sep>package br.com.empresa.banco.conta;


public class ContaPoupanca extends Conta {
	@Override
	public void setCliente(Cliente cliente) {
		// TODO Auto-generated method stub
		super.setCliente(cliente);
	}
}
<file_sep>package br.com.triadworks.model;
public class ComissaoCorretor{
	private double totalDeComissao;
	
	public void registraComissao(Imovel imovel){
		this.totalDeComissao += imovel.getAluguel() * 5/100;
	}
	
	public double getTotalDeComissao(){
		return this.totalDeComissao;
	}
}<file_sep>package br.com.triadworks;
import br.com.triadworks.model.Empresa;
import br.com.triadworks.model.Funcionario;
import br.com.triadworks.model.Gerente;


public class TestaEmpresa{
	public static void main(String [] args){
		Empresa empresa = new Empresa();
		empresa.funcionarios = new Funcionario[10];

		for (int i = 0; i<empresa.funcionarios.length; i++){
			empresa.funcionarios[i] = new Gerente("Funcionario 0"+i);
			empresa.funcionarios[i].setSalario(100 + 10*i);
			empresa.adiciona(empresa.funcionarios[i]);
		}

		empresa.mostraFuncionarios();
		
	}
}<file_sep>package br.com.empresa.banco;

import java.util.Collections;

import br.com.empresa.banco.conta.Conta;
import br.com.empresa.banco.sistema.Banco;

public class TestaBanco {

	public static void main(String[] args) {
		Banco banco = new Banco();
		
		Conta c1 = new Conta();
		c1.setNumero(800);
		c1.setSaldo(600);
		
		Conta c2 = new Conta();
		c2.setNumero(400);
		c2.setSaldo(6320);
		
		Conta c3 = new Conta();
		c3.setNumero(340);
		c3.setSaldo(677);
		
		Conta c4 = new Conta();
		c4.setNumero(2340);
		c4.setSaldo(784);
		
		banco.adicionaConta(c1);
		banco.adicionaConta(c2);
		banco.adicionaConta(c3);
		banco.adicionaConta(c4);
		
		banco.imprimeContas();
		
		Collections.sort(banco.getListaContas());
		System.out.println("--------------");
		System.out.println("Ordenado");
		banco.imprimeContas();
		
		
	}

}
