├── .gitignore ├── Desafios ├── Excecoes │ ├── Cliente.java │ ├── Fornecedor.java │ ├── SituacaoConta.java │ ├── OperacaoContaException.java │ ├── Pessoa.java │ ├── ContaPagar.java │ ├── Conta.java │ ├── ContaReceber.java │ └── Principal.java ├── Heranca e sobreposicao │ ├── Cliente.java │ ├── Fornecedor.java │ ├── SituacaoConta.java │ ├── Pessoa.java │ ├── ContaPagar.java │ ├── Conta.java │ ├── ContaReceber.java │ └── Principal.java ├── Polimorfismo e classes abstratas │ ├── Cliente.java │ ├── Fornecedor.java │ ├── SituacaoConta.java │ ├── Pessoa.java │ ├── RelatorioContas.java │ ├── Conta.java │ ├── ContaPagar.java │ └── Principal.java ├── Pacotes e enumeracoes │ ├── SituacaoConta.java │ ├── Fornecedor.java │ └── Principal.java ├── Objeto this, construtores e JavaBeans │ ├── Fornecedor.java │ ├── Principal.java │ └── ContaPagar.java ├── Collections │ ├── Politico.java │ ├── Cargo.java │ └── Governo.java ├── Static e final │ ├── TesteMatematica.java │ └── MatematicaUtil.java ├── Classe java.lang.Math │ ├── Principal.java │ └── MegaSena.java ├── Numeros │ └── DesafioNumeros.java ├── Javadoc │ ├── Politico.java │ └── Cargo.java ├── Wrappers e boxing │ └── Televisor.java └── Datas │ ├── CalculadoraGravidez.java │ └── Principal.java ├── Aulas ├── Construtores │ ├── Pessoa.java │ └── TesteConstrutor.java ├── JOptionPane │ ├── algaworks.png │ ├── ExemploJOptionPane1.java │ ├── ExemploJOptionPane3.java │ ├── ExemploJOptionPane4.java │ └── ExemploJOptionPane2.java ├── Sobreposicao │ ├── Produto.java │ ├── ProdutoPerecivel.java │ └── TesteSobreposicao.java ├── Heranca e modificador protected │ ├── Tecnico.java │ ├── Pessoa.java │ ├── Jogador.java │ └── TesteHeranca.java ├── Interfaces │ ├── NotaFiscal.java │ ├── Imprimivel.java │ ├── EnviavelPorEmail.java │ ├── exemplo-interfaces │ │ ├── docs │ │ │ └── diagrama_classe.png │ │ └── src │ │ │ └── com │ │ │ └── algaworks │ │ │ ├── pagamento │ │ │ ├── Autorizavel.java │ │ │ ├── Operadora.java │ │ │ ├── operadoras │ │ │ │ ├── Cielo.java │ │ │ │ └── Redecard.java │ │ │ └── Cartao.java │ │ │ ├── impressao │ │ │ ├── Impressora.java │ │ │ ├── Imprimivel.java │ │ │ └── impressoras │ │ │ │ ├── ImpressoraHP.java │ │ │ │ └── ImpressoraEpson.java │ │ │ ├── caixa │ │ │ ├── Checkout.java │ │ │ └── Compra.java │ │ │ └── teste │ │ │ └── TesteCheckout.java │ └── TesteInterface.java ├── JDBC │ └── cadastro-cliente │ │ ├── docs │ │ ├── cadastro-cliente.ddl │ │ ├── diagrama_classe1.png │ │ └── diagrama_classe2.png │ │ ├── lib │ │ └── mysql-connector-java-5.1.27-bin.jar │ │ └── src │ │ └── com │ │ └── algaworks │ │ └── curso │ │ ├── dao │ │ ├── DAOException.java │ │ ├── DAOFactory.java │ │ ├── ClienteDAO.java │ │ └── jdbc │ │ │ └── JdbcDAOFactory.java │ │ ├── modelo │ │ └── Cliente.java │ │ ├── BuscaTodosClientes.java │ │ ├── BuscaPeloCodigo.java │ │ └── SalvaCliente.java ├── Sobrecarga │ ├── TesteCadastro.java │ ├── Pessoa.java │ └── CadastroPessoa.java ├── Valores padrao │ ├── Principal2.java │ ├── Proprietario.java │ └── Carro.java ├── Enumeracoes │ ├── TesteOperacaoEnum.java │ ├── TesteEnum.java │ ├── Naipe.java │ ├── OperacaoAritmetica.java │ └── Carta.java ├── Sequencias de escape │ └── OiMundo.java ├── Trabalhando com datas │ ├── TesteDatas.java │ └── TesteCalendar.java ├── Classes abstratas │ ├── ProdutoPerecivel.java │ ├── Produto.java │ └── TesteClasseAbstrata.java ├── Instanciando objetos │ ├── Carro.java │ └── Principal.java ├── Modificador static e final │ ├── Contador.java │ └── TesteContador.java ├── Classe java.lang.Math │ └── TesteClasseMath.java ├── Collections framework │ ├── TesteMapHashMap.java │ ├── TesteSetHashSet.java │ ├── TesteListArrayList.java │ └── Aluno.java ├── Trabalhando com numeros │ └── TesteNumeros.java ├── Acessando atributos de objetos │ ├── Carro.java │ └── Principal.java ├── Criando uma classe com atributos │ └── Carro.java ├── Variaveis referenciam objetos │ ├── Principal2.java │ ├── Carro.java │ └── Proprietario.java ├── Arquivo properties │ ├── config │ │ └── config.properties │ └── com │ │ └── algaworks │ │ └── curso │ │ └── LendoArquivoProperties.java ├── Tratando e lancando excecoes │ ├── ContaCorrente.java │ ├── TesteExcecoes.java │ ├── SaldoInsuficienteException.java │ └── TesteExcecoesChecadas.java ├── Argumentos por valor ou referencia │ ├── Principal5.java │ ├── Preco.java │ └── Produto.java ├── Codificando, compilando e executando o programa OiMundo │ └── OiMundo.java ├── Introducao e instalacao do eclipse ide │ └── OlaEclipse.java ├── Passando argumentos para metodos │ ├── Principal4.java │ └── FolhaPagamento.java ├── Composicao de objetos │ ├── Carro.java │ ├── Proprietario.java │ └── Principal2.java ├── try-with-resources-e-multicast │ ├── NegocioException.java │ ├── SalvarAluno.java │ └── ExemploTryEMultiCast.java ├── Metodos com retorno │ ├── IMC.java │ ├── Carro.java │ ├── Principal3.java │ └── Paciente.java ├── Classes String, StringBuffer e StringBuilder │ └── TesteStrings.java ├── Criando, nomeando e chamando metodos │ ├── Proprietario.java │ ├── Carro.java │ └── Principal2.java ├── Polimorfismo, instanceof e casting de objetos │ ├── TestePolimorfismo.java │ ├── ContaCorrente.java │ ├── ContaPoupanca.java │ └── Conta.java ├── Operadores de comparacao e igualdade │ └── OperadoresDeComparacaoEIgualdade.java ├── Wrappers do java.lang │ ├── Principal6.java │ └── TestesClassesWrapper.java ├── Promocao aritmetica │ └── PromocaoAritmetica.java ├── Encapsulamento e modificadores de acesso public e private │ ├── TesteEncapsulamento.java │ └── ArCondicionado.java ├── Interfaces funcionais │ └── com │ │ └── algaworks │ │ ├── impressao │ │ ├── Impressora.java │ │ └── impressoras │ │ │ └── ImpressoraHP.java │ │ ├── compra │ │ └── Compra.java │ │ └── teste │ │ └── Teste.java ├── Metodos da classe String │ ├── ExemploClasseString9.java │ ├── ExemploClasseString4.java │ ├── ExemploString6.java │ ├── ExemploClasseString3.java │ ├── ExemploClasseString8.java │ ├── ExemplosClasseString2.java │ ├── ExemploClasseString7.java │ ├── ExemploClasseString5.java │ └── ExemplosClasseString.java ├── Introducao a Generics │ └── generics │ │ └── src │ │ └── com │ │ └── algaworks │ │ ├── RetiraElementos.java │ │ ├── Funcionario.java │ │ ├── Gaveta.java │ │ ├── TesteRetiraElementos.java │ │ ├── TesteGaveta.java │ │ └── Principal.java ├── Trabalhando com strings │ └── TrabalhandoComStrings.java ├── Conversao de tipos primitivos │ └── ConversaoTipoPrimitivo.java ├── Modificador de acesso default │ ├── DonoCachorro.java │ ├── Cachorro.java │ └── TreinadorCachorro.java ├── Introducao a lambda │ └── com │ │ └── algaworks │ │ ├── util │ │ └── EnviadorEmail.java │ │ ├── dao │ │ └── FaturaDAO.java │ │ ├── exemplo │ │ └── ExemploLambda.java │ │ └── modelo │ │ └── Fatura.java ├── Introducao a expressoes regulares │ ├── ReplaceString.java │ ├── SplitString.java │ └── ValidandoEmails.java ├── Organizando o projeto em pacotes │ ├── Cachorro.java │ └── TreinadorCachorro.java ├── Logging │ ├── com │ │ └── algaworks │ │ │ ├── model │ │ │ └── Cliente.java │ │ │ ├── ConfiguracaoBasica.java │ │ │ ├── dao │ │ │ └── ClienteDAO.java │ │ │ └── ExemploSalvandoCliente.java │ └── log4j.properties ├── varargs │ ├── CorreioEletronico.java │ └── TesteCorreioEletronico.java ├── Boxing │ └── Principal6.java ├── Criando javabeans │ ├── TesteJavaBean.java │ └── PessoaBean.java ├── Operadores de incremento e decremento │ └── IncrementoDecremento.java ├── Trabalhando com arrays │ ├── Carro.java │ ├── TesteArrayComCarro.java │ └── TesteArrays.java ├── Trabalhando com variaveis │ └── Variavel1.java ├── Javadoc │ └── com │ │ └── algaworks │ │ └── curso │ │ ├── Teste.java │ │ └── modelo │ │ ├── Viagem.java │ │ └── Funcionario.java ├── O objeto this │ ├── ExemploThis.java │ └── Carro.java ├── Testes de unidade com JUnit │ ├── src │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── algaworks │ │ │ │ └── Fibonacci.java │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── algaworks │ │ │ └── FibonacciTest.java │ └── pom.xml ├── Ordenando objetos │ └── com │ │ └── algaworks │ │ ├── IdadeComparator.java │ │ ├── OrdenandoPeloNome.java │ │ ├── OrdenandoPelaIdade.java │ │ └── Pessoa.java ├── Equals e HashCode │ ├── SimuladorBancoDeDados.java │ ├── TesteSetHashSet2.java │ └── Aluno.java ├── Estrutura de controle for │ └── EstruturaFor.java ├── Operadores aritmeticos │ └── OperadorAritmetico1.java ├── Outros operadores de atribuicao │ └── Operador2.java ├── Clausulas break e continue │ ├── ExemploBreak.java │ └── ExemploContinue.java ├── Depurando codigos com o eclipse │ └── TesteDebug.java ├── Estrutura de controle do-while │ └── EstruturaDoWhile.java ├── Recebendo entrada de dados │ └── EntradaDeDados.java ├── Arquivos jar │ └── CalculoIMC.java ├── Maven │ ├── src │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── algaworks │ │ │ └── curso │ │ │ ├── Main.java │ │ │ └── Usuario.java │ └── pom.xml ├── Operador ternario │ └── OperadorTernario.java ├── Tipos primitivos │ └── TipoPrimitivo.java ├── Referencia a metodos │ └── com │ │ └── algaworks │ │ ├── dao │ │ └── FaturaDAO.java │ │ ├── exemplo │ │ └── Exemplo.java │ │ └── modelo │ │ └── Fatura.java ├── Estrutura de controle while │ └── EstruturaWhile.java ├── IO Lendo arquivo │ └── EnviandoEmails.java ├── Introducao a stream │ └── com │ │ └── algaworks │ │ ├── dao │ │ └── FaturaDAO.java │ │ ├── teste │ │ └── Teste.java │ │ └── modelo │ │ └── Fatura.java ├── StringBuffer e StringBuilder │ └── ExemploStringBuffer.java ├── Estrutura de controle switch │ └── PagamentoIpva.java ├── JSON Basico │ └── com │ │ └── algaworks │ │ └── curso │ │ ├── modelo │ │ ├── Telefone.java │ │ ├── Endereco.java │ │ └── Cliente.java │ │ └── GerandoJson.java ├── Escopo de variaveis │ └── Escopo.java ├── Separador de digitos em literais numericos │ └── ExemploSeparadorDigitosLiterais.java ├── Nova API de data parte 2 │ └── com │ │ └── algaworks │ │ ├── model │ │ ├── Cliente.java │ │ └── Carro.java │ │ └── exemplos │ │ ├── CadastroCarro.java │ │ └── CadastroCliente.java ├── Nova API de data parte 3 │ └── com │ │ └── algaworks │ │ ├── model │ │ ├── Cliente.java │ │ ├── Carro.java │ │ └── Aluguel.java │ │ └── exemplos │ │ ├── CadastroCarro.java │ │ ├── CadastroCliente.java │ │ └── NovoAluguel.java ├── Nova API de data parte 4 │ └── com │ │ └── algaworks │ │ ├── model │ │ ├── Cliente.java │ │ └── Carro.java │ │ └── exemplos │ │ ├── CadastroCarro.java │ │ ├── CadastroCliente.java │ │ ├── DevolucaoCarro.java │ │ └── NovoAluguel.java ├── Nova api de data parte 1 │ └── com │ │ └── algaworks │ │ ├── model │ │ └── Cliente.java │ │ └── exemplos │ │ └── CadastroCliente.java ├── Switch case com Strings │ └── SwitchCaseComString.java ├── Parametros da JVM │ └── com │ │ └── algaworks │ │ └── Memoria.java ├── Enviando objetos na rede │ ├── Pedido.java │ ├── Client.java │ └── Server.java ├── Diamond │ └── ExemploDiamond.java ├── IO Gravando arquivo │ └── GravandoEmails.java ├── Salvando e lendo objetos em arquivo │ └── com │ │ └── algaworks │ │ ├── model │ │ └── Pessoa.java │ │ ├── SerializandoObjeto.java │ │ └── DeserializandoObjeto.java ├── XML Basico │ ├── LendoProduto.java │ ├── modelo │ │ └── Produto.java │ ├── LendoCarrinho.java │ ├── SalvandoProduto.java │ └── SalvandoCarrinho.java ├── Criando uma aplicacao de chat │ ├── cliente │ │ └── com │ │ │ └── algaworks │ │ │ └── chat │ │ │ └── cliente │ │ │ ├── thread │ │ │ └── RecebeMensagemServidor.java │ │ │ └── Cliente.java │ └── servidor │ │ └── com │ │ └── algaworks │ │ └── chat │ │ └── servidor │ │ ├── Servidor.java │ │ └── thread │ │ └── RecebeMensagemCliente.java ├── Estruturas de controle if, else if e else │ └── EntradaDeDados.java ├── IO Classe Scanner │ └── LendoArquivoItensPedido.java └── Operadores logicos │ └── OperadoresLogicos.java ├── Exercicios ├── Composicao de objetos e chamada de metodos │ ├── Pessoa.java │ ├── Cachorro.java │ ├── Passeio.java │ └── Caminhada.java ├── Interfaces e polimorfismo │ ├── Seguravel.java │ ├── Principal.java │ ├── CorretoraSeguros.java │ ├── Carro.java │ └── Imovel.java ├── Instanciando e acessando atributos do objeto │ ├── Cachorro.java │ └── PetShop.java ├── Codificando um primeiro programa │ └── OlaGalera.java ├── Arrays │ ├── Produto.java │ ├── Estoque.java │ └── Principal.java ├── Strings, entrada de dados, operadores de comparacao e if else │ └── DescobreAnoBissexto.java ├── Sobrecarga │ ├── TesteMaquinaCafe.java │ └── MaquinaCafe.java ├── Variaveis e operadores aritmeticos │ └── PrecoMedioBombom.java ├── Tipos primitivos e outros operadores de atribuicao │ └── CalculadoraProfessor.java ├── Operador ternario, decremento, estrutura for e while e clausula break │ └── ClassificaProduto.java └── Operadores logicos │ └── MultaVeiculo.java └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | .DS_Store 3 | Servers/* 4 | .metadata 5 | .settings 6 | .classpath 7 | .project 8 | target/ 9 | -------------------------------------------------------------------------------- /Desafios/Excecoes/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Cliente extends Pessoa { 4 | 5 | } -------------------------------------------------------------------------------- /Desafios/Excecoes/Fornecedor.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Fornecedor extends Pessoa { 4 | 5 | } -------------------------------------------------------------------------------- /Aulas/Construtores/Pessoa.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Construtores/Pessoa.java -------------------------------------------------------------------------------- /Aulas/JOptionPane/algaworks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/JOptionPane/algaworks.png -------------------------------------------------------------------------------- /Aulas/Sobreposicao/Produto.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Sobreposicao/Produto.java -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Cliente extends Pessoa { 4 | 5 | } -------------------------------------------------------------------------------- /Aulas/Heranca e modificador protected/Tecnico.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.heranca; 2 | 3 | public class Tecnico extends Pessoa { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /Aulas/Interfaces/NotaFiscal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Interfaces/NotaFiscal.java -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/docs/cadastro-cliente.ddl: -------------------------------------------------------------------------------- 1 | create table cliente( 2 | codigo int not null auto_increment primary key, 3 | nome varchar(100) 4 | ) -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/Fornecedor.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Fornecedor extends Pessoa { 4 | 5 | } -------------------------------------------------------------------------------- /Aulas/Sobrecarga/TesteCadastro.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Sobrecarga/TesteCadastro.java -------------------------------------------------------------------------------- /Aulas/Valores padrao/Principal2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Valores padrao/Principal2.java -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Cliente extends Pessoa { 4 | 5 | } -------------------------------------------------------------------------------- /Exercicios/Composicao de objetos e chamada de metodos/Pessoa.java: -------------------------------------------------------------------------------- 1 | 2 | public class Pessoa { 3 | 4 | String nome; 5 | 6 | Cachorro cachorro; 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Aulas/Interfaces/Imprimivel.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.interfaces; 2 | 3 | public interface Imprimivel { 4 | 5 | public void imprimir(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/Fornecedor.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Fornecedor extends Pessoa { 4 | 5 | } -------------------------------------------------------------------------------- /Aulas/Construtores/TesteConstrutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Construtores/TesteConstrutor.java -------------------------------------------------------------------------------- /Aulas/Enumeracoes/TesteOperacaoEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Enumeracoes/TesteOperacaoEnum.java -------------------------------------------------------------------------------- /Aulas/Sequencias de escape/OiMundo.java: -------------------------------------------------------------------------------- 1 | public class OiMundo { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("Oi \nMundo"); 5 | } 6 | 7 | } -------------------------------------------------------------------------------- /Aulas/Sobreposicao/ProdutoPerecivel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Sobreposicao/ProdutoPerecivel.java -------------------------------------------------------------------------------- /Aulas/Sobreposicao/TesteSobreposicao.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Sobreposicao/TesteSobreposicao.java -------------------------------------------------------------------------------- /Aulas/Trabalhando com datas/TesteDatas.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Trabalhando com datas/TesteDatas.java -------------------------------------------------------------------------------- /Exercicios/Interfaces e polimorfismo/Seguravel.java: -------------------------------------------------------------------------------- 1 | public interface Seguravel { 2 | 3 | public double calcularValorApolice(); 4 | public String obterDescricao(); 5 | 6 | } -------------------------------------------------------------------------------- /Aulas/Classes abstratas/ProdutoPerecivel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Classes abstratas/ProdutoPerecivel.java -------------------------------------------------------------------------------- /Aulas/Instanciando objetos/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Modificador static e final/Contador.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Modificador static e final/Contador.java -------------------------------------------------------------------------------- /Desafios/Excecoes/SituacaoConta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public enum SituacaoConta { 4 | 5 | PENDENTE, 6 | PAGA, 7 | CANCELADA 8 | 9 | } -------------------------------------------------------------------------------- /Aulas/Classe java.lang.Math/TesteClasseMath.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Classe java.lang.Math/TesteClasseMath.java -------------------------------------------------------------------------------- /Aulas/Collections framework/TesteMapHashMap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Collections framework/TesteMapHashMap.java -------------------------------------------------------------------------------- /Aulas/Collections framework/TesteSetHashSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Collections framework/TesteSetHashSet.java -------------------------------------------------------------------------------- /Aulas/Interfaces/EnviavelPorEmail.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.interfaces; 2 | 3 | public interface EnviavelPorEmail { 4 | 5 | public void enviar(String email); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com numeros/TesteNumeros.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Trabalhando com numeros/TesteNumeros.java -------------------------------------------------------------------------------- /Aulas/Acessando atributos de objetos/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Collections framework/TesteListArrayList.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Collections framework/TesteListArrayList.java -------------------------------------------------------------------------------- /Aulas/Criando uma classe com atributos/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Heranca e modificador protected/Pessoa.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Heranca e modificador protected/Pessoa.java -------------------------------------------------------------------------------- /Aulas/Variaveis referenciam objetos/Principal2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Variaveis referenciam objetos/Principal2.java -------------------------------------------------------------------------------- /Aulas/Arquivo properties/config/config.properties: -------------------------------------------------------------------------------- 1 | banco.dados.url=jdbc:mysql://localhsot/cadastro_cliente 2 | banco.dados.usuario=root 3 | banco.dados.senha=root 4 | 5 | email.admin=jose@empresa.com -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/docs/diagrama_classe1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/JDBC/cadastro-cliente/docs/diagrama_classe1.png -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/docs/diagrama_classe2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/JDBC/cadastro-cliente/docs/diagrama_classe2.png -------------------------------------------------------------------------------- /Aulas/Tratando e lancando excecoes/ContaCorrente.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Tratando e lancando excecoes/ContaCorrente.java -------------------------------------------------------------------------------- /Aulas/Tratando e lancando excecoes/TesteExcecoes.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Tratando e lancando excecoes/TesteExcecoes.java -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/SituacaoConta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public enum SituacaoConta { 4 | 5 | PENDENTE, 6 | PAGA, 7 | CANCELADA 8 | 9 | } -------------------------------------------------------------------------------- /Desafios/Pacotes e enumeracoes/SituacaoConta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public enum SituacaoConta { 4 | 5 | PENDENTE, 6 | PAGA, 7 | CANCELADA 8 | 9 | } -------------------------------------------------------------------------------- /Exercicios/Composicao de objetos e chamada de metodos/Cachorro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Cachorro { 3 | 4 | String nome; 5 | String raca; 6 | char sexo; 7 | int idade; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Exercicios/Instanciando e acessando atributos do objeto/Cachorro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Cachorro { 3 | 4 | String nome; 5 | String raca; 6 | char sexo; 7 | int idade; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Argumentos por valor ou referencia/Principal5.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Argumentos por valor ou referencia/Principal5.java -------------------------------------------------------------------------------- /Aulas/Codificando, compilando e executando o programa OiMundo/OiMundo.java: -------------------------------------------------------------------------------- 1 | public class OiMundo { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("Oi Mundo"); 5 | } 6 | 7 | } -------------------------------------------------------------------------------- /Aulas/Introducao e instalacao do eclipse ide/OlaEclipse.java: -------------------------------------------------------------------------------- 1 | public class OlaEclipse { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("Ola Eclipse!!!"); 5 | } 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Aulas/Passando argumentos para metodos/Principal4.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Passando argumentos para metodos/Principal4.java -------------------------------------------------------------------------------- /Aulas/Argumentos por valor ou referencia/Preco.java: -------------------------------------------------------------------------------- 1 | 2 | public class Preco { 3 | 4 | double valorCustos; 5 | double valorImpostos; 6 | double valorLucro; 7 | double precoVenda; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Composicao de objetos/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | 9 | Proprietario dono; 10 | } 11 | -------------------------------------------------------------------------------- /Aulas/try-with-resources-e-multicast/NegocioException.java: -------------------------------------------------------------------------------- 1 | 2 | public class NegocioException extends RuntimeException { 3 | 4 | public NegocioException(String msg) { 5 | super(msg); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/SituacaoConta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public enum SituacaoConta { 4 | 5 | PENDENTE, 6 | PAGA, 7 | CANCELADA 8 | 9 | } -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/docs/diagrama_classe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Interfaces/exemplo-interfaces/docs/diagrama_classe.png -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/pagamento/Autorizavel.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.pagamento; 2 | 3 | public interface Autorizavel { 4 | 5 | public double getValorTotal(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Aulas/Metodos com retorno/IMC.java: -------------------------------------------------------------------------------- 1 | 2 | public class IMC { 3 | 4 | double indice; 5 | boolean abaixoDoPesoIdeal; 6 | boolean pesoIdeal; 7 | boolean obeso; 8 | String grauObesidade; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Exercicios/Codificando um primeiro programa/OlaGalera.java: -------------------------------------------------------------------------------- 1 | public class OlaGalera { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("Ola galera do curso de Java."); 5 | } 6 | 7 | } -------------------------------------------------------------------------------- /Aulas/Variaveis referenciam objetos/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | 9 | Proprietario dono; 10 | } 11 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/impressao/Impressora.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.impressao; 2 | 3 | public interface Impressora { 4 | 5 | public void imprimir(Imprimivel imprimivel); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Aulas/Valores padrao/Proprietario.java: -------------------------------------------------------------------------------- 1 | 2 | public class Proprietario { 3 | 4 | String nome; 5 | String cpf; 6 | int idade; 7 | String logradouro; 8 | String bairro; 9 | String cidade; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Exercicios/Arrays/Produto.java: -------------------------------------------------------------------------------- 1 | class Produto { 2 | 3 | String descricao; 4 | int quantidade; 5 | 6 | void descrever() { 7 | System.out.println(descricao + " - " + quantidade + " itens"); 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /Exercicios/Composicao de objetos e chamada de metodos/Passeio.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Exercicios/Composicao de objetos e chamada de metodos/Passeio.java -------------------------------------------------------------------------------- /Aulas/Classes String, StringBuffer e StringBuilder/TesteStrings.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Classes String, StringBuffer e StringBuilder/TesteStrings.java -------------------------------------------------------------------------------- /Aulas/Composicao de objetos/Proprietario.java: -------------------------------------------------------------------------------- 1 | 2 | public class Proprietario { 3 | 4 | String nome; 5 | String cpf; 6 | int idade; 7 | String logradouro; 8 | String bairro; 9 | String cidade; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/lib/mysql-connector-java-5.1.27-bin.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/JDBC/cadastro-cliente/lib/mysql-connector-java-5.1.27-bin.jar -------------------------------------------------------------------------------- /Exercicios/Instanciando e acessando atributos do objeto/PetShop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Exercicios/Instanciando e acessando atributos do objeto/PetShop.java -------------------------------------------------------------------------------- /Aulas/Instanciando objetos/Principal.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal { 3 | 4 | public static void main(String[] args) { 5 | Carro meuCarro = new Carro(); 6 | Carro seuCarro = new Carro(); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Variaveis referenciam objetos/Proprietario.java: -------------------------------------------------------------------------------- 1 | 2 | public class Proprietario { 3 | 4 | String nome; 5 | String cpf; 6 | int idade; 7 | String logradouro; 8 | String bairro; 9 | String cidade; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Criando, nomeando e chamando metodos/Proprietario.java: -------------------------------------------------------------------------------- 1 | 2 | public class Proprietario { 3 | 4 | String nome; 5 | String cpf; 6 | int idade; 7 | String logradouro; 8 | String bairro; 9 | String cidade; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/pagamento/Operadora.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.pagamento; 2 | 3 | public interface Operadora { 4 | 5 | public boolean autorizar(Autorizavel autorizavel, Cartao cartao); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /Aulas/Polimorfismo, instanceof e casting de objetos/TestePolimorfismo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Polimorfismo, instanceof e casting de objetos/TestePolimorfismo.java -------------------------------------------------------------------------------- /Desafios/Excecoes/OperacaoContaException.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro; 2 | 3 | public class OperacaoContaException extends Exception { 4 | 5 | public OperacaoContaException(String msg) { 6 | super(msg); 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/impressao/Imprimivel.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.impressao; 2 | 3 | public interface Imprimivel { 4 | 5 | public String getCabecalhoPagina(); 6 | public String getCorpoPagina(); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Aulas/Operadores de comparacao e igualdade/OperadoresDeComparacaoEIgualdade.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Operadores de comparacao e igualdade/OperadoresDeComparacaoEIgualdade.java -------------------------------------------------------------------------------- /Aulas/Wrappers do java.lang/Principal6.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal6 { 3 | 4 | public static void main(String[] args) { 5 | int x = 10; 6 | Integer i = new Integer(10); 7 | byte b = i.byteValue(); 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Promocao aritmetica/PromocaoAritmetica.java: -------------------------------------------------------------------------------- 1 | public class PromocaoAritmetica { 2 | 3 | public static void main(String[] args) { 4 | int x = 3; 5 | int y = 2; 6 | float z = x / (float) y; 7 | System.out.println(z); 8 | } 9 | 10 | } -------------------------------------------------------------------------------- /Aulas/Encapsulamento e modificadores de acesso public e private/TesteEncapsulamento.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Aulas/Encapsulamento e modificadores de acesso public e private/TesteEncapsulamento.java -------------------------------------------------------------------------------- /Aulas/Interfaces funcionais/com/algaworks/impressao/Impressora.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.impressao; 2 | 3 | import com.algaworks.compra.Compra; 4 | 5 | @FunctionalInterface 6 | public interface Impressora { 7 | 8 | public void imprimir(Compra c); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Desafios/Objeto this, construtores e JavaBeans/Fornecedor.java: -------------------------------------------------------------------------------- 1 | public class Fornecedor { 2 | 3 | public String nome; 4 | 5 | public String getNome() { 6 | return this.nome; 7 | } 8 | public void setNome(String nome) { 9 | this.nome = nome; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/dao/DAOException.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.dao; 2 | 3 | public class DAOException extends RuntimeException { 4 | 5 | public DAOException(String msg, Throwable t) { 6 | super(msg, t); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Enumeracoes/TesteEnum.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.enums; 2 | 3 | public class TesteEnum { 4 | 5 | public static void main(String[] args) { 6 | Carta quatroPaus = new Carta(4, Naipe.PAUS); 7 | 8 | quatroPaus.imprimirCarta(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploClasseString9.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploClasseString9 { 3 | 4 | public static void main(String[] args) { 5 | String s = "Desenvolvimento Java"; 6 | System.out.println(s.replaceAll("Java", "de software")); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Exercicios/Strings, entrada de dados, operadores de comparacao e if else/DescobreAnoBissexto.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/curso-fundamentos-java-e-orientacao-a-objetos/HEAD/Exercicios/Strings, entrada de dados, operadores de comparacao e if else/DescobreAnoBissexto.java -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploClasseString4.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploClasseString4 { 3 | 4 | public static void main(String[] args) { 5 | char[] array = {'O', 'L', 'A'}; 6 | 7 | String s = new String(array); 8 | System.out.println(s); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Valores padrao/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante = "Sem fabricante"; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao = 2011; 8 | boolean biCombustivel = true; 9 | 10 | Proprietario dono = new Proprietario(); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Aulas/Classes abstratas/Produto.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.abstrata; 2 | 3 | public abstract class Produto { 4 | 5 | String descricao; 6 | 7 | public abstract void imprimirDescricao(); 8 | 9 | public String getDescricao() { 10 | return descricao; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Aulas/Introducao a Generics/generics/src/com/algaworks/RetiraElementos.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.List; 4 | 5 | public class RetiraElementos { 6 | 7 | public static T recuperaPrimeiro(List lista) { 8 | return lista.get(0); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploString6.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploString6 { 3 | 4 | public static void main(String[] args) { 5 | String s = " Algaworks "; 6 | System.out.println(">" + s + "<"); 7 | System.out.println(">" + s.trim() + "<"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com strings/TrabalhandoComStrings.java: -------------------------------------------------------------------------------- 1 | public class TrabalhandoComStrings { 2 | 3 | public static void main(String[] args) { 4 | String nome = "Maria"; 5 | int idade = 30; 6 | 7 | System.out.println(nome + " tem " + idade + " anos "); 8 | 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /Aulas/Tratando e lancando excecoes/SaldoInsuficienteException.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.excecoes; 2 | 3 | public class SaldoInsuficienteException extends Exception { 4 | 5 | public SaldoInsuficienteException(String mensagem) { 6 | super(mensagem); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Conversao de tipos primitivos/ConversaoTipoPrimitivo.java: -------------------------------------------------------------------------------- 1 | public class ConversaoTipoPrimitivo { 2 | 3 | public static void main(String[] args) { 4 | double largura = 100.37; 5 | 6 | int tamanho = (int) largura; 7 | 8 | System.out.println(tamanho); 9 | } 10 | 11 | 12 | } -------------------------------------------------------------------------------- /Exercicios/Composicao de objetos e chamada de metodos/Caminhada.java: -------------------------------------------------------------------------------- 1 | 2 | public class Caminhada { 3 | 4 | public void andar(Pessoa pessoa) { 5 | System.out.println("Eu \"" + pessoa.nome + "\"" 6 | + " estou andando com o \"" + pessoa.cachorro.nome + "\""); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Polimorfismo, instanceof e casting de objetos/ContaCorrente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.polimorfismo; 2 | 3 | public class ContaCorrente extends Conta { 4 | 5 | private double limite = 1000; 6 | 7 | public double getLimite() { 8 | return limite; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Desafios/Excecoes/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Pessoa { 4 | 5 | public String nome; 6 | 7 | public String getNome() { 8 | return this.nome; 9 | } 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploClasseString3.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploClasseString3 { 3 | 4 | public static void main(String[] args) { 5 | String s = "Cursos online"; 6 | 7 | System.out.println(s.length()); 8 | 9 | System.out.println(s.charAt(12)); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Aulas/Modificador de acesso default/DonoCachorro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.treinador; 2 | 3 | import com.algaworks.curso.fjoo.animal.Cachorro; 4 | 5 | public class DonoCachorro { 6 | 7 | void ensinarCachorroSentar(Cachorro cachorro) { 8 | cachorro.sentar(); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Criando, nomeando e chamando metodos/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | 9 | Proprietario dono; 10 | 11 | void ligar() { 12 | System.out.println("Ligando o carro: " + modelo); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Aulas/Introducao a lambda/com/algaworks/util/EnviadorEmail.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.util; 2 | 3 | public class EnviadorEmail { 4 | 5 | public void enviar(String email, String texto) { 6 | System.out.println("Enviando e-mail para: " + email + ". Com texto: \"" + texto + "\""); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Aulas/Polimorfismo, instanceof e casting de objetos/ContaPoupanca.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.polimorfismo; 2 | 3 | public class ContaPoupanca extends Conta { 4 | 5 | private double rendimentos = 30; 6 | 7 | public double getRendimentos() { 8 | return rendimentos; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Heranca e modificador protected/Jogador.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.heranca; 2 | 3 | public class Jogador extends Pessoa { 4 | 5 | protected boolean aindaJoga = false; 6 | 7 | public void dizerSeAindaJoga() { 8 | System.out.println("Ainda joga? " + aindaJoga); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Pessoa { 4 | 5 | public String nome; 6 | 7 | public String getNome() { 8 | return this.nome; 9 | } 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Desafios/Pacotes e enumeracoes/Fornecedor.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Fornecedor { 4 | 5 | public String nome; 6 | 7 | public String getNome() { 8 | return this.nome; 9 | } 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Aulas/Introducao a expressoes regulares/ReplaceString.java: -------------------------------------------------------------------------------- 1 | 2 | public class ReplaceString { 3 | 4 | public static void main(String[] args) { 5 | String texto = "O valor do produto é R$ @x@."; 6 | 7 | String novoTexto = texto.replaceAll("@x+@", "2,50"); 8 | System.out.println(novoTexto); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Aulas/Organizando o projeto em pacotes/Cachorro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.animal; 2 | 3 | public class Cachorro { 4 | 5 | private String nome; 6 | 7 | public String getNome() { 8 | return nome; 9 | } 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public abstract class Pessoa { 4 | 5 | public String nome; 6 | 7 | public String getNome() { 8 | return this.nome; 9 | } 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Aulas/Logging/com/algaworks/model/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | public class Cliente { 4 | 5 | private String nome; 6 | 7 | public Cliente(String nome) { 8 | this.nome = nome; 9 | } 10 | 11 | @Override 12 | public String toString() { 13 | return "Cliente [nome=" + nome + "]"; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Aulas/Polimorfismo, instanceof e casting de objetos/Conta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.polimorfismo; 2 | 3 | public class Conta { 4 | 5 | protected double saldo; 6 | 7 | public double getSaldo() { 8 | return saldo; 9 | } 10 | public void setSaldo(double saldo) { 11 | this.saldo = saldo; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Aulas/varargs/CorreioEletronico.java: -------------------------------------------------------------------------------- 1 | 2 | public class CorreioEletronico { 3 | 4 | public void enviarEmails(String... emails) { 5 | 6 | // Percorrer todos os emails recebidos 7 | for (String email : emails) { 8 | // envia e-mail 9 | System.out.println("E-mail enviado para " + email); 10 | } 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Exercicios/Arrays/Estoque.java: -------------------------------------------------------------------------------- 1 | class Estoque { 2 | 3 | Produto[] produtos; 4 | 5 | void listarProdutos() { 6 | System.out.println("\nProdutos em estoque"); 7 | System.out.println("------------------------"); 8 | 9 | for (int i = 0; i < produtos.length; i++) { 10 | produtos[i].descrever(); 11 | } 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Aulas/Boxing/Principal6.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal6 { 3 | 4 | public static void main(String[] args) { 5 | Integer i1 = 127; 6 | Integer i2 = 127; 7 | 8 | Integer i3 = 128; 9 | Integer i4 = 128; 10 | 11 | System.out.println(i1.equals(i2)); 12 | System.out.println(i3.equals(i4)); 13 | 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/Criando javabeans/TesteJavaBean.java: -------------------------------------------------------------------------------- 1 | 2 | public class TesteJavaBean { 3 | 4 | public static void main(String[] args) { 5 | PessoaBean pessoa = new PessoaBean(); 6 | pessoa.setNome("Maria"); 7 | pessoa.setIdade(27); 8 | 9 | System.out.println(pessoa.getNome() + " tem " + pessoa.getIdade() + " anos."); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploClasseString8.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploClasseString8 { 3 | 4 | public static void main(String[] args) { 5 | String s = "Java"; 6 | int indice = s.indexOf('a'); 7 | 8 | System.out.println(indice); 9 | 10 | indice = s.lastIndexOf('a'); 11 | System.out.println(indice); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Aulas/Organizando o projeto em pacotes/TreinadorCachorro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.treinador; 2 | 3 | import com.algaworks.curso.fjoo.animal.Cachorro; 4 | 5 | public class TreinadorCachorro { 6 | 7 | public static void main(String[] args) { 8 | Cachorro cachorro = new Cachorro(); 9 | cachorro.setNome("Bob"); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Aulas/Heranca e modificador protected/TesteHeranca.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.heranca; 2 | 3 | public class TesteHeranca { 4 | 5 | public static void main(String[] args) { 6 | Jogador j = new Jogador(); 7 | j.nome = "Ronaldo"; 8 | j.idade = 33; 9 | 10 | j.seApresentar(); 11 | j.dizerSeAindaJoga(); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/Operadores de incremento e decremento/IncrementoDecremento.java: -------------------------------------------------------------------------------- 1 | public class IncrementoDecremento { 2 | 3 | public static void main(String[] args) { 4 | int idade = 10; 5 | 6 | int novaIdade = --idade; 7 | 8 | System.out.println("Idade: " + idade); 9 | System.out.println("Nova idade: " + novaIdade); 10 | 11 | 12 | } 13 | 14 | 15 | } -------------------------------------------------------------------------------- /Aulas/Metodos com retorno/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | boolean biCombustivel; 9 | 10 | Proprietario dono; 11 | 12 | void ligar() { 13 | if (modelo != null) { 14 | System.out.println("Ligando o carro: " + modelo); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com arrays/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | boolean biCombustivel; 9 | 10 | Proprietario dono; 11 | 12 | void ligar() { 13 | if (modelo != null) { 14 | System.out.println("Ligando o carro: " + modelo); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com arrays/TesteArrayComCarro.java: -------------------------------------------------------------------------------- 1 | 2 | public class TesteArrayComCarro { 3 | 4 | public static void main(String[] args) { 5 | Carro[] carros = new Carro[4]; 6 | 7 | carros[0] = new Carro(); 8 | carros[0].anoDeFabricacao = 2011; 9 | 10 | System.out.println("Ano fabricacao: " + carros[0].anoDeFabricacao); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com variaveis/Variavel1.java: -------------------------------------------------------------------------------- 1 | public class Variavel1 { 2 | 3 | public static void main(String[] args) { 4 | int quantidade; // Declarando variavel inteiro 5 | quantidade = 10; // atribuindo o valor 10 6 | 7 | System.out.println(quantidade); 8 | 9 | quantidade = 15; 10 | 11 | System.out.println(quantidade); 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Aulas/Criando, nomeando e chamando metodos/Principal2.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal2 { 3 | 4 | public static void main(String[] args) { 5 | Carro meuCarro = new Carro(); 6 | meuCarro.modelo = "Palio"; 7 | 8 | Carro seuCarro = new Carro(); 9 | seuCarro.modelo = "Civic"; 10 | 11 | meuCarro.ligar(); 12 | seuCarro.ligar(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/Enumeracoes/Naipe.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.enums; 2 | 3 | public enum Naipe { 4 | 5 | OURO("Vermelho"), 6 | PAUS("Preto"), 7 | ESPADA("Preto"), 8 | COPAS("Vermelho"); 9 | 10 | Naipe(String cor) { 11 | this.cor = cor; 12 | } 13 | 14 | private String cor; 15 | 16 | public String getCor() { 17 | return cor; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/Introducao a expressoes regulares/SplitString.java: -------------------------------------------------------------------------------- 1 | 2 | public class SplitString { 3 | 4 | public static void main(String[] args) { 5 | String texto = "O42Java11é33uma9linguagem9orientada1a8objetos."; 6 | 7 | String[] palavras = texto.split("\\d+"); 8 | for (String palavra : palavras) { 9 | System.out.println(palavra); 10 | } 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemplosClasseString2.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemplosClasseString2 { 3 | 4 | public static void main(String[] args) { 5 | String s = "ALGAWORKS"; 6 | 7 | System.out.println(s.charAt(0)); 8 | System.out.println(s.charAt(2)); 9 | System.out.println(s.charAt(8)); 10 | 11 | System.out.println(s.charAt(9)); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/dao/DAOFactory.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.dao; 2 | 3 | import com.algaworks.curso.dao.jdbc.JdbcDAOFactory; 4 | 5 | public abstract class DAOFactory { 6 | 7 | public static DAOFactory getDAOFactory() { 8 | return new JdbcDAOFactory(); 9 | } 10 | 11 | public abstract ClienteDAO getClienteDAO(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/Javadoc/com/algaworks/curso/Teste.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import com.algaworks.curso.modelo.Funcionario; 4 | 5 | public class Teste { 6 | 7 | public static void main(String[] args) { 8 | Funcionario funcionario = new Funcionario("João Silva", 3000); 9 | 10 | System.out.println(funcionario.adiatamentoViagem(5, true)); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/Enumeracoes/OperacaoAritmetica.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.enums; 2 | 3 | public enum OperacaoAritmetica { 4 | 5 | ADICAO { 6 | public int operacao(int x, int y) { 7 | return x + y; 8 | } 9 | }, 10 | SUBTRACAO { 11 | public int operacao(int x, int y) { 12 | return x - y; 13 | } 14 | }; 15 | 16 | public abstract int operacao(int x, int y); 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploClasseString7.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploClasseString7 { 3 | 4 | public static void main(String[] args) { 5 | String s = "Cursos_online_de_desenvolvimento_de_software"; 6 | 7 | String[] array = s.split("_"); 8 | for (int i = 0; i < array.length; i++) { 9 | System.out.println("[" + i + "]=" + array[i]); 10 | } 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/dao/ClienteDAO.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.dao; 2 | 3 | import java.util.List; 4 | 5 | import com.algaworks.curso.modelo.Cliente; 6 | 7 | public interface ClienteDAO { 8 | 9 | public void salvar(Cliente cliente); 10 | 11 | public Cliente buscarPeloCodigo(Long codigo); 12 | 13 | public List buscarTodos(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/O objeto this/ExemploThis.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploThis { 3 | 4 | public static void main(String[] args) { 5 | Carro carro = new Carro(); 6 | carro.modelo = "Palio"; 7 | 8 | System.out.println("Modelo antes: " + carro.modelo); 9 | 10 | carro.alterarModelo("Civic"); 11 | 12 | System.out.println("Modelo depois: " + carro.modelo); 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Aulas/try-with-resources-e-multicast/SalvarAluno.java: -------------------------------------------------------------------------------- 1 | 2 | public class SalvarAluno { 3 | 4 | public static void salvar(String nome, String idade) { 5 | if (nome == null || nome.trim().equals("")) { 6 | throw new NegocioException("Impossível salvar aluno sem nome!"); 7 | } 8 | 9 | int i = Integer.parseInt(idade); 10 | System.out.println("Salvando..."); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/varargs/TesteCorreioEletronico.java: -------------------------------------------------------------------------------- 1 | 2 | public class TesteCorreioEletronico { 3 | 4 | public static void main(String[] args) { 5 | CorreioEletronico correio = new CorreioEletronico(); 6 | 7 | // correio.enviarEmails(new String[] {"joao@joao.com", "maria@maria.com"}); 8 | 9 | correio.enviarEmails("joao@joao.com", "maria@maria.com", "pedro@pedro.com"); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Aulas/Introducao a Generics/generics/src/com/algaworks/Funcionario.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | public class Funcionario { 4 | 5 | private String nome; 6 | 7 | public Funcionario(String nome) { 8 | this.nome = nome; 9 | } 10 | 11 | public String getNome() { 12 | return nome; 13 | } 14 | 15 | public void setNome(String nome) { 16 | this.nome = nome; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Aulas/Testes de unidade com JUnit/src/main/java/com/algaworks/Fibonacci.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | public class Fibonacci { 4 | 5 | // F(n) = F(n - 1) + F(n - 2) 6 | // 0, 1, 1, 2, 3, 5, 8, ... 7 | public long calcular(long posicao) { 8 | if (posicao <= 1) { 9 | return posicao; 10 | } 11 | 12 | return calcular(posicao - 1) + calcular(posicao - 2); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/Introducao a Generics/generics/src/com/algaworks/Gaveta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class Gaveta { 7 | 8 | private List colecao = new ArrayList<>(); 9 | 10 | public void colocar(E e) { 11 | colecao.add(e); 12 | } 13 | 14 | public E retirarPrimeiro() { 15 | return colecao.get(0); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Modificador de acesso default/Cachorro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.animal; 2 | 3 | public class Cachorro { 4 | 5 | private String nome; 6 | 7 | public String getNome() { 8 | return nome; 9 | } 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | public void sentar() { 15 | System.out.println("Eu, " + nome + ", vou sentar!"); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Encapsulamento e modificadores de acesso public e private/ArCondicionado.java: -------------------------------------------------------------------------------- 1 | 2 | public class ArCondicionado { 3 | 4 | private int temperatura; 5 | 6 | public void trocarTemperatura(int temperatura) { 7 | if (temperatura >= 17 && temperatura <= 25) { 8 | this.temperatura = temperatura; 9 | } 10 | } 11 | 12 | public int obterTemperatura() { 13 | return temperatura; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Aulas/Javadoc/com/algaworks/curso/modelo/Viagem.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | import java.util.Date; 4 | 5 | /** 6 | * 7 | * Representa a viagem de um funcionários. 8 | * 9 | * @author Normandes Junior 10 | * 11 | */ 12 | public class Viagem { 13 | 14 | private Date dataInicio; 15 | private Date dataFim; 16 | private Funcionario funcionario; 17 | 18 | // ... 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Exercicios/Interfaces e polimorfismo/Principal.java: -------------------------------------------------------------------------------- 1 | public class Principal { 2 | 3 | public static void main(String[] args) { 4 | CorretoraSeguros corretora = new CorretoraSeguros(); 5 | 6 | Carro meuCarro = new Carro(45000d, 2012); 7 | Imovel minhaCasa = new Imovel(920000, 320); 8 | 9 | corretora.fazerPropostaSeguro(meuCarro); 10 | corretora.fazerPropostaSeguro(minhaCasa); 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /Aulas/Classes abstratas/TesteClasseAbstrata.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.abstrata; 2 | 3 | public class TesteClasseAbstrata { 4 | 5 | public static void main(String[] args) { 6 | Produto p = new ProdutoPerecivel(); 7 | p.descricao = "Caixa de Leite"; 8 | 9 | ProdutoPerecivel pp = (ProdutoPerecivel) p; 10 | pp.dataValidade = "10/03/12"; 11 | 12 | p.imprimirDescricao(); 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Desafios/Collections/Politico.java: -------------------------------------------------------------------------------- 1 | public class Politico { 2 | 3 | private String nome; 4 | private Cargo cargo; 5 | 6 | public String getNome() { 7 | return this.nome; 8 | } 9 | 10 | public void setNome(String nome) { 11 | this.nome = nome; 12 | } 13 | 14 | public Cargo getCargo() { 15 | return this.cargo; 16 | } 17 | 18 | public void setCargo(Cargo cargo) { 19 | this.cargo = cargo; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /Desafios/Static e final/TesteMatematica.java: -------------------------------------------------------------------------------- 1 | public class TesteMatematica { 2 | 3 | public static void main(String[] args) { 4 | int numeroFibonacci = MatematicaUtil.calcularFibonacci(8); 5 | System.out.println("Número de Fibonacci da posição 8: " + numeroFibonacci); 6 | 7 | double areaCirculo = MatematicaUtil.calcularAreaCirculo(104.8); 8 | System.out.println("Área do círculo: " + areaCirculo); 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /Aulas/Interfaces funcionais/com/algaworks/impressao/impressoras/ImpressoraHP.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.impressao.impressoras; 2 | 3 | import com.algaworks.compra.Compra; 4 | import com.algaworks.impressao.Impressora; 5 | 6 | public class ImpressoraHP implements Impressora { 7 | 8 | @Override 9 | public void imprimir(Compra c) { 10 | System.out.println("Enviando o comando para a impressora HP -> " + c); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/JOptionPane/ExemploJOptionPane1.java: -------------------------------------------------------------------------------- 1 | import javax.swing.JOptionPane; 2 | import javax.swing.UIManager; 3 | 4 | 5 | public class ExemploJOptionPane1 { 6 | 7 | public static void main(String[] args) throws Exception { 8 | UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 9 | 10 | JOptionPane.showMessageDialog(null, "Seu cadastro foi realizado com sucesso!"); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Aulas/Enumeracoes/Carta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.enums; 2 | 3 | public class Carta { 4 | 5 | private int numero; 6 | private Naipe naipe; 7 | 8 | public Carta(int numero, Naipe naipe) { 9 | this.numero = numero; 10 | this.naipe = naipe; 11 | } 12 | 13 | public void imprimirCarta() { 14 | System.out.println("Sou " + numero + " de " + naipe 15 | + ". E tenho a cor " + naipe.getCor()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/Interfaces funcionais/com/algaworks/compra/Compra.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.compra; 2 | 3 | public class Compra { 4 | 5 | private String produto; 6 | private double valor; 7 | 8 | public Compra(String produto, double valor) { 9 | this.produto = produto; 10 | this.valor = valor; 11 | } 12 | 13 | @Override 14 | public String toString() { 15 | return "Produto: " + produto + ". Valor R$ " + valor; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Ordenando objetos/com/algaworks/IdadeComparator.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.Comparator; 4 | 5 | public class IdadeComparator implements Comparator { 6 | 7 | @Override 8 | public int compare(Pessoa p1, Pessoa p2) { 9 | if (p1.getIdade() < p2.getIdade()) { 10 | return -1; 11 | } else if (p1.getIdade() > p2.getIdade()) { 12 | return 1; 13 | } 14 | 15 | return 0; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Argumentos por valor ou referencia/Produto.java: -------------------------------------------------------------------------------- 1 | 2 | public class Produto { 3 | 4 | void definirPreco(Preco preco, double percentualImpostos, 5 | double margemLucro) { 6 | preco.valorImpostos = preco.valorCustos 7 | * (percentualImpostos / 100); 8 | preco.valorLucro = preco.valorCustos * (margemLucro / 100); 9 | preco.precoVenda = preco.valorCustos 10 | + preco.valorImpostos + preco.valorLucro; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Aulas/Modificador de acesso default/TreinadorCachorro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.treinador; 2 | 3 | import com.algaworks.curso.fjoo.animal.Cachorro; 4 | 5 | public class TreinadorCachorro { 6 | 7 | public static void main(String[] args) { 8 | Cachorro cachorro = new Cachorro(); 9 | cachorro.setNome("Bob"); 10 | 11 | DonoCachorro dono = new DonoCachorro(); 12 | dono.ensinarCachorroSentar(cachorro); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/Modificador static e final/TesteContador.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.modificadorstatic; 2 | 3 | public class TesteContador { 4 | 5 | public static void main(String[] args) { 6 | Contador c = new Contador(); 7 | c.incrementar(); 8 | // System.out.println(Contador.COUNT); 9 | 10 | Contador.COUNT++; 11 | // System.out.println(Contador.COUNT); 12 | 13 | Contador.imprimirContador(); 14 | } 15 | 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Curso online - Fundamentos Java e Orientação a Objetos 2 | 3 | Este repositório é usado para armazenar e controlar os códigos-fonte dos exemplos e resoluções de exercícios 4 | do curso online de **Fundamentos Java e Orientação a Objetos** da [AlgaWorks](http://www.algaworks.com). 5 | 6 | Para assistir as aulas completas que explicam esses exemplos/exercícios, 7 | acesse: 8 | http://www.algaworks.com/cursos-online/fundamentos-java-e-orientacao-a-objetos -------------------------------------------------------------------------------- /Aulas/Composicao de objetos/Principal2.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal2 { 3 | 4 | public static void main(String[] args) { 5 | Carro meuCarro = new Carro(); 6 | meuCarro.anoDeFabricacao = 2011; 7 | meuCarro.cor = "Prata"; 8 | meuCarro.fabricante = "Fiat"; 9 | meuCarro.modelo = "Palio"; 10 | 11 | meuCarro.dono = new Proprietario(); 12 | meuCarro.dono.nome = "Joao da Silva"; 13 | meuCarro.dono.bairro = "Centro"; 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/Criando javabeans/PessoaBean.java: -------------------------------------------------------------------------------- 1 | 2 | public class PessoaBean { 3 | 4 | private String nome; 5 | private int idade; 6 | 7 | public PessoaBean() { 8 | 9 | } 10 | 11 | public String getNome() { 12 | return nome; 13 | } 14 | public void setNome(String nome) { 15 | this.nome = nome; 16 | } 17 | 18 | public int getIdade() { 19 | return idade; 20 | } 21 | public void setIdade(int idade) { 22 | this.idade = idade; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Aulas/Interfaces/TesteInterface.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.interfaces; 2 | 3 | public class TesteInterface { 4 | 5 | public static void main(String[] args) { 6 | 7 | Imprimivel i = new NotaFiscal(1234); 8 | i.imprimir(); 9 | 10 | EnviavelPorEmail e = (EnviavelPorEmail) i; 11 | e.enviar("normandes.junior@algaworks.com"); 12 | 13 | NotaFiscal n = (NotaFiscal) e; 14 | n.adicionarPedido("caixa de leite"); 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Equals e HashCode/SimuladorBancoDeDados.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.collections; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class SimuladorBancoDeDados { 7 | 8 | public static Set buscarAlunos() { 9 | Set alunos = new HashSet(); 10 | alunos.add(new Aluno("Ricardo")); 11 | alunos.add(new Aluno("Thiago")); 12 | alunos.add(new Aluno("Maria")); 13 | 14 | return alunos; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/O objeto this/Carro.java: -------------------------------------------------------------------------------- 1 | 2 | public class Carro { 3 | 4 | String fabricante; 5 | String modelo; 6 | String cor; 7 | int anoDeFabricacao; 8 | boolean biCombustivel; 9 | 10 | Proprietario dono; 11 | 12 | void alterarModelo(String modelo) { 13 | if (modelo != null) { 14 | this.modelo = modelo; 15 | } 16 | } 17 | 18 | void ligar() { 19 | if (modelo != null) { 20 | System.out.println("Ligando o carro: " + modelo); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Exercicios/Sobrecarga/TesteMaquinaCafe.java: -------------------------------------------------------------------------------- 1 | class TesteMaquinaCafe { 2 | 3 | public static void main(String[] args) { 4 | MaquinaCafe maquina = new MaquinaCafe(); 5 | maquina.acucarDisponivel = 30; 6 | 7 | maquina.fazerCafe(10); 8 | maquina.fazerCafe(15); 9 | 10 | // faz cafe com a quantidade de açúcar padrão 11 | // não será possível fazer esse cafezinho, pois a máquina 12 | // só tinha 30gr de açúcar disponível 13 | maquina.fazerCafe(); 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /Aulas/Estrutura de controle for/EstruturaFor.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class EstruturaFor { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Ultimo numero: "); 9 | int numeroFinal = entrada.nextInt(); 10 | 11 | // for (iniciacao; condicao; incremento) 12 | for (int i = 1; i <= numeroFinal; i++) { 13 | System.out.println(i); 14 | } 15 | 16 | 17 | 18 | } 19 | 20 | 21 | } -------------------------------------------------------------------------------- /Aulas/Introducao a Generics/generics/src/com/algaworks/TesteRetiraElementos.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class TesteRetiraElementos { 7 | 8 | public static void main(String[] args) { 9 | List nomes = new ArrayList<>(); 10 | nomes.add(new Funcionario("Ricardo")); 11 | 12 | Funcionario f = RetiraElementos.recuperaPrimeiro(nomes); 13 | System.out.println(f.getNome()); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Aulas/Operadores aritmeticos/OperadorAritmetico1.java: -------------------------------------------------------------------------------- 1 | public class OperadorAritmetico1 { 2 | 3 | public static void main(String[] args) { 4 | int notaAluno1 = 99; 5 | int notaAluno2 = 80; 6 | int notaAluno3 = 53; 7 | 8 | int totalGeral = notaAluno1 + notaAluno2 + notaAluno3; 9 | System.out.println("Total geral: " + totalGeral); 10 | 11 | int mediaGeral = (notaAluno1 + notaAluno2 + notaAluno3) / 3; 12 | System.out.println("Media geral: " + mediaGeral); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /Aulas/Outros operadores de atribuicao/Operador2.java: -------------------------------------------------------------------------------- 1 | public class Operador2 { 2 | 3 | public static void main(String[] args) { 4 | int total = 10; 5 | total += 3; 6 | System.out.println(total); // imprime 13 7 | total -= 2; 8 | System.out.println(total); //imprime 11 9 | total *= 3; 10 | System.out.println(total); //imprime 33 11 | total /= 3; 12 | System.out.println(total); // imprime 11 13 | total %= 5; 14 | System.out.println(total); // imprime 1 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/modelo/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | public class Cliente { 4 | 5 | private Long codigo; 6 | private String nome; 7 | 8 | public Long getCodigo() { 9 | return codigo; 10 | } 11 | public void setCodigo(Long codigo) { 12 | this.codigo = codigo; 13 | } 14 | 15 | public String getNome() { 16 | return nome; 17 | } 18 | public void setNome(String nome) { 19 | this.nome = nome; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Passando argumentos para metodos/FolhaPagamento.java: -------------------------------------------------------------------------------- 1 | 2 | public class FolhaPagamento { 3 | 4 | // double calcularSalario(int, int, double, double) 5 | double calcularSalario(int horasNormais, int horasExtras 6 | , double valorHoraNormal, double valorHoraExtra) { 7 | 8 | double valorHorasNormais = horasNormais * valorHoraNormal; 9 | double valorHorasExtras = horasExtras * valorHoraExtra; 10 | 11 | return valorHorasNormais + valorHorasExtras; 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Exercicios/Sobrecarga/MaquinaCafe.java: -------------------------------------------------------------------------------- 1 | class MaquinaCafe { 2 | 3 | int acucarDisponivel; 4 | 5 | void fazerCafe() { 6 | fazerCafe(10); 7 | } 8 | 9 | void fazerCafe(int quantidadeAcucar) { 10 | if (acucarDisponivel < quantidadeAcucar) { 11 | System.out.println("Não há açucar suficiente para fazer seu café."); 12 | } else { 13 | acucarDisponivel -= quantidadeAcucar; 14 | System.out.println("Fazendo cafezinho com " + quantidadeAcucar + " gramas de açucar."); 15 | } 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /Aulas/Introducao a Generics/generics/src/com/algaworks/TesteGaveta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | public class TesteGaveta { 4 | 5 | public static void main(String[] args) { 6 | Gaveta gaveta = new Gaveta<>(); 7 | 8 | gaveta.colocar("Livro de Java"); 9 | 10 | System.out.println(gaveta.retirarPrimeiro()); 11 | 12 | Gaveta gavetaNumeros = new Gaveta<>(); 13 | gavetaNumeros.colocar(4); 14 | 15 | System.out.println(gavetaNumeros.retirarPrimeiro() + 2); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Aulas/Clausulas break e continue/ExemploBreak.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class ExemploBreak { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Digite um numero: "); 9 | int divisor = entrada.nextInt(); 10 | 11 | for (int i = 100; i <= 200; i++) { 12 | if (i % divisor == 0) { 13 | break; 14 | } 15 | 16 | System.out.println(i); 17 | } 18 | 19 | System.out.println("Fim do programa"); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /Desafios/Collections/Cargo.java: -------------------------------------------------------------------------------- 1 | import java.math.BigDecimal; 2 | 3 | public class Cargo { 4 | 5 | private String descricao; 6 | private BigDecimal salario; 7 | 8 | public String getDescricao() { 9 | return this.descricao; 10 | } 11 | 12 | public void setDescricao(String descricao) { 13 | this.descricao = descricao; 14 | } 15 | 16 | public BigDecimal getSalario() { 17 | return this.salario; 18 | } 19 | 20 | public void setSalario(BigDecimal salario) { 21 | this.salario = salario; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /Aulas/Collections framework/Aluno.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.collections; 2 | 3 | public class Aluno { 4 | 5 | private String nome; 6 | private int idade; 7 | 8 | public Aluno(String nome) { 9 | this.nome = nome; 10 | } 11 | 12 | public String getNome() { 13 | return nome; 14 | } 15 | public void setNome(String nome) { 16 | this.nome = nome; 17 | } 18 | 19 | public int getIdade() { 20 | return idade; 21 | } 22 | public void setIdade(int idade) { 23 | this.idade = idade; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Aulas/Depurando codigos com o eclipse/TesteDebug.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class TesteDebug { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Digite um numero: "); 9 | int divisor = entrada.nextInt(); 10 | 11 | for (int i = 100; i <= 120; i++) { 12 | if (i % divisor == 0) { 13 | continue; 14 | } 15 | System.out.println(i); 16 | } 17 | 18 | System.out.println("Fim do programa"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemploClasseString5.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploClasseString5 { 3 | 4 | public static void main(String[] args) { 5 | // public String substring(int beginIndex) 6 | // public String substring(int beginIndex, int endIndex) 7 | 8 | String s = "Desenvolvimento Java"; 9 | System.out.println(s.substring(16)); 10 | System.out.println(s); 11 | 12 | String s2 = "Cursos online de desenvolvimento de software"; 13 | System.out.println(s2.substring(7, 12)); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/Clausulas break e continue/ExemploContinue.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class ExemploContinue { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Digite um numero: "); 9 | int divisor = entrada.nextInt(); 10 | 11 | for (int i = 100; i <= 120; i++) { 12 | if (i % divisor == 0) { 13 | continue; 14 | } 15 | 16 | System.out.println(i); 17 | } 18 | 19 | System.out.println("Fim do programa"); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /Aulas/Logging/com/algaworks/ConfiguracaoBasica.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import org.apache.log4j.BasicConfigurator; 4 | import org.apache.log4j.Logger; 5 | 6 | public class ConfiguracaoBasica { 7 | 8 | private static Logger logger = Logger.getLogger(ConfiguracaoBasica.class); 9 | 10 | public static void main(String[] args) { 11 | BasicConfigurator.configure(); 12 | 13 | logger.info("Começando a aplicação."); 14 | // codigo aplicação 15 | logger.info("Finalizando a aplicação"); 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com arrays/TesteArrays.java: -------------------------------------------------------------------------------- 1 | 2 | public class TesteArrays { 3 | 4 | public static void main(String[] args) { 5 | int[] notas = new int[4]; 6 | notas[0] = 10; 7 | notas[1] = 5; 8 | notas[2] = 8; 9 | notas[3] = 9; 10 | 11 | System.out.println("Nota do primeiro aluno: " + notas[0]); 12 | 13 | System.out.println("Tamanho do array: " + notas.length); 14 | for (int i = 0; i < notas.length; i++) { 15 | System.out.println("Posicao[" + i + "]=" + notas[i]); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/Estrutura de controle do-while/EstruturaDoWhile.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class EstruturaDoWhile { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | int valor = 0; 9 | int soma = 0; 10 | 11 | do { 12 | System.out.println("Digite 0 para sair ou qualquer numero para somar: "); 13 | valor = entrada.nextInt(); 14 | 15 | soma += valor; 16 | System.out.println("Soma: " + soma); 17 | } while (valor != 0); 18 | 19 | } 20 | 21 | 22 | } -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/pagamento/operadoras/Cielo.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.pagamento.operadoras; 2 | 3 | import com.algaworks.pagamento.Autorizavel; 4 | import com.algaworks.pagamento.Cartao; 5 | import com.algaworks.pagamento.Operadora; 6 | 7 | public class Cielo implements Operadora { 8 | 9 | @Override 10 | public boolean autorizar(Autorizavel autorizavel, Cartao cartao) { 11 | return cartao.getNumeroCartao().startsWith("123") 12 | && autorizavel.getValorTotal() < 100; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/pagamento/operadoras/Redecard.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.pagamento.operadoras; 2 | 3 | import com.algaworks.pagamento.Autorizavel; 4 | import com.algaworks.pagamento.Cartao; 5 | import com.algaworks.pagamento.Operadora; 6 | 7 | public class Redecard implements Operadora { 8 | 9 | @Override 10 | public boolean autorizar(Autorizavel autorizavel, Cartao cartao) { 11 | return cartao.getNumeroCartao().startsWith("456") 12 | && autorizavel.getValorTotal() < 200; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Aulas/Metodos com retorno/Principal3.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal3 { 3 | 4 | public static void main(String[] args) { 5 | Paciente p = new Paciente(); 6 | p.peso = 100; 7 | p.altura = 1.65; 8 | 9 | IMC imc = p.calcularIndiceDeMassaCorporal(); 10 | 11 | System.out.println("Abaixo do peso ideal: " + imc.abaixoDoPesoIdeal); 12 | System.out.println("Peso ideal: " + imc.pesoIdeal); 13 | System.out.println("Obeso: " + imc.obeso); 14 | System.out.println("Grau de obesidade: " + imc.grauObesidade); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Aulas/Sobrecarga/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.sobrecarga; 2 | 3 | public class Pessoa { 4 | 5 | private String nome; 6 | private int idade; 7 | 8 | public Pessoa(String nome, int idade) { 9 | this.nome = nome; 10 | this.idade = idade; 11 | } 12 | 13 | public String getNome() { 14 | return nome; 15 | } 16 | public void setNome(String nome) { 17 | this.nome = nome; 18 | } 19 | 20 | public int getIdade() { 21 | return idade; 22 | } 23 | public void setIdade(int idade) { 24 | this.idade = idade; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Exercicios/Interfaces e polimorfismo/CorretoraSeguros.java: -------------------------------------------------------------------------------- 1 | public class CorretoraSeguros { 2 | 3 | public void fazerPropostaSeguro(Seguravel objetoSeguravel) { 4 | System.out.println("-------------------------------"); 5 | System.out.println("Corretora de Seguros - Proposta"); 6 | System.out.println("-------------------------------"); 7 | System.out.println(objetoSeguravel.obterDescricao()); 8 | System.out.println("Valor da apólice: " + objetoSeguravel.calcularValorApolice()); 9 | System.out.println("-------------------------------\n"); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/pagamento/Cartao.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.pagamento; 2 | 3 | public class Cartao { 4 | 5 | private String nomeTitular; 6 | private String numeroCartao; 7 | 8 | public String getNomeTitular() { 9 | return nomeTitular; 10 | } 11 | public void setNomeTitular(String nomeTitular) { 12 | this.nomeTitular = nomeTitular; 13 | } 14 | 15 | public String getNumeroCartao() { 16 | return numeroCartao; 17 | } 18 | public void setNumeroCartao(String numeroCartao) { 19 | this.numeroCartao = numeroCartao; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Interfaces funcionais/com/algaworks/teste/Teste.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.teste; 2 | 3 | import com.algaworks.compra.Compra; 4 | import com.algaworks.impressao.Impressora; 5 | import com.algaworks.impressao.impressoras.ImpressoraHP; 6 | 7 | public class Teste { 8 | 9 | public static void main(String[] args) { 10 | //Impressora i = new ImpressoraHP(); 11 | 12 | Impressora i = (c) -> { 13 | System.out.println("Simulando a impressão. Seria impresso: " + c); 14 | }; 15 | 16 | Compra compra = new Compra("Sabonete", 2.5); 17 | i.imprimir(compra); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/Recebendo entrada de dados/EntradaDeDados.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class EntradaDeDados { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Nome: "); 9 | String nome = entrada.nextLine(); 10 | 11 | System.out.print("Peso: "); 12 | int peso = entrada.nextInt(); 13 | 14 | System.out.print("Altura: "); 15 | double altura = entrada.nextDouble(); 16 | 17 | double imc = peso / (altura * altura); 18 | 19 | System.out.println("IMC de " + nome + ": " + imc); 20 | } 21 | } -------------------------------------------------------------------------------- /Aulas/Introducao a expressoes regulares/ValidandoEmails.java: -------------------------------------------------------------------------------- 1 | import java.util.regex.Matcher; 2 | import java.util.regex.Pattern; 3 | 4 | 5 | public class ValidandoEmails { 6 | 7 | public static void main(String[] args) { 8 | String[] emails = {"joao@joao.com", "maria@", "jose@jose", "ricardo@ricardo.com"}; 9 | 10 | Pattern pattern = Pattern.compile("\\w+@\\w+\\.\\w+"); 11 | for (String email : emails) { 12 | Matcher matcher = pattern.matcher(email); 13 | if (matcher.matches()) { 14 | System.out.println(email + " é um e-mail válido."); 15 | } 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Desafios/Static e final/MatematicaUtil.java: -------------------------------------------------------------------------------- 1 | public class MatematicaUtil { 2 | 3 | public static final double PI = 3.14; 4 | 5 | // http://pt.wikipedia.org/wiki/Número_de_Fibonacci 6 | public static int calcularFibonacci(int posicao) { 7 | if (posicao < 2) { 8 | return posicao; 9 | } 10 | return calcularFibonacci(posicao - 1) + calcularFibonacci(posicao - 2); 11 | } 12 | 13 | public static double calcularAreaCirculo(double raio) { 14 | // area eh igual ao raio ao quadrado multiplicado por Pi 15 | double area = raio * raio * MatematicaUtil.PI; 16 | return area; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /Aulas/Arquivos jar/CalculoIMC.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo; 2 | 3 | import java.util.Scanner; 4 | 5 | public class CalculoIMC { 6 | 7 | public static void main(String[] args) { 8 | Scanner entrada = new Scanner(System.in); 9 | System.out.print("Digite seu peso: "); 10 | double peso = entrada.nextDouble(); 11 | 12 | System.out.println(); 13 | System.out.print("Digite sua altura: "); 14 | double altura = entrada.nextDouble(); 15 | System.out.println(); 16 | 17 | double imc = peso / (altura * altura); 18 | System.out.println("Seu imc eh: " + imc); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Aulas/Maven/src/main/java/com/algaworks/curso/Main.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.util.Scanner; 4 | 5 | public class Main { 6 | 7 | public static void main(String[] args) { 8 | try (Scanner entrada = new Scanner(System.in)) { 9 | System.out.print("Informe seu nome: "); 10 | String nome = entrada.nextLine(); 11 | 12 | System.out.print("Informe sua idade: "); 13 | int idade = entrada.nextInt(); 14 | 15 | Usuario usuario = new Usuario(nome, idade); 16 | System.out.println("Obrigado, " + usuario.getNome() + " por se cadastrar."); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/Operador ternario/OperadorTernario.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class OperadorTernario { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Digite sua idade: "); 9 | int idade = entrada.nextInt(); 10 | 11 | String indicacao = (idade >= 18) ? "adulto" : (idade <= 12 ? "crianca" : "adolescente"); 12 | 13 | /*if (idade >= 18) { 14 | indicacao = "adulto"; 15 | } else { 16 | indicacao = "crianca/adolescente"; 17 | }*/ 18 | 19 | System.out.println("Resultado: " + indicacao); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /Aulas/Ordenando objetos/com/algaworks/OrdenandoPeloNome.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | public class OrdenandoPeloNome { 8 | 9 | public static void main(String[] args) { 10 | Pessoa p1 = new Pessoa("João", 22); 11 | Pessoa p2 = new Pessoa("Adriana", 23); 12 | Pessoa p3 = new Pessoa("Bruno", 21); 13 | 14 | List pessoas = Arrays.asList(p1, p2, p3); 15 | Collections.sort(pessoas); 16 | 17 | for (Pessoa pessoa : pessoas) { 18 | System.out.println(pessoa); 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Sobrecarga/CadastroPessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.sobrecarga; 2 | 3 | public class CadastroPessoa { 4 | 5 | public void cadastrar(Pessoa pessoa) { 6 | armazenar(pessoa.getNome(), pessoa.getIdade()); 7 | } 8 | 9 | public void cadastrar(String nome, int idade) { 10 | armazenar(nome, idade); 11 | } 12 | 13 | public void cadastrar(String nome) { 14 | armazenar(nome, 0); 15 | } 16 | 17 | 18 | private void armazenar(String nome, int idade) { 19 | // Salva no banco de dados... 20 | System.out.println("Salvando: \"" + nome + "\" com " + idade + " anos."); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Aulas/Tipos primitivos/TipoPrimitivo.java: -------------------------------------------------------------------------------- 1 | public class TipoPrimitivo { 2 | 3 | public static void main(String[] args) { 4 | double precoProduto = 9.43; 5 | 6 | boolean alunoMatriculado = true; 7 | boolean clienteBloqueado = false; 8 | 9 | char turmaAluno1 = 'A'; 10 | char tipoCliente = '2'; 11 | char simbolo = '@'; 12 | 13 | long populacaoUberlandia = 650000; 14 | System.out.println(populacaoUberlandia); 15 | 16 | long populacaoMundial = 7000000000L; 17 | System.out.println(populacaoMundial); 18 | 19 | float saldoConta = 1030.43F; 20 | System.out.println(saldoConta); 21 | } 22 | } -------------------------------------------------------------------------------- /Aulas/Introducao a lambda/com/algaworks/dao/FaturaDAO.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.dao; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.algaworks.modelo.Fatura; 7 | 8 | public class FaturaDAO { 9 | 10 | public List buscarFaturasVencidas() { 11 | // Obviamente você buscaria isso no banco de dados... 12 | 13 | List faturas = new ArrayList<>(); 14 | faturas.add(new Fatura("joao@joao.com", 350.0)); 15 | faturas.add(new Fatura("maria@maria.com", 150.0)); 16 | faturas.add(new Fatura("jose@jose.com", 290.0)); 17 | 18 | return faturas; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Aulas/Referencia a metodos/com/algaworks/dao/FaturaDAO.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.dao; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.algaworks.modelo.Fatura; 7 | 8 | public class FaturaDAO { 9 | 10 | public List buscarFaturasVencidas() { 11 | // Obviamente você buscaria isso no banco de dados... 12 | 13 | List faturas = new ArrayList<>(); 14 | faturas.add(new Fatura("joao@joao.com", 350.0)); 15 | faturas.add(new Fatura("maria@maria.com", 150.0)); 16 | faturas.add(new Fatura("jose@jose.com", 290.0)); 17 | 18 | return faturas; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Aulas/Referencia a metodos/com/algaworks/exemplo/Exemplo.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplo; 2 | 3 | import java.util.List; 4 | 5 | import com.algaworks.dao.FaturaDAO; 6 | import com.algaworks.modelo.Fatura; 7 | 8 | public class Exemplo { 9 | 10 | public static void main(String[] args) { 11 | List faturasVencidas = new FaturaDAO().buscarFaturasVencidas(); 12 | 13 | /*for (Fatura f : faturasVencidas) { 14 | f.atualizarStatus(); 15 | }*/ 16 | 17 | //faturasVencidas.forEach(f -> f.atualizarStatus()); 18 | 19 | faturasVencidas.forEach(Fatura::atualizarStatus); 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Exercicios/Variaveis e operadores aritmeticos/PrecoMedioBombom.java: -------------------------------------------------------------------------------- 1 | public class PrecoMedioBombom { 2 | 3 | public static void main(String[] args) { 4 | // preços das últimas 3 vendas realizadas 5 | int preco1 = 5; 6 | int preco2 = 8; 7 | int preco3 = 12; 8 | 9 | int mediaPrecos = (preco1 + preco2 + preco3) / 3; 10 | 11 | System.out.println("\"Sistema de Calculo de Media\""); 12 | System.out.println("Preco 1: " + preco1); 13 | System.out.println("Preco 2: " + preco2); 14 | System.out.println("Preco 3: " + preco3); 15 | System.out.println("\nMedia dos precos:\n" + mediaPrecos); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /Aulas/Estrutura de controle while/EstruturaWhile.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class EstruturaWhile { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Digite o numero inicial: "); 9 | int numeroInicial = entrada.nextInt(); 10 | 11 | System.out.print("Digite o numero final: "); 12 | int numeroFinal = entrada.nextInt(); 13 | 14 | int numeroAtual = numeroInicial; 15 | 16 | while (numeroAtual <= numeroFinal) { 17 | System.out.println(numeroAtual); 18 | numeroAtual++; 19 | } 20 | 21 | 22 | } 23 | 24 | 25 | } -------------------------------------------------------------------------------- /Aulas/Introducao a Generics/generics/src/com/algaworks/Principal.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class Principal { 7 | 8 | public static void main(String[] args) { 9 | List funcionarios = new ArrayList<>(); 10 | 11 | funcionarios.add(new Funcionario("João")); 12 | funcionarios.add(new Funcionario("Maria")); 13 | 14 | // funcionarios.add("Ricardo"); 15 | 16 | int x = 10; 17 | 18 | for (Funcionario f : funcionarios) { 19 | System.out.println("Nome do funcionário: " + f.getNome()); 20 | } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Aulas/IO Lendo arquivo/EnviandoEmails.java: -------------------------------------------------------------------------------- 1 | import java.io.BufferedReader; 2 | import java.io.FileReader; 3 | import java.io.IOException; 4 | 5 | 6 | public class EnviandoEmails { 7 | 8 | public static void main(String[] args) { 9 | try (BufferedReader reader = new BufferedReader(new FileReader("emails2.txt"))) { 10 | 11 | String email = null; 12 | while ((email = reader.readLine()) != null) { 13 | System.out.println("Enviando e-mail para: " + email); 14 | } 15 | 16 | } catch (IOException e) { 17 | System.err.println("Não conseguiu ler o arquivo. Erro: " + e.getMessage()); 18 | } 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Introducao a stream/com/algaworks/dao/FaturaDAO.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.dao; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.algaworks.modelo.Fatura; 7 | 8 | public class FaturaDAO { 9 | 10 | public List buscarTodasFaturas() { 11 | // Obviamente você buscaria isso no banco de dados... 12 | 13 | List faturas = new ArrayList<>(); 14 | faturas.add(new Fatura("joao@joao.com", 350.0)); 15 | faturas.add(new Fatura("maria@maria.com", 150.0)); 16 | faturas.add(new Fatura("jose@jose.com", 290.0)); 17 | 18 | return faturas; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Aulas/StringBuffer e StringBuilder/ExemploStringBuffer.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploStringBuffer { 3 | 4 | public static void main(String[] args) { 5 | //StringBuffer sb = new StringBuffer(); // thread-safe - use no contexto de concorrência 6 | StringBuilder sb = new StringBuilder(); // não-thread-safe - mais rápido 7 | 8 | sb.append("Bem vindo ao curso de Java. "); 9 | sb.append("Fique a vontade para tirar suas dúvidas. "); 10 | sb.append("Estamos aqui para te ajudar. "); 11 | 12 | System.out.println(sb.toString()); 13 | 14 | sb.insert(26, " da AlgaWorks"); 15 | 16 | System.out.println(sb); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Aulas/Estrutura de controle switch/PagamentoIpva.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class PagamentoIpva { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Digite o final da placa: " ); 9 | int finalPlaca = entrada.nextInt(); 10 | 11 | switch (finalPlaca) { 12 | case 1: 13 | System.out.println("Vencimento dia 11 de Janeiro"); 14 | break; 15 | case 2: 16 | System.out.println("Vencimento dia 12 de Janeiro"); 17 | break; 18 | default: 19 | System.out.println("Vencimento sem data, desculpe"); 20 | 21 | } 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Desafios/Classe java.lang.Math/Principal.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Principal { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.println("Quantos jogos?"); 9 | int quantidadeJogos = entrada.nextInt(); 10 | 11 | System.out.println("----------------------------"); 12 | 13 | for (int i = 1; i <= quantidadeJogos; i++) { 14 | MegaSena mega = new MegaSena(); 15 | mega.sortear(); 16 | mega.exibirNumeros(); 17 | System.out.println("----------------------------"); 18 | } 19 | 20 | System.out.println("*** Boa sorte! ***"); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/RelatorioContas.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro; 2 | 3 | import com.algaworks.cursojava.financeiro.modelo.Conta; 4 | 5 | public class RelatorioContas { 6 | 7 | public void exibirListagem(Conta[] contas) { 8 | System.out.println("*************************************"); 9 | System.out.println("RELATÓRIO DE CONTAS A PAGAR E RECEBER"); 10 | System.out.println("*************************************"); 11 | 12 | for (int i = 0; i < contas.length; i++) { 13 | contas[i].exibirDetalhes(); 14 | } 15 | 16 | System.out.println("*************************************"); 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /Aulas/Introducao a stream/com/algaworks/teste/Teste.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.teste; 2 | 3 | import java.util.List; 4 | 5 | import com.algaworks.dao.FaturaDAO; 6 | import com.algaworks.modelo.Fatura; 7 | 8 | public class Teste { 9 | 10 | public static void main(String[] args) { 11 | List faturas = new FaturaDAO().buscarTodasFaturas(); 12 | 13 | /*for (Fatura f : faturas) { 14 | if (f.getValor() > 250.0) { 15 | System.out.println("Alerta: Fatura acima de R$250.0 -> " + f); 16 | } 17 | }*/ 18 | 19 | faturas.stream() 20 | .filter(Fatura::estaEmRisco) 21 | .forEach(System.out::println); 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Aulas/JSON Basico/com/algaworks/curso/modelo/Telefone.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | public class Telefone { 4 | 5 | private String tipo; 6 | private String numero; 7 | 8 | public Telefone() { 9 | 10 | } 11 | 12 | public Telefone(String tipo, String numero) { 13 | this.tipo = tipo; 14 | this.numero = numero; 15 | } 16 | 17 | public String getTipo() { 18 | return tipo; 19 | } 20 | 21 | public void setTipo(String tipo) { 22 | this.tipo = tipo; 23 | } 24 | 25 | public String getNumero() { 26 | return numero; 27 | } 28 | 29 | public void setNumero(String numero) { 30 | this.numero = numero; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Aulas/Equals e HashCode/TesteSetHashSet2.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.collections; 2 | 3 | import java.util.Set; 4 | 5 | public class TesteSetHashSet2 { 6 | 7 | public static void main(String[] args) { 8 | Set alunos = SimuladorBancoDeDados.buscarAlunos(); 9 | 10 | // De alguma forma, sorteia o nome do aluno e constrói o objeto Aluno 11 | Aluno alunoSorteado = new Aluno("Maria"); 12 | 13 | if (alunos.contains(alunoSorteado)) { 14 | System.out.println("Parabéns " + alunoSorteado.getNome() +"! Você ganhou um brinde!"); 15 | } else { 16 | System.out.println("Aluno não cadastrado no banco de dados."); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/try-with-resources-e-multicast/ExemploTryEMultiCast.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class ExemploTryEMultiCast { 4 | 5 | public static void main(String[] args) { 6 | try (Scanner entrada = new Scanner(System.in)) { 7 | 8 | System.out.print("Informe seu nome: "); 9 | String nome = entrada.nextLine(); 10 | 11 | System.out.print("Informe sua idade: "); 12 | String idade = entrada.nextLine(); 13 | 14 | try { 15 | SalvarAluno.salvar(nome, idade); 16 | } catch (NegocioException | NumberFormatException e) { 17 | System.err.println("Impossível completar operação. Motivo: " + e.getMessage()); 18 | } 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Logging/com/algaworks/dao/ClienteDAO.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.dao; 2 | 3 | import org.apache.log4j.Logger; 4 | 5 | import com.algaworks.model.Cliente; 6 | 7 | public class ClienteDAO { 8 | 9 | private static Logger logger = Logger.getLogger(ClienteDAO.class); 10 | 11 | public void salvar(Cliente cliente) { 12 | if (cliente == null) { 13 | // Regra para dizer ao usuario informar o nome 14 | logger.warn("Cliente está nulo"); 15 | return; 16 | } 17 | 18 | if (logger.isDebugEnabled()) { 19 | logger.debug("Salvando o cliente: " + cliente); 20 | } 21 | 22 | // Salvaria o cliente no banco 23 | 24 | logger.debug("Cliente salvo com sucesso."); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Aulas/Escopo de variaveis/Escopo.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Escopo { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Idade: "); 9 | int idade = entrada.nextInt(); 10 | 11 | boolean podeDirigir = idade >= 18; 12 | String nomePai = ""; 13 | 14 | if (!podeDirigir) { 15 | System.out.print("Nome do pai: "); 16 | 17 | nomePai = entrada.next(); 18 | } 19 | 20 | System.out.println("Voce pode dirigir?"); 21 | 22 | if (podeDirigir) { 23 | System.out.println("Sim, claro"); 24 | } else { 25 | System.out.println("Nao, se fizer isso, seu pai " + nomePai + " vai preso"); 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /Aulas/Separador de digitos em literais numericos/ExemploSeparadorDigitosLiterais.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemploSeparadorDigitosLiterais { 3 | 4 | public static void main(String[] args) { 5 | long populacaoSaoPaulo = 11_000_000L; 6 | long populacaoGrandeSaoPaulo = 11_000_000 + 9_000_000; 7 | 8 | System.out.printf("População São Paulo: %d\n", populacaoSaoPaulo); 9 | System.out.printf("População da Grande São Paulo: %d\n", populacaoGrandeSaoPaulo); 10 | 11 | double precoVeiculo = 200_000.99_1d; 12 | System.out.printf("Preço veículo: %.3f\n", precoVeiculo); 13 | 14 | // Evite usar assim 15 | int x = 1____2____3; 16 | int y = 1_2_3; 17 | System.out.printf("São iguais: %b\n", (x == y)); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 2/com/algaworks/model/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.LocalDate; 4 | 5 | public class Cliente { 6 | 7 | private String nome; 8 | private LocalDate dataNascimento; 9 | 10 | public Cliente(String nome, LocalDate dataNascimento) { 11 | this.nome = nome; 12 | this.dataNascimento = dataNascimento; 13 | } 14 | 15 | public String getNome() { 16 | return nome; 17 | } 18 | 19 | public void setNome(String nome) { 20 | this.nome = nome; 21 | } 22 | 23 | public LocalDate getDataNascimento() { 24 | return dataNascimento; 25 | } 26 | 27 | public void setDataNascimento(LocalDate dataNascimento) { 28 | this.dataNascimento = dataNascimento; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 3/com/algaworks/model/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.LocalDate; 4 | 5 | public class Cliente { 6 | 7 | private String nome; 8 | private LocalDate dataNascimento; 9 | 10 | public Cliente(String nome, LocalDate dataNascimento) { 11 | this.nome = nome; 12 | this.dataNascimento = dataNascimento; 13 | } 14 | 15 | public String getNome() { 16 | return nome; 17 | } 18 | 19 | public void setNome(String nome) { 20 | this.nome = nome; 21 | } 22 | 23 | public LocalDate getDataNascimento() { 24 | return dataNascimento; 25 | } 26 | 27 | public void setDataNascimento(LocalDate dataNascimento) { 28 | this.dataNascimento = dataNascimento; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 4/com/algaworks/model/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.LocalDate; 4 | 5 | public class Cliente { 6 | 7 | private String nome; 8 | private LocalDate dataNascimento; 9 | 10 | public Cliente(String nome, LocalDate dataNascimento) { 11 | this.nome = nome; 12 | this.dataNascimento = dataNascimento; 13 | } 14 | 15 | public String getNome() { 16 | return nome; 17 | } 18 | 19 | public void setNome(String nome) { 20 | this.nome = nome; 21 | } 22 | 23 | public LocalDate getDataNascimento() { 24 | return dataNascimento; 25 | } 26 | 27 | public void setDataNascimento(LocalDate dataNascimento) { 28 | this.dataNascimento = dataNascimento; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Aulas/Nova api de data parte 1/com/algaworks/model/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.LocalDate; 4 | 5 | public class Cliente { 6 | 7 | private String nome; 8 | private LocalDate dataNascimento; 9 | 10 | public Cliente(String nome, LocalDate dataNascimento) { 11 | this.nome = nome; 12 | this.dataNascimento = dataNascimento; 13 | } 14 | 15 | public String getNome() { 16 | return nome; 17 | } 18 | 19 | public void setNome(String nome) { 20 | this.nome = nome; 21 | } 22 | 23 | public LocalDate getDataNascimento() { 24 | return dataNascimento; 25 | } 26 | 27 | public void setDataNascimento(LocalDate dataNascimento) { 28 | this.dataNascimento = dataNascimento; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Aulas/Switch case com Strings/SwitchCaseComString.java: -------------------------------------------------------------------------------- 1 | 2 | public class SwitchCaseComString { 3 | 4 | public static void main(String[] args) { 5 | String carro = args.length > 0 ? args[0] : ""; 6 | 7 | /*if (carro.equals("Audi")) { 8 | System.out.println("Alemão"); 9 | } else if (carro.equals("Ferrari")) { 10 | System.out.println("Italiano"); 11 | }*/ 12 | 13 | switch (carro) { 14 | case "Audi": 15 | System.out.println("Alemão"); 16 | break; 17 | case "Ferrari": 18 | System.out.println("Italiano"); 19 | break; 20 | case "Honda": 21 | System.out.println("Japonês"); 22 | break; 23 | default: 24 | System.out.println("Não informou nenhum carro!"); 25 | 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 2/com/algaworks/exemplos/CadastroCarro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.Year; 4 | import java.util.Arrays; 5 | import java.util.List; 6 | 7 | import com.algaworks.model.Carro; 8 | 9 | public class CadastroCarro { 10 | 11 | public static void main(String[] args) { 12 | Carro gol = new Carro("Gol", 90.0, Year.of(2012)); 13 | Carro cruze = new Carro("Cruze", 200.0, Year.parse("2013")); 14 | Carro celta = new Carro("Celta", 80.0, Year.of(2011)); 15 | 16 | List carros = Arrays.asList(gol, cruze, celta); 17 | carros.stream() 18 | .filter(c -> c.getAnoFabricacao().isAfter(Year.of(2012))) 19 | .forEach(c -> System.out.println(c.getModelo())); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 3/com/algaworks/exemplos/CadastroCarro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.Year; 4 | import java.util.Arrays; 5 | import java.util.List; 6 | 7 | import com.algaworks.model.Carro; 8 | 9 | public class CadastroCarro { 10 | 11 | public static void main(String[] args) { 12 | Carro gol = new Carro("Gol", 90.0, Year.of(2012)); 13 | Carro cruze = new Carro("Cruze", 200.0, Year.parse("2013")); 14 | Carro celta = new Carro("Celta", 80.0, Year.of(2011)); 15 | 16 | List carros = Arrays.asList(gol, cruze, celta); 17 | carros.stream() 18 | .filter(c -> c.getAnoFabricacao().isAfter(Year.of(2012))) 19 | .forEach(c -> System.out.println(c.getModelo())); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 4/com/algaworks/exemplos/CadastroCarro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.Year; 4 | import java.util.Arrays; 5 | import java.util.List; 6 | 7 | import com.algaworks.model.Carro; 8 | 9 | public class CadastroCarro { 10 | 11 | public static void main(String[] args) { 12 | Carro gol = new Carro("Gol", 90.0, Year.of(2012)); 13 | Carro cruze = new Carro("Cruze", 200.0, Year.parse("2013")); 14 | Carro celta = new Carro("Celta", 80.0, Year.of(2011)); 15 | 16 | List carros = Arrays.asList(gol, cruze, celta); 17 | carros.stream() 18 | .filter(c -> c.getAnoFabricacao().isAfter(Year.of(2012))) 19 | .forEach(c -> System.out.println(c.getModelo())); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Parametros da JVM/com/algaworks/Memoria.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | import java.util.Scanner; 6 | 7 | public class Memoria { 8 | 9 | private List lista = new ArrayList<>(); 10 | 11 | public static void main(String[] args) { 12 | Memoria memoria = new Memoria(); 13 | 14 | try (Scanner entrada = new Scanner(System.in)) { 15 | int opcao = 0; 16 | do { 17 | System.out.print("Informe uma opção: "); 18 | opcao = entrada.nextInt(); 19 | 20 | if (opcao == 1) { 21 | for (int i = 0; i < 2_000_000; i++) { 22 | memoria.lista.add(new Object()); 23 | } 24 | } 25 | } while (opcao != 0); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Aulas/Logging/log4j.properties: -------------------------------------------------------------------------------- 1 | # Set root logger level to DEBUG and its only appender to A1. 2 | log4j.rootLogger=DEBUG, A1, file 3 | 4 | # DEBUG->INFO->WARN->ERROR 5 | 6 | log4j.appender.A1=org.apache.log4j.ConsoleAppender 7 | log4j.appender.A1.layout=org.apache.log4j.PatternLayout 8 | log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 9 | 10 | log4j.appender.file=org.apache.log4j.RollingFileAppender 11 | log4j.appender.file.File=servidor.log 12 | log4j.appender.file.MaxFileSize=100KB 13 | # Keep one backup file 14 | log4j.appender.file.MaxBackupIndex=1 15 | log4j.appender.file.layout=org.apache.log4j.PatternLayout 16 | log4j.appender.file.layout.ConversionPattern=%d %p %t %c - %m%n 17 | 18 | log4j.logger.com.algaworks.dao=WARN 19 | -------------------------------------------------------------------------------- /Aulas/JOptionPane/ExemploJOptionPane3.java: -------------------------------------------------------------------------------- 1 | import javax.swing.JOptionPane; 2 | import javax.swing.UIManager; 3 | 4 | 5 | public class ExemploJOptionPane3 { 6 | 7 | public static void main(String[] args) throws Exception { 8 | UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 9 | 10 | Object[] opcoes = {"Sim", "Não", "Sim, com e-mail"}; 11 | 12 | int opcao = JOptionPane.showOptionDialog(null, "Você gostaria de finalizar o cadastro?" 13 | , "Confirmação", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE 14 | , null, opcoes, opcoes[2]); 15 | 16 | System.out.println("Opção selecionada: " + opcao); 17 | 18 | if (opcao == 1) { 19 | // ... 20 | } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 2/com/algaworks/exemplos/CadastroCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.Month; 5 | import java.time.Period; 6 | 7 | import com.algaworks.model.Cliente; 8 | 9 | public class CadastroCliente { 10 | 11 | public static void main(String[] args) { 12 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1988, Month.AUGUST, 13)); 13 | 14 | int idade = Period.between(cliente.getDataNascimento(), LocalDate.now()).getYears(); 15 | 16 | if (idade >= 18) { 17 | System.out.printf("OK, pode ser cadastrado. Sua idade é: %d", idade); 18 | } else { 19 | System.err.printf("Sua idade é: %d. Então não pode ter carteira.", idade); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 3/com/algaworks/exemplos/CadastroCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.Month; 5 | import java.time.Period; 6 | 7 | import com.algaworks.model.Cliente; 8 | 9 | public class CadastroCliente { 10 | 11 | public static void main(String[] args) { 12 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1988, Month.AUGUST, 13)); 13 | 14 | int idade = Period.between(cliente.getDataNascimento(), LocalDate.now()).getYears(); 15 | 16 | if (idade >= 18) { 17 | System.out.printf("OK, pode ser cadastrado. Sua idade é: %d", idade); 18 | } else { 19 | System.err.printf("Sua idade é: %d. Então não pode ter carteira.", idade); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 4/com/algaworks/exemplos/CadastroCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.Month; 5 | import java.time.Period; 6 | 7 | import com.algaworks.model.Cliente; 8 | 9 | public class CadastroCliente { 10 | 11 | public static void main(String[] args) { 12 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1988, Month.AUGUST, 13)); 13 | 14 | int idade = Period.between(cliente.getDataNascimento(), LocalDate.now()).getYears(); 15 | 16 | if (idade >= 18) { 17 | System.out.printf("OK, pode ser cadastrado. Sua idade é: %d", idade); 18 | } else { 19 | System.err.printf("Sua idade é: %d. Então não pode ter carteira.", idade); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Nova api de data parte 1/com/algaworks/exemplos/CadastroCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.Month; 5 | import java.time.Period; 6 | 7 | import com.algaworks.model.Cliente; 8 | 9 | public class CadastroCliente { 10 | 11 | public static void main(String[] args) { 12 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1988, Month.AUGUST, 13)); 13 | 14 | int idade = Period.between(cliente.getDataNascimento(), LocalDate.now()).getYears(); 15 | 16 | if (idade >= 18) { 17 | System.out.printf("OK, pode ser cadastrado. Sua idade é: %d", idade); 18 | } else { 19 | System.err.printf("Sua idade é: %d. Então não pode ter carteira.", idade); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Maven/src/main/java/com/algaworks/curso/Usuario.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import static org.apache.commons.lang3.StringUtils.isBlank; 4 | 5 | public class Usuario { 6 | 7 | private String nome; 8 | private int idade; 9 | 10 | public Usuario(String nome, int idade) { 11 | if (isBlank(nome)) { 12 | throw new IllegalArgumentException("Nome deve ser informado"); 13 | } 14 | this.nome = nome; 15 | this.idade = idade; 16 | } 17 | 18 | public String getNome() { 19 | return nome; 20 | } 21 | 22 | public void setNome(String nome) { 23 | this.nome = nome; 24 | } 25 | 26 | public int getIdade() { 27 | return idade; 28 | } 29 | 30 | public void setIdade(int idade) { 31 | this.idade = idade; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /Exercicios/Interfaces e polimorfismo/Carro.java: -------------------------------------------------------------------------------- 1 | public class Carro implements Seguravel { 2 | 3 | private double valorMercado; 4 | private int anoFabricacao; 5 | 6 | public Carro(double valorMercado, int anoFabricacao) { 7 | this.valorMercado = valorMercado; 8 | this.anoFabricacao = anoFabricacao; 9 | } 10 | 11 | public String obterDescricao() { 12 | return "Carro ano " + this.anoFabricacao + " com valor de mercado " 13 | + this.valorMercado; 14 | } 15 | 16 | public double calcularValorApolice() { 17 | // cálculos fictícios do valor de uma apólice de um carro 18 | double valorApolice = this.valorMercado * 0.04; 19 | if (anoFabricacao < 2000) { 20 | valorApolice = valorApolice * 0.90; 21 | } 22 | return valorApolice; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Aulas/Logging/com/algaworks/ExemploSalvandoCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import org.apache.log4j.Logger; 4 | import org.apache.log4j.PropertyConfigurator; 5 | 6 | import com.algaworks.dao.ClienteDAO; 7 | import com.algaworks.model.Cliente; 8 | 9 | public class ExemploSalvandoCliente { 10 | 11 | private static Logger logger = Logger.getLogger(ExemploSalvandoCliente.class); 12 | 13 | public static void main(String[] args) { 14 | PropertyConfigurator.configure("log4j.properties"); 15 | 16 | logger.info("Iniciando a aplicação"); 17 | 18 | Cliente cliente = new Cliente("João"); 19 | new ClienteDAO().salvar(cliente); 20 | 21 | new ClienteDAO().salvar(null); 22 | 23 | logger.info("Finalizando a aplicação."); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Exercicios/Interfaces e polimorfismo/Imovel.java: -------------------------------------------------------------------------------- 1 | public class Imovel implements Seguravel { 2 | 3 | private double valorMercado; 4 | private int areaConstruida; 5 | 6 | public Imovel(double valorMercado, int areaConstruida) { 7 | this.valorMercado = valorMercado; 8 | this.areaConstruida = areaConstruida; 9 | } 10 | 11 | public String obterDescricao() { 12 | return "Imóvel com área construída de " + this.areaConstruida + "m2 e valor de mercado " 13 | + this.valorMercado; 14 | } 15 | 16 | public double calcularValorApolice() { 17 | // cálculos fictícios do valor de uma apólice de um imóvel 18 | double valorApolice = this.valorMercado * 0.003; 19 | valorApolice = valorApolice + (areaConstruida * 0.5); 20 | return valorApolice; 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /Aulas/Metodos com retorno/Paciente.java: -------------------------------------------------------------------------------- 1 | 2 | public class Paciente { 3 | 4 | double peso; 5 | double altura; 6 | 7 | IMC calcularIndiceDeMassaCorporal() { 8 | IMC imc = new IMC(); 9 | double indice = peso / (altura * altura); 10 | imc.indice = indice; 11 | 12 | if (indice < 18.5) { 13 | imc.abaixoDoPesoIdeal = true; 14 | } else if (indice < 25) { 15 | imc.pesoIdeal = true; 16 | } else { 17 | imc.obeso = true; 18 | 19 | if (indice < 30) { 20 | imc.grauObesidade = "Acima do peso"; 21 | } else if (indice < 35) { 22 | imc.grauObesidade = "I"; 23 | } else if (indice < 40) { 24 | imc.grauObesidade = "II"; 25 | } else { 26 | imc.grauObesidade = "III"; 27 | } 28 | } 29 | 30 | return imc; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Desafios/Numeros/DesafioNumeros.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | import java.math.BigDecimal; 3 | import java.text.DecimalFormat; 4 | import java.text.ParseException; 5 | 6 | public class DesafioNumeros { 7 | 8 | public static void main(String[] args) { 9 | Scanner entrada = new Scanner(System.in); 10 | DecimalFormat formatador = new DecimalFormat("R$ #,##0.00"); 11 | 12 | System.out.println("Valor do produto:"); 13 | double valor = entrada.nextDouble(); 14 | 15 | BigDecimal valorBig = new BigDecimal(valor); 16 | BigDecimal resultado = valorBig.multiply(BigDecimal.TEN).divide(new BigDecimal(100)); 17 | 18 | String valorFormatado = formatador.format(resultado.doubleValue()); 19 | System.out.println("10% do valor é: " + valorFormatado); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /Aulas/Enviando objetos na rede/Pedido.java: -------------------------------------------------------------------------------- 1 | import java.io.Serializable; 2 | 3 | public class Pedido implements Serializable { 4 | 5 | private static final long serialVersionUID = 1L; 6 | 7 | private Long codigo; 8 | private String descricao; 9 | private int quantidade; 10 | 11 | public Long getCodigo() { 12 | return codigo; 13 | } 14 | 15 | public void setCodigo(Long codigo) { 16 | this.codigo = codigo; 17 | } 18 | 19 | public String getDescricao() { 20 | return descricao; 21 | } 22 | 23 | public void setDescricao(String descricao) { 24 | this.descricao = descricao; 25 | } 26 | 27 | public int getQuantidade() { 28 | return quantidade; 29 | } 30 | 31 | public void setQuantidade(int quantidade) { 32 | this.quantidade = quantidade; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /Aulas/Introducao a lambda/com/algaworks/exemplo/ExemploLambda.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplo; 2 | 3 | import java.util.List; 4 | 5 | import com.algaworks.dao.FaturaDAO; 6 | import com.algaworks.modelo.Fatura; 7 | import com.algaworks.util.EnviadorEmail; 8 | 9 | public class ExemploLambda { 10 | 11 | public static void main(String[] args) { 12 | List faturasVencidas = new FaturaDAO().buscarFaturasVencidas(); 13 | 14 | EnviadorEmail enviadorEmail = new EnviadorEmail(); 15 | 16 | /*for (Fatura f : faturasVencidas) { 17 | enviadorEmail.enviar(f.getEmailDevedor(), f.resumo()); 18 | }*/ 19 | 20 | faturasVencidas.forEach(f -> { 21 | enviadorEmail.enviar(f.getEmailDevedor(), f.resumo()); 22 | f.setEmailEnviado(true); 23 | }); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Aulas/Diamond/ExemploDiamond.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.HashMap; 3 | import java.util.HashSet; 4 | import java.util.List; 5 | import java.util.Map; 6 | import java.util.Set; 7 | 8 | public class ExemploDiamond { 9 | 10 | public static void main(String[] args) { 11 | List nomesClientes = new ArrayList<>(); 12 | nomesClientes.add("João"); 13 | nomesClientes.add("Maria"); 14 | 15 | Map> carrosPorMontadora = new HashMap<>(); 16 | carrosPorMontadora.put("Chevrolet", new HashSet()); 17 | carrosPorMontadora.get("Chevrolet").add("Cruze"); 18 | 19 | Set carrosDaVolks; 20 | carrosPorMontadora.put("Volks", carrosDaVolks = new HashSet<>()); 21 | carrosPorMontadora.get("Volks").add("Gol"); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/BuscaTodosClientes.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.util.List; 4 | 5 | import com.algaworks.curso.dao.ClienteDAO; 6 | import com.algaworks.curso.dao.DAOFactory; 7 | import com.algaworks.curso.modelo.Cliente; 8 | 9 | public class BuscaTodosClientes { 10 | 11 | public static void main(String[] args) { 12 | ClienteDAO clienteDAO = DAOFactory.getDAOFactory().getClienteDAO(); 13 | 14 | List clientes = clienteDAO.buscarTodos(); 15 | 16 | for (Cliente cliente : clientes) { 17 | System.out.println("------ Cliente ------"); 18 | System.out.printf("Código: %d\n", cliente.getCodigo()); 19 | System.out.printf("Nome: %s\n", cliente.getNome()); 20 | System.out.println(); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Aulas/Tratando e lancando excecoes/TesteExcecoesChecadas.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.excecoes; 2 | 3 | public class TesteExcecoesChecadas { 4 | 5 | public static void main(String[] args) { 6 | ContaCorrente cc = new ContaCorrente(100); 7 | 8 | try { 9 | cc.sacar(60); 10 | } catch (SaldoInsuficienteException e) { 11 | System.out.println("Desculpe, saldo insuficiente."); 12 | } 13 | System.out.println("Saldo: " + cc.getSaldo()); 14 | 15 | try { 16 | cc.sacar(50); 17 | } catch (SaldoInsuficienteException e) { 18 | System.out.println("Desculpe, saldo insuficiente."); 19 | } 20 | finally { 21 | System.out.println("Obrigado por utilizar nosso sistema!"); 22 | } 23 | System.out.println("Saldo agora: " + cc.getSaldo()); 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Aulas/IO Gravando arquivo/GravandoEmails.java: -------------------------------------------------------------------------------- 1 | import java.io.BufferedWriter; 2 | import java.io.FileWriter; 3 | import java.io.IOException; 4 | import java.io.PrintStream; 5 | 6 | 7 | public class GravandoEmails { 8 | 9 | public static void main(String[] args) { 10 | String[] emails = {"joao2@joao.com", "maria2@maria.com", "ricardo2@ricardo.com"}; 11 | 12 | 13 | // try (BufferedWriter writer = new BufferedWriter(new FileWriter("emails.txt", true))) { 14 | try (PrintStream writer = new PrintStream("emails2.txt")) { 15 | for (String email : emails) { 16 | // writer.write(email); 17 | // writer.newLine(); 18 | writer.println(email); 19 | } 20 | } catch (IOException e) { 21 | System.err.println("Não conseguiu gravar o arquivo." + e.getMessage()); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/caixa/Checkout.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.caixa; 2 | 3 | import com.algaworks.impressao.Impressora; 4 | import com.algaworks.pagamento.Cartao; 5 | import com.algaworks.pagamento.Operadora; 6 | 7 | public class Checkout { 8 | 9 | private Operadora operadora; 10 | private Impressora impressora; 11 | 12 | public Checkout(Operadora operadora, Impressora impressora) { 13 | this.operadora = operadora; 14 | this.impressora = impressora; 15 | } 16 | 17 | public void fecharCompra(Compra compra, Cartao cartao) { 18 | boolean autorizado = this.operadora.autorizar(compra, cartao); 19 | 20 | if (autorizado) { 21 | this.impressora.imprimir(compra); 22 | } else { 23 | System.out.println("Pagamento foi negado!"); 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Aulas/Salvando e lendo objetos em arquivo/com/algaworks/model/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Pessoa implements Serializable { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | private String nome; 10 | private int idade; 11 | private String profissao; 12 | 13 | public String getNome() { 14 | return nome; 15 | } 16 | 17 | public void setNome(String nome) { 18 | this.nome = nome; 19 | } 20 | 21 | public int getIdade() { 22 | return idade; 23 | } 24 | 25 | public void setIdade(int idade) { 26 | this.idade = idade; 27 | } 28 | 29 | public String getProfissao() { 30 | return profissao; 31 | } 32 | 33 | public void setProfissao(String profissao) { 34 | this.profissao = profissao; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Aulas/Introducao a stream/com/algaworks/modelo/Fatura.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.modelo; 2 | 3 | public class Fatura { 4 | 5 | private String email; 6 | private double valor; 7 | 8 | public Fatura(String email, double valor) { 9 | this.email = email; 10 | this.valor = valor; 11 | } 12 | 13 | public String getEmail() { 14 | return email; 15 | } 16 | 17 | public void setEmail(String email) { 18 | this.email = email; 19 | } 20 | 21 | public double getValor() { 22 | return valor; 23 | } 24 | 25 | public void setValor(double valor) { 26 | this.valor = valor; 27 | } 28 | 29 | public boolean estaEmRisco() { 30 | return valor >= 250 ? true : false; 31 | } 32 | 33 | @Override 34 | public String toString() { 35 | return "E-mail: " + email + ". Valor R$ " + valor; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /Aulas/Ordenando objetos/com/algaworks/OrdenandoPelaIdade.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.util.Arrays; 4 | import java.util.Collections; 5 | import java.util.List; 6 | 7 | public class OrdenandoPelaIdade { 8 | 9 | public static void main(String[] args) { 10 | Pessoa p1 = new Pessoa("João", 22); 11 | Pessoa p2 = new Pessoa("Adriana", 23); 12 | Pessoa p3 = new Pessoa("Bruno", 21); 13 | 14 | List pessoas = Arrays.asList(p1, p2, p3); 15 | IdadeComparator idadeComparator = new IdadeComparator(); 16 | 17 | Collections.sort(pessoas, idadeComparator); 18 | 19 | // Para Java 8 20 | //pessoas.sort(idadeComparator); 21 | //pessoas.forEach(System.out::println); 22 | 23 | for (Pessoa pessoa : pessoas) { 24 | System.out.println(pessoa); 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Aulas/XML Basico/LendoProduto.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.io.FileInputStream; 4 | import java.io.FileNotFoundException; 5 | 6 | import com.algaworks.curso.modelo.Produto; 7 | import com.thoughtworks.xstream.XStream; 8 | import com.thoughtworks.xstream.io.xml.DomDriver; 9 | 10 | public class LendoProduto { 11 | 12 | public static void main(String[] args) throws FileNotFoundException { 13 | XStream xstream = new XStream(new DomDriver()); 14 | xstream.alias("produto", Produto.class); 15 | xstream.aliasAttribute(Produto.class, "codigo", "codigo"); 16 | 17 | Produto p = (Produto) xstream.fromXML(new FileInputStream("./produto2.xml")); 18 | System.out.println(p.getCodigo()); 19 | System.out.println(p.getDescricao()); 20 | System.out.println(p.getValor()); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/BuscaPeloCodigo.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import com.algaworks.curso.dao.DAOFactory; 4 | import com.algaworks.curso.dao.ClienteDAO; 5 | import com.algaworks.curso.modelo.Cliente; 6 | 7 | public class BuscaPeloCodigo { 8 | 9 | public static void main(String[] args) { 10 | ClienteDAO clienteDAO = DAOFactory.getDAOFactory().getClienteDAO(); 11 | 12 | Cliente cliente = clienteDAO.buscarPeloCodigo(2L); 13 | 14 | if (cliente != null) { 15 | System.out.println("------ Cliente encontrado ------"); 16 | System.out.printf("Código: %d\n", cliente.getCodigo()); 17 | System.out.printf("Nome: %s\n", cliente.getNome()); 18 | System.out.println(); 19 | } else { 20 | System.out.println("Nenhum cliente encontrado."); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/impressao/impressoras/ImpressoraHP.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.impressao.impressoras; 2 | 3 | import com.algaworks.impressao.Impressora; 4 | import com.algaworks.impressao.Imprimivel; 5 | 6 | public class ImpressoraHP implements Impressora { 7 | 8 | @Override 9 | public void imprimir(Imprimivel imprimivel) { 10 | System.out.println(imprimivel.getCabecalhoPagina()); 11 | System.out.println("------------------------------------------------"); 12 | System.out.println(imprimivel.getCorpoPagina()); 13 | System.out.println(); 14 | System.out.println("================================================"); 15 | System.out.println("......................HP........................"); 16 | System.out.println("================================================"); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Aulas/JOptionPane/ExemploJOptionPane4.java: -------------------------------------------------------------------------------- 1 | import javax.swing.JOptionPane; 2 | import javax.swing.UIManager; 3 | 4 | 5 | public class ExemploJOptionPane4 { 6 | 7 | public static void main(String[] args) throws Exception { 8 | UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 9 | 10 | Object[] possibilidades = {"Masculino", "Feminino"}; 11 | String sexo = (String) JOptionPane.showInputDialog(null, "Selecione sexo", "AlgaWorks", JOptionPane.PLAIN_MESSAGE, null 12 | , possibilidades, possibilidades[0]); 13 | 14 | System.out.println("Sexo selecionado: " + sexo); 15 | 16 | String nome = (String) JOptionPane.showInputDialog(null, "Digite seu nome", "AlgaWorks", JOptionPane.PLAIN_MESSAGE, null 17 | , null, null); 18 | System.out.println("Seu nome é: " + nome); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Aulas/Ordenando objetos/com/algaworks/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | public class Pessoa implements Comparable { 4 | 5 | private String nome; 6 | private int idade; 7 | 8 | public Pessoa(String nome, int idade) { 9 | this.nome = nome; 10 | this.idade = idade; 11 | } 12 | 13 | public String getNome() { 14 | return nome; 15 | } 16 | 17 | public void setNome(String nome) { 18 | this.nome = nome; 19 | } 20 | 21 | public int getIdade() { 22 | return idade; 23 | } 24 | 25 | public void setIdade(int idade) { 26 | this.idade = idade; 27 | } 28 | 29 | @Override 30 | public String toString() { 31 | return this.nome + " tem " + this.idade + " anos."; 32 | } 33 | 34 | @Override 35 | public int compareTo(Pessoa pessoa) { 36 | return this.nome.compareTo(pessoa.getNome()); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /Desafios/Objeto this, construtores e JavaBeans/Principal.java: -------------------------------------------------------------------------------- 1 | public class Principal { 2 | 3 | public static void main(String[] args) { 4 | Fornecedor imobiliaria = new Fornecedor(); 5 | imobiliaria.setNome("Casa & Cia Negócios Imobiliários"); 6 | 7 | Fornecedor mercado = new Fornecedor(); 8 | mercado.setNome("Mercado do João"); 9 | 10 | ContaPagar conta1 = new ContaPagar(); 11 | conta1.setDescricao("Aluguel da matriz"); 12 | conta1.setValor(1230d); 13 | conta1.setDataVencimento("10/05/2012"); 14 | conta1.setFornecedor(imobiliaria); 15 | 16 | ContaPagar conta2 = new ContaPagar(mercado, "Compras do mês", 390d, "19/05/2012"); 17 | 18 | ContaPagar conta3 = new ContaPagar(mercado, "Aluguel da filial", 700d, "11/05/2012"); 19 | 20 | conta1.pagar(); 21 | conta2.pagar(); 22 | conta3.pagar(); 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/dao/jdbc/JdbcDAOFactory.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.dao.jdbc; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | 6 | import com.algaworks.curso.dao.ClienteDAO; 7 | import com.algaworks.curso.dao.DAOFactory; 8 | 9 | public class JdbcDAOFactory extends DAOFactory { 10 | 11 | private Connection connection; 12 | 13 | public JdbcDAOFactory() { 14 | try { 15 | Class.forName("com.mysql.jdbc.Driver"); 16 | this.connection = DriverManager.getConnection("jdbc:mysql://localhost/cadastro_cliente" 17 | , "root", "root"); 18 | } catch (Exception e) { 19 | throw new RuntimeException("Erro recuperando conexão com o banco", e); 20 | } 21 | } 22 | 23 | @Override 24 | public ClienteDAO getClienteDAO() { 25 | return new JdbcClienteDAO(connection); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Aulas/Salvando e lendo objetos em arquivo/com/algaworks/SerializandoObjeto.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.io.FileOutputStream; 4 | import java.io.IOException; 5 | import java.io.ObjectOutput; 6 | import java.io.ObjectOutputStream; 7 | 8 | import com.algaworks.model.Pessoa; 9 | 10 | public class SerializandoObjeto { 11 | 12 | public static void main(String[] args) { 13 | Pessoa p = new Pessoa(); 14 | p.setNome("João Silva"); 15 | p.setIdade(25); 16 | p.setProfissao("Motorista"); 17 | 18 | try (ObjectOutput out = new ObjectOutputStream(new FileOutputStream("joao.obj"))) { 19 | out.writeObject(p); 20 | System.out.println("Objeto salvo com sucesso."); 21 | 22 | } catch (IOException e) { 23 | System.err.println("Erro salvando o objeto. " + e.getMessage()); 24 | e.printStackTrace(); 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Exercicios/Tipos primitivos e outros operadores de atribuicao/CalculadoraProfessor.java: -------------------------------------------------------------------------------- 1 | public class CalculadoraProfessor { 2 | 3 | public static void main(String[] args) { 4 | // indica se detalhamento do calculo deve ser apresentado na tela 5 | boolean calculoDetalhado = true; 6 | 7 | // constante do Pi - http://pt.wikipedia.org/wiki/Pi 8 | float pi = 3.14f; 9 | 10 | // raio - informado pelo professor 11 | float raio = 5.3f; 12 | 13 | // area eh igual ao raio ao quadrado multiplicado por Pi 14 | float area = raio * raio * pi; 15 | int areaSemCasasDecimais = (int) area; 16 | 17 | if (calculoDetalhado) { 18 | System.out.println("Area = " + raio + " * " + raio + " * " + pi); 19 | } 20 | 21 | System.out.println("Resultado: " + area); 22 | System.out.println("Resultado sem casas decimais: " + areaSemCasasDecimais); 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Aulas/JSON Basico/com/algaworks/curso/modelo/Endereco.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | public class Endereco { 4 | 5 | private String rua; 6 | private String cidade; 7 | private String estado; 8 | 9 | public Endereco() { 10 | 11 | } 12 | 13 | public Endereco(String rua, String cidade, String estado) { 14 | this.rua = rua; 15 | this.cidade = cidade; 16 | this.estado = estado; 17 | } 18 | 19 | public String getRua() { 20 | return rua; 21 | } 22 | 23 | public void setRua(String rua) { 24 | this.rua = rua; 25 | } 26 | 27 | public String getCidade() { 28 | return cidade; 29 | } 30 | 31 | public void setCidade(String cidade) { 32 | this.cidade = cidade; 33 | } 34 | 35 | public String getEstado() { 36 | return estado; 37 | } 38 | 39 | public void setEstado(String estado) { 40 | this.estado = estado; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /Exercicios/Operador ternario, decremento, estrutura for e while e clausula break/ClassificaProduto.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class ClassificaProduto { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | int codigoProduto = 0; 9 | do { 10 | System.out.print("Digite o codigo do produto: "); 11 | codigoProduto = entrada.nextInt(); 12 | 13 | if (codigoProduto != 0) { 14 | String corredor = (codigoProduto % 2 == 0) ? "\"direita\"" : "\"esquerda\""; 15 | 16 | for (int i = 8; i >= 1; i--) { 17 | if (codigoProduto % i == 0) { 18 | System.out.println("O produto de codigo: " + codigoProduto + 19 | " ficara no corredor da " + corredor + " e na gaveta " + i); 20 | 21 | break; 22 | } 23 | } 24 | } 25 | } while (codigoProduto != 0); 26 | } 27 | } -------------------------------------------------------------------------------- /Aulas/Referencia a metodos/com/algaworks/modelo/Fatura.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.modelo; 2 | 3 | public class Fatura { 4 | 5 | private String emailDevedor; 6 | private double valor; 7 | 8 | public Fatura(String emailDevedor, double valor) { 9 | this.emailDevedor = emailDevedor; 10 | this.valor = valor; 11 | } 12 | 13 | public String getEmailDevedor() { 14 | return emailDevedor; 15 | } 16 | 17 | public void setEmailDevedor(String emailDevedor) { 18 | this.emailDevedor = emailDevedor; 19 | } 20 | 21 | public double getValor() { 22 | return valor; 23 | } 24 | 25 | public void setValor(double valor) { 26 | this.valor = valor; 27 | } 28 | 29 | public String resumo() { 30 | return "Valor devido: " + this.valor; 31 | } 32 | 33 | public void atualizarStatus() { 34 | System.out.println("Atualizando status da fatura de valor R$ " + this.valor); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Desafios/Javadoc/Politico.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Representa um político do governo. 3 | * Um político é eleito pelo povo. Ele tem o poder de 4 | * influenciar a maneira como a sociedade é governada. 5 | * 6 | * @author Thiago Faria 7 | * 8 | */ 9 | public class Politico { 10 | 11 | /** 12 | * Nome completo do político. 13 | * Não é indicado usar abreviações. 14 | */ 15 | private String nome; 16 | 17 | /** 18 | * Referência para o cargo do político. 19 | * Um cargo define o salário base do político e a 20 | * função que ele deve exercer. 21 | */ 22 | private Cargo cargo; 23 | 24 | public String getNome() { 25 | return this.nome; 26 | } 27 | 28 | public void setNome(String nome) { 29 | this.nome = nome; 30 | } 31 | 32 | public Cargo getCargo() { 33 | return this.cargo; 34 | } 35 | 36 | public void setCargo(Cargo cargo) { 37 | this.cargo = cargo; 38 | } 39 | 40 | } -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/impressao/impressoras/ImpressoraEpson.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.impressao.impressoras; 2 | 3 | import com.algaworks.impressao.Impressora; 4 | import com.algaworks.impressao.Imprimivel; 5 | 6 | public class ImpressoraEpson implements Impressora { 7 | 8 | @Override 9 | public void imprimir(Imprimivel imprimivel) { 10 | System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *"); 11 | System.out.println(imprimivel.getCabecalhoPagina()); 12 | System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *"); 13 | System.out.println(imprimivel.getCorpoPagina()); 14 | System.out.println(); 15 | System.out.println("- - - - - - - - - - - - - - - - - - - - - - - -"); 16 | System.out.println("== EPSON =="); 17 | System.out.println("- - - - - - - - - - - - - - - - - - - - - - - -"); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Aulas/Salvando e lendo objetos em arquivo/com/algaworks/DeserializandoObjeto.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import java.io.FileInputStream; 4 | import java.io.IOException; 5 | import java.io.ObjectInput; 6 | import java.io.ObjectInputStream; 7 | 8 | import com.algaworks.model.Pessoa; 9 | 10 | public class DeserializandoObjeto { 11 | 12 | public static void main(String[] args) { 13 | try (ObjectInput in = new ObjectInputStream(new FileInputStream("joao.obj"))) { 14 | Pessoa p = (Pessoa) in.readObject(); 15 | System.out.println("Nome: " + p.getNome()); 16 | System.out.println("Idade: " + p.getIdade()); 17 | System.out.println("Profissão: " + p.getProfissao()); 18 | 19 | } catch (IOException e) { 20 | e.printStackTrace(); 21 | } catch (ClassNotFoundException e) { 22 | System.err.println("Erro convertendo para a classe Pessoa"); 23 | e.printStackTrace(); 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Aulas/Wrappers do java.lang/TestesClassesWrapper.java: -------------------------------------------------------------------------------- 1 | 2 | public class TestesClassesWrapper { 3 | 4 | public static void main(String[] args) { 5 | // byte, short, int, long, float, double e char 6 | // Byte, Short, Integer, Long, Float, Double e Character 7 | 8 | int x = 5; 9 | Integer i = new Integer(5); 10 | 11 | byte y = i.byteValue(); 12 | // xxxValue(); 13 | 14 | String valor = "15.5"; 15 | Float v = new Float(valor); 16 | System.out.println(v + 3); 17 | 18 | int idade = Integer.parseInt("27"); // parseXXX 19 | System.out.println("Daqui a 5 anos você terá: " + (idade + 5) + " anos."); 20 | 21 | try { 22 | double custo = Double.parseDouble("Vinte e tres reais e cinquenta centavos"); 23 | System.out.println("Custo total: " + custo); 24 | } catch (NumberFormatException e) { 25 | System.err.println("Numero inválido para conversão."); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Exercicios/Operadores logicos/MultaVeiculo.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class MultaVeiculo { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.println("Tipo do veiculo (passeio, caminhao)"); 9 | String tipoVeiculo = entrada.nextLine(); 10 | 11 | System.out.println("Velocidade maxima da via"); 12 | int velocidadeMaxima = entrada.nextInt(); 13 | 14 | System.out.println("Velocidade do veiculo"); 15 | int velocidadeVeiculo = entrada.nextInt(); 16 | 17 | // veiculo de passeio com velocidade maior que 10% da velocidade da via 18 | // e caminhao com velocidade maior que 5% deve receber multa 19 | if ((tipoVeiculo.equals("passeio") && velocidadeVeiculo > velocidadeMaxima * 1.1) 20 | || (tipoVeiculo.equals("caminhao") && velocidadeVeiculo > velocidadeMaxima * 1.05)) { 21 | System.out.println("Multa"); 22 | } 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /Aulas/XML Basico/modelo/Produto.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class Produto { 6 | 7 | private Long codigo; 8 | private String descricao; 9 | private BigDecimal valor; 10 | 11 | public Produto() { 12 | } 13 | 14 | public Produto(Long codigo, String descricao, BigDecimal valor) { 15 | this.codigo = codigo; 16 | this.descricao = descricao; 17 | this.valor = valor; 18 | } 19 | 20 | public Long getCodigo() { 21 | return codigo; 22 | } 23 | 24 | public void setCodigo(Long codigo) { 25 | this.codigo = codigo; 26 | } 27 | 28 | public String getDescricao() { 29 | return descricao; 30 | } 31 | 32 | public void setDescricao(String descricao) { 33 | this.descricao = descricao; 34 | } 35 | 36 | public BigDecimal getValor() { 37 | return valor; 38 | } 39 | 40 | public void setValor(BigDecimal valor) { 41 | this.valor = valor; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /Aulas/Trabalhando com datas/TesteCalendar.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.datas; 2 | 3 | import java.text.DateFormat; 4 | import java.text.SimpleDateFormat; 5 | import java.util.Calendar; 6 | import java.util.GregorianCalendar; 7 | 8 | public class TesteCalendar { 9 | 10 | public static void main(String[] args) { 11 | Calendar c = new GregorianCalendar(); 12 | 13 | c.set(Calendar.DAY_OF_MONTH, 31); 14 | c.set(Calendar.MONTH, 0); 15 | c.set(Calendar.YEAR, 2010); 16 | c.set(Calendar.HOUR_OF_DAY, 10); 17 | c.set(Calendar.MINUTE, 30); 18 | c.set(Calendar.SECOND, 0); 19 | 20 | DateFormat formatador = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 21 | System.out.println(formatador.format(c.getTime())); 22 | 23 | c.add(Calendar.MONTH, 1); 24 | System.out.println(formatador.format(c.getTime())); 25 | 26 | c.roll(Calendar.DAY_OF_MONTH, 1); 27 | System.out.println(formatador.format(c.getTime())); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Aulas/XML Basico/LendoCarrinho.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.io.FileInputStream; 4 | import java.io.FileNotFoundException; 5 | import java.util.List; 6 | 7 | import com.algaworks.curso.modelo.Produto; 8 | import com.thoughtworks.xstream.XStream; 9 | import com.thoughtworks.xstream.io.xml.DomDriver; 10 | 11 | public class LendoCarrinho { 12 | 13 | public static void main(String[] args) throws FileNotFoundException { 14 | XStream xstream = new XStream(new DomDriver()); 15 | xstream.alias("produto", Produto.class); 16 | xstream.aliasAttribute(Produto.class, "codigo", "codigo"); 17 | xstream.alias("carrinho", List.class); 18 | 19 | List carrinho = (List) xstream.fromXML(new FileInputStream("./carrinho.xml")); 20 | for (Produto p : carrinho) { 21 | System.out.println(p.getCodigo()); 22 | System.out.println(p.getDescricao()); 23 | System.out.println(p.getValor()); 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Aulas/XML Basico/SalvandoProduto.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileOutputStream; 5 | import java.io.OutputStream; 6 | import java.math.BigDecimal; 7 | 8 | import com.algaworks.curso.modelo.Produto; 9 | import com.thoughtworks.xstream.XStream; 10 | import com.thoughtworks.xstream.io.xml.DomDriver; 11 | 12 | public class SalvandoProduto { 13 | 14 | public static void main(String[] args) throws FileNotFoundException { 15 | XStream xstream = new XStream(new DomDriver()); 16 | xstream.alias("produto", Produto.class); 17 | xstream.aliasAttribute(Produto.class, "codigo", "codigo"); 18 | 19 | Produto sabonete = new Produto(1L, "sabonete", new BigDecimal("2.30")); 20 | 21 | String xml = xstream.toXML(sabonete); 22 | System.out.println(xml); 23 | 24 | OutputStream os = new FileOutputStream("./produto2.xml"); 25 | xstream.toXML(sabonete, os); 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Aulas/JDBC/cadastro-cliente/src/com/algaworks/curso/SalvaCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import javax.swing.JOptionPane; 4 | import javax.swing.UIManager; 5 | 6 | import com.algaworks.curso.dao.ClienteDAO; 7 | import com.algaworks.curso.dao.DAOFactory; 8 | import com.algaworks.curso.modelo.Cliente; 9 | 10 | public class SalvaCliente { 11 | 12 | public static void main(String[] args) throws Exception { 13 | UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 14 | 15 | Cliente cliente = new Cliente(); 16 | 17 | String nome = JOptionPane.showInputDialog(null, "Nome do cliente" 18 | , "Cadastro de cliente", JOptionPane.QUESTION_MESSAGE); 19 | 20 | if (nome != null) { 21 | cliente.setNome(nome); 22 | 23 | ClienteDAO clienteDAO = DAOFactory.getDAOFactory().getClienteDAO(); 24 | clienteDAO.salvar(cliente); 25 | System.out.println("Cliente salvo com sucesso."); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Aulas/Testes de unidade com JUnit/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 4.0.0 5 | 6 | com.algaworks.curso 7 | exemplo-junit 8 | 1.0.0-SNAPSHOT 9 | 10 | 11 | 12 | 13 | maven-compiler-plugin 14 | 3.1 15 | 16 | 1.7 17 | 1.7 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | junit 26 | junit 27 | 4.11 28 | test 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Aulas/Enviando objetos na rede/Client.java: -------------------------------------------------------------------------------- 1 | import java.io.DataInputStream; 2 | import java.io.InputStream; 3 | import java.io.ObjectOutput; 4 | import java.io.ObjectOutputStream; 5 | import java.io.OutputStream; 6 | import java.net.Socket; 7 | 8 | 9 | public class Client { 10 | 11 | public static void main(String[] args) throws Exception { 12 | Socket socket = new Socket("192.168.0.119", 3333); 13 | 14 | OutputStream saida = socket.getOutputStream(); 15 | ObjectOutput objectOutput = new ObjectOutputStream(saida); 16 | 17 | Pedido pedido = new Pedido(); 18 | pedido.setCodigo(2L); 19 | pedido.setDescricao("Pasta de dente"); 20 | pedido.setQuantidade(2); 21 | 22 | objectOutput.writeObject(pedido); 23 | 24 | InputStream entrada = socket.getInputStream(); 25 | DataInputStream dataInput = new DataInputStream(entrada); 26 | System.out.println("Recebeu do servidor: " + dataInput.readUTF()); 27 | 28 | socket.close(); 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Aulas/Metodos da classe String/ExemplosClasseString.java: -------------------------------------------------------------------------------- 1 | 2 | public class ExemplosClasseString { 3 | 4 | public static void main(String[] args) { 5 | String nome = "Pedro"; 6 | System.out.println(nome.toUpperCase()); 7 | System.out.println(nome); 8 | 9 | nome = nome.toUpperCase(); 10 | System.out.println(nome); 11 | 12 | //------------------------------------------------- 13 | 14 | String s1 = "Pedro"; 15 | String s2 = "Pedro"; 16 | System.out.println("s1 == s2? " + (s1 == s2)); 17 | 18 | String s3 = new String("Pedro"); 19 | System.out.println("s3 == s1? " + (s3 == s1)); 20 | 21 | System.out.println("s1.equals(s2)? " + (s1.equals(s2))); 22 | System.out.println("s3.equals(s1)? " + (s3.equals(s1))); 23 | 24 | String s4 = "PeDrO"; 25 | System.out.println("s1.equals(s4)? " + (s1.equals(s4))); 26 | System.out.println("s1.equalsIgnoreCase(s4)? " + (s1.equalsIgnoreCase(s4))); 27 | } 28 | 29 | } 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Aulas/Acessando atributos de objetos/Principal.java: -------------------------------------------------------------------------------- 1 | 2 | public class Principal { 3 | 4 | public static void main(String[] args) { 5 | Carro meuCarro = new Carro(); 6 | meuCarro.fabricante = "Fiat"; 7 | meuCarro.modelo = "Palio"; 8 | meuCarro.anoDeFabricacao = 2011; 9 | meuCarro.cor = "Prata"; 10 | 11 | Carro seuCarro = new Carro(); 12 | seuCarro.fabricante = "Honda"; 13 | seuCarro.modelo = "Civic"; 14 | seuCarro.anoDeFabricacao = 2009; 15 | seuCarro.cor = "Preto"; 16 | 17 | System.out.println("Meu carro"); 18 | System.out.println("-----------------------"); 19 | System.out.println("Modelo: " + meuCarro.modelo); 20 | System.out.println("Ano: " + meuCarro.anoDeFabricacao); 21 | 22 | System.out.println(); 23 | System.out.println("Seu carro"); 24 | System.out.println("-----------------------"); 25 | System.out.println("Modelo: " + seuCarro.modelo); 26 | System.out.println("Ano: " + seuCarro.anoDeFabricacao); 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Aulas/Introducao a lambda/com/algaworks/modelo/Fatura.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.modelo; 2 | 3 | public class Fatura { 4 | 5 | private String emailDevedor; 6 | private double valor; 7 | private boolean emailEnviado; 8 | 9 | public Fatura(String emailDevedor, double valor) { 10 | this.emailDevedor = emailDevedor; 11 | this.valor = valor; 12 | } 13 | 14 | public String getEmailDevedor() { 15 | return emailDevedor; 16 | } 17 | 18 | public void setEmailDevedor(String emailDevedor) { 19 | this.emailDevedor = emailDevedor; 20 | } 21 | 22 | public double getValor() { 23 | return valor; 24 | } 25 | 26 | public void setValor(double valor) { 27 | this.valor = valor; 28 | } 29 | 30 | public String resumo() { 31 | return "Valor devido: " + this.valor; 32 | } 33 | 34 | public boolean isEmailEnviado() { 35 | return emailEnviado; 36 | } 37 | 38 | public void setEmailEnviado(boolean emailEnviado) { 39 | this.emailEnviado = emailEnviado; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /Aulas/Criando uma aplicacao de chat/cliente/com/algaworks/chat/cliente/thread/RecebeMensagemServidor.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.chat.cliente.thread; 2 | 3 | import java.io.DataInput; 4 | import java.io.DataInputStream; 5 | import java.io.InputStream; 6 | import java.net.Socket; 7 | 8 | import com.algaworks.chat.cliente.gui.JanelaGui; 9 | 10 | public class RecebeMensagemServidor implements Runnable { 11 | 12 | private Socket socket; 13 | private JanelaGui janela; 14 | 15 | public RecebeMensagemServidor(Socket socket, JanelaGui janela) { 16 | this.socket = socket; 17 | this.janela = janela; 18 | } 19 | 20 | @Override 21 | public void run() { 22 | while (true) { 23 | try { 24 | InputStream is = this.socket.getInputStream(); 25 | DataInput dis = new DataInputStream(is); 26 | String msgRecebida = dis.readUTF(); 27 | 28 | janela.adicionaMensagem(msgRecebida); 29 | } catch (Exception e) { 30 | e.printStackTrace(); 31 | } 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 2/com/algaworks/model/Carro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.Year; 4 | 5 | public class Carro { 6 | 7 | private String modelo; 8 | private double valorDiaria; 9 | private Year anoFabricacao; 10 | 11 | public Carro(String modelo, double valorDiaria, Year anoFabricacao) { 12 | this.modelo = modelo; 13 | this.valorDiaria = valorDiaria; 14 | this.anoFabricacao = anoFabricacao; 15 | } 16 | 17 | public String getModelo() { 18 | return modelo; 19 | } 20 | 21 | public void setModelo(String modelo) { 22 | this.modelo = modelo; 23 | } 24 | 25 | public double getValorDiaria() { 26 | return valorDiaria; 27 | } 28 | 29 | public void setValorDiaria(double valorDiaria) { 30 | this.valorDiaria = valorDiaria; 31 | } 32 | 33 | public Year getAnoFabricacao() { 34 | return anoFabricacao; 35 | } 36 | 37 | public void setAnoFabricacao(Year anoFabricacao) { 38 | this.anoFabricacao = anoFabricacao; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 3/com/algaworks/model/Carro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.Year; 4 | 5 | public class Carro { 6 | 7 | private String modelo; 8 | private double valorDiaria; 9 | private Year anoFabricacao; 10 | 11 | public Carro(String modelo, double valorDiaria, Year anoFabricacao) { 12 | this.modelo = modelo; 13 | this.valorDiaria = valorDiaria; 14 | this.anoFabricacao = anoFabricacao; 15 | } 16 | 17 | public String getModelo() { 18 | return modelo; 19 | } 20 | 21 | public void setModelo(String modelo) { 22 | this.modelo = modelo; 23 | } 24 | 25 | public double getValorDiaria() { 26 | return valorDiaria; 27 | } 28 | 29 | public void setValorDiaria(double valorDiaria) { 30 | this.valorDiaria = valorDiaria; 31 | } 32 | 33 | public Year getAnoFabricacao() { 34 | return anoFabricacao; 35 | } 36 | 37 | public void setAnoFabricacao(Year anoFabricacao) { 38 | this.anoFabricacao = anoFabricacao; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 4/com/algaworks/model/Carro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.Year; 4 | 5 | public class Carro { 6 | 7 | private String modelo; 8 | private double valorDiaria; 9 | private Year anoFabricacao; 10 | 11 | public Carro(String modelo, double valorDiaria, Year anoFabricacao) { 12 | this.modelo = modelo; 13 | this.valorDiaria = valorDiaria; 14 | this.anoFabricacao = anoFabricacao; 15 | } 16 | 17 | public String getModelo() { 18 | return modelo; 19 | } 20 | 21 | public void setModelo(String modelo) { 22 | this.modelo = modelo; 23 | } 24 | 25 | public double getValorDiaria() { 26 | return valorDiaria; 27 | } 28 | 29 | public void setValorDiaria(double valorDiaria) { 30 | this.valorDiaria = valorDiaria; 31 | } 32 | 33 | public Year getAnoFabricacao() { 34 | return anoFabricacao; 35 | } 36 | 37 | public void setAnoFabricacao(Year anoFabricacao) { 38 | this.anoFabricacao = anoFabricacao; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /Desafios/Javadoc/Cargo.java: -------------------------------------------------------------------------------- 1 | import java.math.BigDecimal; 2 | 3 | /** 4 | * Representa o cargo de um político. 5 | * Um cargo possui um salário fixo, o qual é pago sem contar com as 6 | * verbas e auxílios extraordinários. 7 | * 8 | * @author Thiago Faria 9 | * 10 | */ 11 | public class Cargo { 12 | 13 | /** 14 | * Descrição do cargo. Um nome que define a função do político, 15 | * como por exemplo: vereador, deputado estadual, etc. 16 | */ 17 | private String descricao; 18 | 19 | /** 20 | * O valor do salário dos políticos que possuem o cargo. 21 | * Não inclui verbas e auxílios extraordinários. 22 | */ 23 | private BigDecimal salario; 24 | 25 | public String getDescricao() { 26 | return this.descricao; 27 | } 28 | 29 | public void setDescricao(String descricao) { 30 | this.descricao = descricao; 31 | } 32 | 33 | public BigDecimal getSalario() { 34 | return this.salario; 35 | } 36 | 37 | public void setSalario(BigDecimal salario) { 38 | this.salario = salario; 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /Aulas/Estruturas de controle if, else if e else/EntradaDeDados.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class EntradaDeDados { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Nome: "); 9 | String nome = entrada.nextLine(); 10 | 11 | System.out.print("Peso: "); 12 | int peso = entrada.nextInt(); 13 | 14 | System.out.print("Altura: "); 15 | double altura = entrada.nextDouble(); 16 | 17 | double imc = peso / (altura * altura); 18 | 19 | System.out.println("IMC de " + nome + ": " + imc); 20 | 21 | if (imc < 18.5) { 22 | System.out.println("Abaixo do peso ideal"); 23 | } else if (imc < 25) { 24 | System.out.println("Peso ideal"); 25 | } else if (imc < 30) { 26 | System.out.println("Acima do peso"); 27 | } else if (imc < 40) { 28 | System.out.println("Obesidade grau 1 ou 2"); 29 | } else { 30 | System.out.println("Obesidade grau 3"); 31 | System.out.println("Muito cuidado com o seu peso"); 32 | } 33 | 34 | } 35 | } -------------------------------------------------------------------------------- /Desafios/Wrappers e boxing/Televisor.java: -------------------------------------------------------------------------------- 1 | class Televisor { 2 | 3 | Integer canal = 130; 4 | Integer volume = 20; 5 | 6 | void mudarCanal(Integer novoCanal) { 7 | if (canal == novoCanal) { 8 | System.out.println("Novo canal é também o canal atual."); 9 | } else { 10 | canal = novoCanal; 11 | System.out.println("Canal alterado para " + canal); 12 | } 13 | } 14 | 15 | void mudarVolume(Integer novoVolume) { 16 | if (novoVolume == volume) { 17 | System.out.println("Novo volume é também o volume atual."); 18 | } else { 19 | volume = new Integer(novoVolume.byteValue()); 20 | System.out.println("Volume alterado para " + volume); 21 | } 22 | } 23 | 24 | // Estamos aproveitando a classe Televisor para fazer nosso teste 25 | public static void main(String[] args) { 26 | Televisor tv = new Televisor(); 27 | 28 | // Não deveria mudar o volume e canal 29 | tv.mudarVolume(20); 30 | tv.mudarCanal(130); 31 | 32 | // Deveria mudar o volume e canal 33 | tv.mudarVolume(300); 34 | tv.mudarCanal(10); 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /Aulas/Testes de unidade com JUnit/src/test/java/com/algaworks/FibonacciTest.java: -------------------------------------------------------------------------------- 1 | package com.algaworks; 2 | 3 | import static org.junit.Assert.assertEquals; 4 | 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | 8 | public class FibonacciTest { 9 | 10 | private Fibonacci fibonacci; 11 | 12 | @Before 13 | public void init() { 14 | fibonacci = new Fibonacci(); 15 | } 16 | 17 | @Test 18 | public void deve_retornar_fibonacci_posicao_1() { 19 | // 1. Cenário 20 | long posicao = 1L; 21 | 22 | // 2. Ação 23 | long valor = fibonacci.calcular(posicao); 24 | 25 | // 3. Validação 26 | assertEquals(1L, valor); 27 | } 28 | 29 | @Test 30 | public void deve_retornar_fibonacci_posicao_2() { 31 | long posicao = 2L; 32 | 33 | long valor = fibonacci.calcular(posicao); 34 | 35 | assertEquals(1L, valor); 36 | } 37 | 38 | @Test 39 | public void deve_retornar_fibonacci_posicao_0() { 40 | long posicao = 0L; 41 | 42 | long valor = fibonacci.calcular(posicao); 43 | 44 | assertEquals(0L, valor); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /Aulas/XML Basico/SalvandoCarrinho.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileOutputStream; 5 | import java.io.OutputStream; 6 | import java.math.BigDecimal; 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import com.algaworks.curso.modelo.Produto; 11 | import com.thoughtworks.xstream.XStream; 12 | import com.thoughtworks.xstream.io.xml.DomDriver; 13 | 14 | public class SalvandoCarrinho { 15 | 16 | public static void main(String[] args) throws FileNotFoundException { 17 | List carrinho = new ArrayList<>(); 18 | carrinho.add(new Produto(1L, "sabonete", new BigDecimal("2.30"))); 19 | carrinho.add(new Produto(2L, "shampoo", new BigDecimal("8.20"))); 20 | 21 | XStream xstream = new XStream(new DomDriver()); 22 | xstream.alias("produto", Produto.class); 23 | xstream.aliasAttribute(Produto.class, "codigo", "codigo"); 24 | xstream.alias("carrinho", List.class); 25 | 26 | OutputStream os = new FileOutputStream("./carrinho.xml"); 27 | xstream.toXML(carrinho, os); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Desafios/Datas/CalculadoraGravidez.java: -------------------------------------------------------------------------------- 1 | import java.util.Date; 2 | import java.util.Calendar; 3 | import java.util.GregorianCalendar; 4 | 5 | public class CalculadoraGravidez { 6 | 7 | private Date dataUltimoPeriodoMenstrual; 8 | 9 | public CalculadoraGravidez(Date dataUltimoPeriodoMenstrual) { 10 | this.dataUltimoPeriodoMenstrual = dataUltimoPeriodoMenstrual; 11 | } 12 | 13 | private Calendar converterDateParaCalendar(Date data) { 14 | Calendar calendar = new GregorianCalendar(); 15 | calendar.setTime(data); 16 | return calendar; 17 | } 18 | 19 | public Date calcularDataEstimadaConcepcao() { 20 | Calendar dataEstimadaDaConcepcao = this.converterDateParaCalendar(this.dataUltimoPeriodoMenstrual); 21 | dataEstimadaDaConcepcao.add(Calendar.WEEK_OF_YEAR, 2); 22 | 23 | return dataEstimadaDaConcepcao.getTime(); 24 | } 25 | 26 | public Date calcularDataEstimadaParto() { 27 | Calendar dataEstimadaParto = this.converterDateParaCalendar(this.dataUltimoPeriodoMenstrual); 28 | dataEstimadaParto.add(Calendar.WEEK_OF_YEAR, 40); 29 | 30 | return dataEstimadaParto.getTime(); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /Aulas/Equals e HashCode/Aluno.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.fjoo.collections; 2 | 3 | public class Aluno { 4 | 5 | private String nome; 6 | private int idade; 7 | 8 | public Aluno(String nome) { 9 | this.nome = nome; 10 | } 11 | 12 | public String getNome() { 13 | return nome; 14 | } 15 | public void setNome(String nome) { 16 | this.nome = nome; 17 | } 18 | 19 | public int getIdade() { 20 | return idade; 21 | } 22 | public void setIdade(int idade) { 23 | this.idade = idade; 24 | } 25 | 26 | @Override 27 | public int hashCode() { 28 | final int prime = 31; 29 | int result = 1; 30 | result = prime * result + ((nome == null) ? 0 : nome.hashCode()); 31 | return result; 32 | } 33 | 34 | @Override 35 | public boolean equals(Object obj) { 36 | if (this == obj) 37 | return true; 38 | if (obj == null) 39 | return false; 40 | if (getClass() != obj.getClass()) 41 | return false; 42 | Aluno other = (Aluno) obj; 43 | if (nome == null) { 44 | if (other.nome != null) 45 | return false; 46 | } else if (!nome.equals(other.nome)) 47 | return false; 48 | return true; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /Aulas/IO Classe Scanner/LendoArquivoItensPedido.java: -------------------------------------------------------------------------------- 1 | import java.io.BufferedReader; 2 | import java.io.FileReader; 3 | import java.io.IOException; 4 | import java.text.NumberFormat; 5 | import java.util.Locale; 6 | import java.util.Scanner; 7 | 8 | 9 | public class LendoArquivoItensPedido { 10 | 11 | public static void main(String[] args) { 12 | try (Scanner scanner = new Scanner(new BufferedReader(new FileReader("itens_pedido.txt")))) { 13 | scanner.useDelimiter(";"); 14 | Locale localeBrasil = new Locale("pt", "BR"); 15 | scanner.useLocale(localeBrasil); 16 | 17 | NumberFormat formatador = NumberFormat.getCurrencyInstance(localeBrasil); 18 | 19 | while (scanner.hasNext()) { 20 | String produto = scanner.next(); 21 | int quantidade = scanner.nextInt(); 22 | double valor = scanner.nextDouble(); 23 | scanner.nextLine(); 24 | 25 | System.out.printf("Produto: %s. Quantidade: %d. Por: %s\n", 26 | produto, quantidade, formatador.format(valor)); 27 | } 28 | } catch (IOException e) { 29 | System.err.println("Erro abrindo arquivo. Erro: " + e.getMessage()); 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Aulas/JOptionPane/ExemploJOptionPane2.java: -------------------------------------------------------------------------------- 1 | import java.net.URL; 2 | 3 | import javax.swing.Icon; 4 | import javax.swing.ImageIcon; 5 | import javax.swing.JOptionPane; 6 | import javax.swing.UIManager; 7 | 8 | 9 | public class ExemploJOptionPane2 { 10 | 11 | public static void main(String[] args) throws Exception { 12 | UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 13 | 14 | JOptionPane.showMessageDialog(null, "Seu cadastro foi realizado com sucesso!"); 15 | 16 | JOptionPane.showMessageDialog(null, "Atenção - e-mail não informado.", "Atenção" 17 | , JOptionPane.WARNING_MESSAGE); 18 | 19 | JOptionPane.showMessageDialog(null, "Favor informar o CPF", "Erro" 20 | , JOptionPane.ERROR_MESSAGE); 21 | 22 | JOptionPane.showMessageDialog(null, "Obrigado", "Obrigado", JOptionPane.PLAIN_MESSAGE); 23 | 24 | URL url = ExemploJOptionPane2.class.getResource("algaworks.png"); 25 | Icon icone = new ImageIcon(url); 26 | 27 | JOptionPane.showMessageDialog(null, "Obrigado por escolher a AlgaWokrs", "AlgaWorks" 28 | , JOptionPane.INFORMATION_MESSAGE, icone); 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Aulas/Operadores logicos/OperadoresLogicos.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class OperadoresLogicos { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | System.out.print("Nome: "); 9 | String nome = entrada.nextLine(); 10 | 11 | System.out.print("Peso: "); 12 | int peso = entrada.nextInt(); 13 | 14 | System.out.print("Altura: "); 15 | double altura = entrada.nextDouble(); 16 | 17 | System.out.print("Sexo (1 para 'M' ou outro numero para 'F'): "); 18 | char sexo = entrada.nextShort() == 1 ? 'M' : 'F'; 19 | 20 | double imc = peso / (altura * altura); 21 | 22 | // _____________A____________ || ______________B__________ 23 | if ((sexo == 'F' && imc < 19.1) || (sexo == 'M' && imc < 20.7)) { 24 | System.out.println("Abaixo do peso."); 25 | } else if ((sexo == 'F' && imc <= 25.8) || (sexo == 'M' && imc < 26.4)) { 26 | System.out.println("Peso ideal"); 27 | } else if ((sexo == 'F' && imc <= 27.3) || (sexo == 'M' && imc < 27.8)) { 28 | System.out.println("Um pouco acima do peso"); 29 | } // contina.. 30 | 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /Aulas/Arquivo properties/com/algaworks/curso/LendoArquivoProperties.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.io.FileInputStream; 4 | import java.util.Properties; 5 | 6 | public class LendoArquivoProperties { 7 | 8 | public static void main(String[] args) throws Exception { 9 | Properties prop = new Properties(); 10 | prop.load(new FileInputStream("./config/config.properties")); 11 | 12 | // Conectar no banco de dados... 13 | String url = prop.getProperty("banco.dados.url"); 14 | String usuario = prop.getProperty("banco.dados.usuario"); 15 | String senha = prop.getProperty("banco.dados.senha"); 16 | 17 | System.out.printf("Conectando no banco de dados de url: %s e usuário: %s\n", url, usuario); 18 | 19 | try { 20 | // Imagina que isso veio de uma configuração errada do banco de dados. 21 | int x = 5 / 0; 22 | } catch (Exception e) { 23 | // Se acontecer algum erro, você precisa informar o administrador por e-mail 24 | String email = prop.getProperty("email.admin"); 25 | System.err.printf("Enviando email para: %s informando o erro: %s", email, e.getMessage()); 26 | } 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/caixa/Compra.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.caixa; 2 | 3 | import com.algaworks.impressao.Imprimivel; 4 | import com.algaworks.pagamento.Autorizavel; 5 | 6 | public class Compra implements Autorizavel, Imprimivel { 7 | 8 | private double valorTotal; 9 | private String produto; 10 | private String nomeCliente; 11 | 12 | @Override 13 | public double getValorTotal() { 14 | return this.valorTotal; 15 | } 16 | public void setValorTotal(double valorTotal) { 17 | this.valorTotal = valorTotal; 18 | } 19 | 20 | public String getProduto() { 21 | return produto; 22 | } 23 | 24 | public void setProduto(String produto) { 25 | this.produto = produto; 26 | } 27 | 28 | public String getNomeCliente() { 29 | return nomeCliente; 30 | } 31 | 32 | public void setNomeCliente(String nomeCliente) { 33 | this.nomeCliente = nomeCliente; 34 | } 35 | 36 | @Override 37 | public String getCabecalhoPagina() { 38 | return this.getProduto() + " = " + this.getValorTotal(); 39 | } 40 | 41 | @Override 42 | public String getCorpoPagina() { 43 | return this.getNomeCliente(); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /Aulas/Interfaces/exemplo-interfaces/src/com/algaworks/teste/TesteCheckout.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.teste; 2 | 3 | import com.algaworks.caixa.Checkout; 4 | import com.algaworks.caixa.Compra; 5 | import com.algaworks.impressao.Impressora; 6 | import com.algaworks.impressao.impressoras.ImpressoraEpson; 7 | import com.algaworks.impressao.impressoras.ImpressoraHP; 8 | import com.algaworks.pagamento.Cartao; 9 | import com.algaworks.pagamento.Operadora; 10 | import com.algaworks.pagamento.operadoras.Cielo; 11 | import com.algaworks.pagamento.operadoras.Redecard; 12 | 13 | public class TesteCheckout { 14 | 15 | public static void main(String[] args) { 16 | Operadora operadora = new Redecard(); 17 | Impressora impressora = new ImpressoraHP(); 18 | 19 | Cartao cartao = new Cartao(); 20 | cartao.setNomeTitular("João M Couves"); 21 | cartao.setNumeroCartao("456"); 22 | 23 | Compra compra = new Compra(); 24 | compra.setNomeCliente("João Mendonça Couves"); 25 | compra.setProduto("Sabonete"); 26 | compra.setValorTotal(500); 27 | 28 | Checkout checkout = new Checkout(operadora, impressora); 29 | checkout.fecharCompra(compra, cartao); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Aulas/JSON Basico/com/algaworks/curso/modelo/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | import java.util.List; 4 | 5 | public class Cliente { 6 | 7 | private String nome; 8 | private int idade; 9 | private Endereco endereco; 10 | private List telefones; 11 | 12 | public Cliente() { 13 | 14 | } 15 | 16 | public Cliente(String nome, int idade, Endereco endereco, 17 | List telefones) { 18 | this.nome = nome; 19 | this.idade = idade; 20 | this.endereco = endereco; 21 | this.telefones = telefones; 22 | } 23 | 24 | public String getNome() { 25 | return nome; 26 | } 27 | 28 | public void setNome(String nome) { 29 | this.nome = nome; 30 | } 31 | 32 | public int getIdade() { 33 | return idade; 34 | } 35 | 36 | public void setIdade(int idade) { 37 | this.idade = idade; 38 | } 39 | 40 | public Endereco getEndereco() { 41 | return endereco; 42 | } 43 | 44 | public void setEndereco(Endereco endereco) { 45 | this.endereco = endereco; 46 | } 47 | 48 | public List getTelefones() { 49 | return telefones; 50 | } 51 | 52 | public void setTelefones(List telefones) { 53 | this.telefones = telefones; 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /Aulas/Enviando objetos na rede/Server.java: -------------------------------------------------------------------------------- 1 | import java.io.DataOutput; 2 | import java.io.DataOutputStream; 3 | import java.io.InputStream; 4 | import java.io.ObjectInputStream; 5 | import java.io.OutputStream; 6 | import java.net.ServerSocket; 7 | import java.net.Socket; 8 | 9 | public class Server { 10 | 11 | public static void main(String[] args) throws Exception { 12 | 13 | ServerSocket server = new ServerSocket(3333); 14 | 15 | System.out.println("Aguardando conexão..."); 16 | Socket socket = server.accept(); // Ele para aqui e aguarda conexões 17 | System.out.println("Conectado a: " + socket.getRemoteSocketAddress()); 18 | 19 | InputStream entrada = socket.getInputStream(); 20 | ObjectInputStream objectStream = new ObjectInputStream(entrada); 21 | 22 | Pedido pedido = (Pedido) objectStream.readObject(); 23 | System.out.println("Codigo: " + pedido.getCodigo()); 24 | System.out.println("Descrição: " + pedido.getDescricao()); 25 | System.out.println("Quantidade: " + pedido.getQuantidade()); 26 | 27 | OutputStream saida = socket.getOutputStream(); 28 | DataOutput dataOutput = new DataOutputStream(saida); 29 | dataOutput.writeUTF("Recebido com sucesso!"); 30 | 31 | server.close(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /Desafios/Pacotes e enumeracoes/Principal.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro; 2 | 3 | import com.algaworks.cursojava.financeiro.modelo.ContaPagar; 4 | import com.algaworks.cursojava.financeiro.modelo.Fornecedor; 5 | 6 | public class Principal { 7 | 8 | public static void main(String[] args) { 9 | Fornecedor imobiliaria = new Fornecedor(); 10 | imobiliaria.setNome("Casa & Cia Negócios Imobiliários"); 11 | 12 | Fornecedor mercado = new Fornecedor(); 13 | mercado.setNome("Mercado do João"); 14 | 15 | ContaPagar conta1 = new ContaPagar(); 16 | conta1.setDescricao("Aluguel da matriz"); 17 | conta1.setValor(1230d); 18 | conta1.setDataVencimento("10/05/2012"); 19 | conta1.setFornecedor(imobiliaria); 20 | 21 | ContaPagar conta2 = new ContaPagar(mercado, "Compras do mês", 390d, "19/05/2012"); 22 | 23 | ContaPagar conta3 = new ContaPagar(mercado, "Aluguel da filial", 700d, "11/05/2012"); 24 | 25 | // pagamento de conta pendente (ok, deve funcionar) 26 | conta1.pagar(); 27 | 28 | // tentativa de pagar uma conta cancelada (não deve aceitar pagamento) 29 | conta2.cancelar(); 30 | conta2.pagar(); 31 | 32 | // tentativa de pagar uma conta duas vezes (não deve aceitar na segunda vez) 33 | conta3.pagar(); 34 | conta3.pagar(); 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /Aulas/JSON Basico/com/algaworks/curso/GerandoJson.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.algaworks.curso.modelo.Cliente; 7 | import com.algaworks.curso.modelo.Endereco; 8 | import com.algaworks.curso.modelo.Telefone; 9 | import com.google.gson.Gson; 10 | 11 | public class GerandoJson { 12 | 13 | public static void main(String[] args) { 14 | Endereco endereco = new Endereco("Rua das Águas, 10", "São Paulo", "SP"); 15 | 16 | Telefone residencial = new Telefone("RESIDENCIAL", "11 3333-1111"); 17 | Telefone comercial = new Telefone("COMERCIAL", "11 3222-2222"); 18 | List telefones = new ArrayList<>(); 19 | telefones.add(residencial); 20 | telefones.add(comercial); 21 | 22 | Cliente cliente = new Cliente("João Silva", 28, endereco, telefones); 23 | 24 | Gson gson = new Gson(); 25 | String json = gson.toJson(cliente); 26 | 27 | System.out.println(json); 28 | 29 | System.out.println(); 30 | System.out.println("--------------------------------------------------"); 31 | System.out.println(); 32 | 33 | Cliente c2 = gson.fromJson(json, Cliente.class); 34 | 35 | System.out.println(c2.getNome()); 36 | System.out.println(c2.getTelefones().get(0).getNumero()); 37 | 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /Aulas/Criando uma aplicacao de chat/servidor/com/algaworks/chat/servidor/Servidor.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.chat.servidor; 2 | 3 | import java.net.ServerSocket; 4 | import java.net.Socket; 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | import com.algaworks.chat.servidor.thread.RecebeMensagemCliente; 9 | 10 | public class Servidor { 11 | 12 | private List clientes = new ArrayList<>(); 13 | 14 | public static void main(String[] args) { 15 | Servidor servidor = new Servidor(); 16 | servidor.aguardarConexoes(); 17 | } 18 | 19 | public void aguardarConexoes() { 20 | try (ServerSocket server = new ServerSocket(3333)) { 21 | 22 | while (true) { 23 | System.out.println("Aguardando conexões..."); 24 | Socket socket = server.accept(); 25 | 26 | RecebeMensagemCliente recebeMensagemCliente = new RecebeMensagemCliente(socket, this); 27 | new Thread(recebeMensagemCliente).start(); 28 | 29 | this.clientes.add(recebeMensagemCliente); 30 | System.out.println("Novo cliente conectado."); 31 | } 32 | } catch (Exception e) { 33 | e.printStackTrace(); 34 | } 35 | } 36 | 37 | public void enviarMensagensClientes(String mensagem) { 38 | for (RecebeMensagemCliente cliente : this.clientes) { 39 | cliente.enviarMensagem(mensagem); 40 | } 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /Aulas/Maven/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 4.0.0 5 | 6 | com.algaworks.curso 7 | exemplo-maven 8 | 1.0.0-SNAPSHOT 9 | 10 | 11 | 12 | 13 | maven-compiler-plugin 14 | 3.1 15 | 16 | 1.7 17 | 1.7 18 | 19 | 20 | 21 | 22 | org.codehaus.mojo 23 | exec-maven-plugin 24 | 1.3 25 | 26 | 27 | 28 | java 29 | 30 | 31 | 32 | 33 | com.algaworks.curso.Main 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | org.apache.commons 42 | commons-lang3 43 | 3.3.2 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Desafios/Classe java.lang.Math/MegaSena.java: -------------------------------------------------------------------------------- 1 | public class MegaSena { 2 | 3 | public static final int NUMERO_MAXIMO = 60; 4 | public static final int QUANTIDADE_NUMEROS = 6; 5 | 6 | private int[] numerosSorteados; 7 | 8 | public void sortear() { 9 | this.numerosSorteados = new int[QUANTIDADE_NUMEROS]; 10 | 11 | for (int i = 1; i <= QUANTIDADE_NUMEROS; i++) { 12 | // gera número aleatório, arredonda e converte para inteiro 13 | int numeroSorteado = (int) Math.round(Math.random() * NUMERO_MAXIMO); 14 | 15 | // verifica se número ainda não foi sorteado e não é 0 16 | if (!this.jaFoiSorteado(numeroSorteado) && numeroSorteado != 0) { 17 | // adiciona o número sorteado no array de números sorteados 18 | this.numerosSorteados[i-1] = numeroSorteado; 19 | } else { 20 | // decrementa i para refazer o sorteio da mesma posição 21 | i--; 22 | } 23 | } 24 | } 25 | 26 | public void exibirNumeros() { 27 | for (int numeroSorteado : numerosSorteados) { 28 | System.out.print(numeroSorteado + " "); 29 | } 30 | // quebra de linha 31 | System.out.println(); 32 | } 33 | 34 | private boolean jaFoiSorteado(int numero) { 35 | boolean resultado = false; 36 | for (int i = 0; i < this.numerosSorteados.length; i++) { 37 | if (this.numerosSorteados[i] == numero) { 38 | resultado = true; 39 | break; 40 | } 41 | } 42 | return resultado; 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /Aulas/Criando uma aplicacao de chat/cliente/com/algaworks/chat/cliente/Cliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.chat.cliente; 2 | 3 | import java.io.DataOutput; 4 | import java.io.DataOutputStream; 5 | import java.io.OutputStream; 6 | import java.net.Socket; 7 | 8 | import com.algaworks.chat.cliente.gui.JanelaGui; 9 | import com.algaworks.chat.cliente.thread.RecebeMensagemServidor; 10 | 11 | public class Cliente extends JanelaGui { 12 | 13 | private Socket socket; 14 | 15 | public static void main(String[] args) { 16 | new Cliente(); 17 | } 18 | 19 | @Override 20 | protected boolean conectar() { 21 | System.out.println("Conectando no servidor..."); 22 | try { 23 | this.socket = new Socket("127.0.0.1", 3333); 24 | 25 | RecebeMensagemServidor recebeMensagemServidor = new RecebeMensagemServidor(this.socket, this); 26 | new Thread(recebeMensagemServidor).start(); 27 | 28 | } catch (Exception e) { 29 | e.printStackTrace(); 30 | return false; 31 | } 32 | 33 | return true; 34 | } 35 | 36 | @Override 37 | protected void sendMessage(String mensagem) { 38 | System.out.println("Envia a mensagem via socket para o servidor - " + mensagem); 39 | 40 | try { 41 | OutputStream os = this.socket.getOutputStream(); 42 | DataOutput dos = new DataOutputStream(os); 43 | dos.writeUTF(mensagem); 44 | } catch (Exception e) { 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/ContaPagar.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class ContaPagar extends Conta { 4 | 5 | private Fornecedor fornecedor; 6 | 7 | public ContaPagar() { 8 | } 9 | 10 | public ContaPagar(Fornecedor fornecedor, String descricao, Double valor, String dataVencimento) { 11 | this.fornecedor = fornecedor; 12 | this.setDescricao(descricao); 13 | this.setValor(valor); 14 | this.setDataVencimento(dataVencimento); 15 | } 16 | 17 | public void pagar() { 18 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 19 | System.out.println("Não pode pagar uma conta que já está paga: " 20 | + this.getDescricao() + "."); 21 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 22 | System.out.println("Não pode pagar uma conta que está cancelada: " 23 | + this.getDescricao() + "."); 24 | } else { 25 | System.out.println("Pagando conta " + this.getDescricao() + " no valor de " 26 | + this.getValor() + " e vencimento em " + this.getDataVencimento() 27 | + " do fornecedor " + this.getFornecedor().getNome() + "."); 28 | 29 | // altera situação da conta para PAGA 30 | this.situacaoConta = SituacaoConta.PAGA; 31 | } 32 | } 33 | 34 | public Fornecedor getFornecedor() { 35 | return this.fornecedor; 36 | } 37 | public void setFornecedor(Fornecedor fornecedor) { 38 | this.fornecedor = fornecedor; 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 4/com/algaworks/exemplos/DevolucaoCarro.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.LocalDateTime; 5 | import java.time.LocalTime; 6 | import java.time.Month; 7 | import java.time.Year; 8 | 9 | import com.algaworks.model.Aluguel; 10 | import com.algaworks.model.Carro; 11 | import com.algaworks.model.Cliente; 12 | 13 | public class DevolucaoCarro { 14 | 15 | public static void main(String[] args) { 16 | // 46 * 9 = 414 17 | Aluguel aluguel = recuperarAluguel(); 18 | 19 | // Para cada hora de atraso, ele paga 10% do valor do carro em multa 20 | LocalDateTime dataEHoraRealDaDevolucao = LocalDateTime.of(LocalDate.now().plusDays(5), LocalTime.now()); 21 | aluguel.setDataEHoraRealDaDevolucao(dataEHoraRealDaDevolucao); 22 | aluguel.imprimeFatura(); 23 | } 24 | 25 | private static Aluguel recuperarAluguel() { 26 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1985, Month.FEBRUARY, 8)); 27 | Carro carro = new Carro("Gol", 90.0, Year.of(2012)); 28 | 29 | LocalDateTime dataEHoraDaRetirada = LocalDateTime.of(LocalDate.now(), 30 | LocalTime.of(LocalTime.now().getHour(), 0)); 31 | LocalDateTime dataEHoraPrevistaParaDevolucao = LocalDateTime.now() 32 | .plusDays(3).plusHours(2); 33 | Aluguel aluguel = new Aluguel(cliente, carro, dataEHoraDaRetirada, dataEHoraPrevistaParaDevolucao); 34 | return aluguel; 35 | } 36 | 37 | } 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Desafios/Objeto this, construtores e JavaBeans/ContaPagar.java: -------------------------------------------------------------------------------- 1 | public class ContaPagar { 2 | 3 | private String descricao; 4 | private Double valor; 5 | private String dataVencimento; 6 | private Fornecedor fornecedor; 7 | 8 | public ContaPagar() { 9 | } 10 | 11 | public ContaPagar(Fornecedor fornecedor, String descricao, Double valor, String dataVencimento) { 12 | this.fornecedor = fornecedor; 13 | this.descricao = descricao; 14 | this.valor = valor; 15 | this.dataVencimento = dataVencimento; 16 | } 17 | 18 | public void pagar() { 19 | System.out.println("Pagando conta " + this.getDescricao() + " no valor de " 20 | + this.getValor() + " e vencimento em " + this.getDataVencimento() 21 | + " do fornecedor " + this.getFornecedor().getNome() + "."); 22 | } 23 | 24 | public Fornecedor getFornecedor() { 25 | return this.fornecedor; 26 | } 27 | public void setFornecedor(Fornecedor fornecedor) { 28 | this.fornecedor = fornecedor; 29 | } 30 | 31 | public String getDescricao() { 32 | return this.descricao; 33 | } 34 | public void setDescricao(String descricao) { 35 | this.descricao = descricao; 36 | } 37 | 38 | public Double getValor() { 39 | return this.valor; 40 | } 41 | public void setValor(Double valor) { 42 | this.valor = valor; 43 | } 44 | 45 | public String getDataVencimento() { 46 | return this.dataVencimento; 47 | } 48 | public void setDataVencimento(String dataVencimento) { 49 | this.dataVencimento = dataVencimento; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /Aulas/Criando uma aplicacao de chat/servidor/com/algaworks/chat/servidor/thread/RecebeMensagemCliente.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.chat.servidor.thread; 2 | 3 | import java.io.DataInput; 4 | import java.io.DataInputStream; 5 | import java.io.DataOutput; 6 | import java.io.DataOutputStream; 7 | import java.io.EOFException; 8 | import java.io.OutputStream; 9 | import java.net.Socket; 10 | 11 | import com.algaworks.chat.servidor.Servidor; 12 | 13 | public class RecebeMensagemCliente implements Runnable { 14 | 15 | private Socket socket; 16 | private Servidor servidor; 17 | 18 | public RecebeMensagemCliente(Socket socket, Servidor servidor) { 19 | this.socket = socket; 20 | this.servidor = servidor; 21 | } 22 | 23 | @Override 24 | public void run() { 25 | while (true) { 26 | System.out.println("Aguardando mensagem do cliente..."); 27 | 28 | try { 29 | DataInput dis = new DataInputStream(this.socket.getInputStream()); 30 | String msgRecebida = dis.readUTF(); 31 | this.servidor.enviarMensagensClientes(msgRecebida); 32 | } catch (EOFException e) { 33 | System.out.println("Cliente desconectado"); 34 | break; 35 | } catch (Exception e) { 36 | e.printStackTrace(); 37 | } 38 | } 39 | } 40 | 41 | public void enviarMensagem(String mensagem) { 42 | try { 43 | OutputStream os = this.socket.getOutputStream(); 44 | DataOutput dos = new DataOutputStream(os); 45 | dos.writeUTF(mensagem); 46 | } catch (Exception e) { 47 | e.printStackTrace(); 48 | } 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /Exercicios/Arrays/Principal.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | class Principal { 4 | 5 | public static void main(String[] args) { 6 | Scanner entrada = new Scanner(System.in); 7 | 8 | // obtém a quantidade de produtos que o usuário deseja informar 9 | System.out.println("Quantos produtos?"); 10 | int quantidadeProdutos = entrada.nextInt(); 11 | 12 | // Precisamos dessa linha extra para garantir que uma nova linha seja lida, 13 | // pois nextInt não lê uma nova linha, mas apenas um número. 14 | // Fica feio, mas tente não coloca-la para ver o que acontece. 15 | entrada.nextLine(); 16 | 17 | // instancia um objeto da classe Estoque 18 | Estoque estoque = new Estoque(); 19 | 20 | // instancia um array de produtos com a quantidade de 21 | // posições que o usuário informou 22 | estoque.produtos = new Produto[quantidadeProdutos]; 23 | 24 | // percorre todas as posições no array (que estão nulas) 25 | // e preenche uma por uma com a entrada do teclado do usuário 26 | for (int i = 0; i < estoque.produtos.length; i++) { 27 | estoque.produtos[i] = new Produto(); 28 | 29 | System.out.println("\nProduto " + i); 30 | System.out.println("------------------------"); 31 | 32 | System.out.println("Descrição:"); 33 | estoque.produtos[i].descricao = entrada.nextLine(); 34 | 35 | System.out.println("Quantidade de itens:"); 36 | estoque.produtos[i].quantidade = entrada.nextInt(); 37 | entrada.nextLine(); 38 | } 39 | 40 | estoque.listarProdutos(); 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /Desafios/Excecoes/ContaPagar.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | import com.algaworks.cursojava.financeiro.OperacaoContaException; 4 | 5 | public class ContaPagar extends Conta { 6 | 7 | private Fornecedor fornecedor; 8 | 9 | public ContaPagar() { 10 | } 11 | 12 | public ContaPagar(Fornecedor fornecedor, String descricao, Double valor, String dataVencimento) { 13 | this.fornecedor = fornecedor; 14 | this.setDescricao(descricao); 15 | this.setValor(valor); 16 | this.setDataVencimento(dataVencimento); 17 | } 18 | 19 | public void pagar() throws OperacaoContaException { 20 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 21 | throw new OperacaoContaException("Não pode pagar uma conta que já está paga: " 22 | + this.getDescricao() + "."); 23 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 24 | throw new OperacaoContaException("Não pode pagar uma conta que está cancelada: " 25 | + this.getDescricao() + "."); 26 | } else { 27 | System.out.println("Pagando conta " + this.getDescricao() + " no valor de " 28 | + this.getValor() + " e vencimento em " + this.getDataVencimento() 29 | + " do fornecedor " + this.getFornecedor().getNome() + "."); 30 | 31 | // altera situação da conta para PAGA 32 | this.situacaoConta = SituacaoConta.PAGA; 33 | } 34 | } 35 | 36 | public Fornecedor getFornecedor() { 37 | return this.fornecedor; 38 | } 39 | public void setFornecedor(Fornecedor fornecedor) { 40 | this.fornecedor = fornecedor; 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/Conta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class Conta { 4 | 5 | private String descricao; 6 | private Double valor; 7 | private String dataVencimento; 8 | protected SituacaoConta situacaoConta; 9 | 10 | public Conta() { 11 | this.situacaoConta = SituacaoConta.PENDENTE; 12 | } 13 | 14 | public void cancelar() { 15 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 16 | System.out.println("Não pode cancelar uma conta que já foi paga: " 17 | + this.getDescricao() + "."); 18 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 19 | System.out.println("Não pode cancelar uma conta que já foi cancelada: " 20 | + this.getDescricao() + "."); 21 | } else { 22 | System.out.println("Cancelando conta " + this.getDescricao() + "."); 23 | 24 | // altera situação da conta para CANCELADA 25 | this.situacaoConta = SituacaoConta.CANCELADA; 26 | } 27 | } 28 | 29 | public String getDescricao() { 30 | return this.descricao; 31 | } 32 | public void setDescricao(String descricao) { 33 | this.descricao = descricao; 34 | } 35 | 36 | public Double getValor() { 37 | return this.valor; 38 | } 39 | public void setValor(Double valor) { 40 | this.valor = valor; 41 | } 42 | 43 | public String getDataVencimento() { 44 | return this.dataVencimento; 45 | } 46 | public void setDataVencimento(String dataVencimento) { 47 | this.dataVencimento = dataVencimento; 48 | } 49 | 50 | public SituacaoConta getSituacaoConta() { 51 | return this.situacaoConta; 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/Conta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public abstract class Conta { 4 | 5 | private String descricao; 6 | private Double valor; 7 | private String dataVencimento; 8 | protected SituacaoConta situacaoConta; 9 | 10 | public Conta() { 11 | this.situacaoConta = SituacaoConta.PENDENTE; 12 | } 13 | 14 | public abstract void exibirDetalhes(); 15 | 16 | public void cancelar() { 17 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 18 | System.out.println("Não pode cancelar uma conta que já foi paga: " 19 | + this.getDescricao() + "."); 20 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 21 | System.out.println("Não pode cancelar uma conta que já foi cancelada: " 22 | + this.getDescricao() + "."); 23 | } else { 24 | System.out.println("Cancelando conta " + this.getDescricao() + "."); 25 | 26 | // altera situação da conta para CANCELADA 27 | this.situacaoConta = SituacaoConta.CANCELADA; 28 | } 29 | } 30 | 31 | public String getDescricao() { 32 | return this.descricao; 33 | } 34 | public void setDescricao(String descricao) { 35 | this.descricao = descricao; 36 | } 37 | 38 | public Double getValor() { 39 | return this.valor; 40 | } 41 | public void setValor(Double valor) { 42 | this.valor = valor; 43 | } 44 | 45 | public String getDataVencimento() { 46 | return this.dataVencimento; 47 | } 48 | public void setDataVencimento(String dataVencimento) { 49 | this.dataVencimento = dataVencimento; 50 | } 51 | 52 | public SituacaoConta getSituacaoConta() { 53 | return this.situacaoConta; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/ContaReceber.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class ContaReceber extends Conta { 4 | 5 | private Cliente cliente; 6 | 7 | public ContaReceber() { 8 | } 9 | 10 | public ContaReceber(Cliente cliente, String descricao, Double valor, String dataVencimento) { 11 | this.cliente = cliente; 12 | this.setDescricao(descricao); 13 | this.setValor(valor); 14 | this.setDataVencimento(dataVencimento); 15 | } 16 | 17 | public void cancelar() { 18 | if (this.getValor() > 50000d) { 19 | System.out.println("Essa conta a receber não pode ser cancelada. " + 20 | "É muito dinheiro para deixar de receber: " + this.getDescricao()); 21 | } else { 22 | super.cancelar(); 23 | } 24 | } 25 | 26 | public void receber() { 27 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 28 | System.out.println("Não pode receber uma conta que já está paga: " 29 | + this.getDescricao() + "."); 30 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 31 | System.out.println("Não pode receber uma conta que está cancelada: " 32 | + this.getDescricao() + "."); 33 | } else { 34 | System.out.println("Recebendo conta " + this.getDescricao() + " no valor de " 35 | + this.getValor() + " e vencimento em " + this.getDataVencimento() 36 | + " do cliente " + this.getCliente().getNome() + "."); 37 | 38 | // altera situação da conta para PAGA 39 | this.situacaoConta = SituacaoConta.PAGA; 40 | } 41 | } 42 | 43 | public Cliente getCliente() { 44 | return this.cliente; 45 | } 46 | public void setCliente(Cliente cliente) { 47 | this.cliente = cliente; 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /Desafios/Excecoes/Conta.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | import com.algaworks.cursojava.financeiro.OperacaoContaException; 4 | 5 | public class Conta { 6 | 7 | private String descricao; 8 | private Double valor; 9 | private String dataVencimento; 10 | protected SituacaoConta situacaoConta; 11 | 12 | public Conta() { 13 | this.situacaoConta = SituacaoConta.PENDENTE; 14 | } 15 | 16 | public void cancelar() throws OperacaoContaException { 17 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 18 | throw new OperacaoContaException("Não pode cancelar uma conta que já foi paga: " 19 | + this.getDescricao() + "."); 20 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 21 | throw new OperacaoContaException("Não pode cancelar uma conta que já foi cancelada: " 22 | + this.getDescricao() + "."); 23 | } else { 24 | System.out.println("Cancelando conta " + this.getDescricao() + "."); 25 | 26 | // altera situação da conta para CANCELADA 27 | this.situacaoConta = SituacaoConta.CANCELADA; 28 | } 29 | } 30 | 31 | public String getDescricao() { 32 | return this.descricao; 33 | } 34 | public void setDescricao(String descricao) { 35 | this.descricao = descricao; 36 | } 37 | 38 | public Double getValor() { 39 | return this.valor; 40 | } 41 | public void setValor(Double valor) { 42 | this.valor = valor; 43 | } 44 | 45 | public String getDataVencimento() { 46 | return this.dataVencimento; 47 | } 48 | public void setDataVencimento(String dataVencimento) { 49 | this.dataVencimento = dataVencimento; 50 | } 51 | 52 | public SituacaoConta getSituacaoConta() { 53 | return this.situacaoConta; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 3/com/algaworks/exemplos/NovoAluguel.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.LocalDateTime; 5 | import java.time.LocalTime; 6 | import java.time.Month; 7 | import java.time.Year; 8 | import java.time.format.DateTimeFormatter; 9 | 10 | import com.algaworks.model.Aluguel; 11 | import com.algaworks.model.Carro; 12 | import com.algaworks.model.Cliente; 13 | 14 | public class NovoAluguel { 15 | 16 | public static void main(String[] args) { 17 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1985, Month.FEBRUARY, 8)); 18 | Carro carro = new Carro("Gol", 90.0, Year.of(2012)); 19 | 20 | LocalDateTime dataEHoraDaRetirada = LocalDateTime.of(LocalDate.now() 21 | , LocalTime.of(LocalTime.now().getHour(), 0)); 22 | 23 | LocalDateTime dataEHoraPrevistaParaDevolucao = 24 | LocalDateTime.now().plusDays(3).plusHours(2); 25 | Aluguel aluguel = new Aluguel(cliente, carro, dataEHoraDaRetirada, dataEHoraPrevistaParaDevolucao); 26 | 27 | imprimirRecibo(aluguel); 28 | } 29 | 30 | private static void imprimirRecibo(Aluguel aluguel) { 31 | System.out.println(">>>>>>>>>>>>>>>>> RECIBO <<<<<<<<<<<<<<<<<<<"); 32 | System.out.println("Carro: " + aluguel.getCarro().getModelo()); 33 | System.out.println("Cliente: " + aluguel.getCliente().getNome()); 34 | 35 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm"); 36 | System.out.println("Data e hora da retirada: " + aluguel.getDataEHoraDaRetirada().format(formatter)); 37 | System.out.println("Data e hora prevista para devolução: " + aluguel.getDataEHoraPrevistaParaDevolucao().format(formatter)); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 4/com/algaworks/exemplos/NovoAluguel.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.exemplos; 2 | 3 | import java.time.LocalDate; 4 | import java.time.LocalDateTime; 5 | import java.time.LocalTime; 6 | import java.time.Month; 7 | import java.time.Year; 8 | import java.time.format.DateTimeFormatter; 9 | 10 | import com.algaworks.model.Aluguel; 11 | import com.algaworks.model.Carro; 12 | import com.algaworks.model.Cliente; 13 | 14 | public class NovoAluguel { 15 | 16 | public static void main(String[] args) { 17 | Cliente cliente = new Cliente("João Silva", LocalDate.of(1985, Month.FEBRUARY, 8)); 18 | Carro carro = new Carro("Gol", 90.0, Year.of(2012)); 19 | 20 | LocalDateTime dataEHoraDaRetirada = LocalDateTime.of(LocalDate.now() 21 | , LocalTime.of(LocalTime.now().getHour(), 0)); 22 | 23 | LocalDateTime dataEHoraPrevistaParaDevolucao = 24 | LocalDateTime.now().plusDays(3).plusHours(2); 25 | Aluguel aluguel = new Aluguel(cliente, carro, dataEHoraDaRetirada, dataEHoraPrevistaParaDevolucao); 26 | 27 | imprimirRecibo(aluguel); 28 | } 29 | 30 | private static void imprimirRecibo(Aluguel aluguel) { 31 | System.out.println(">>>>>>>>>>>>>>>>> RECIBO <<<<<<<<<<<<<<<<<<<"); 32 | System.out.println("Carro: " + aluguel.getCarro().getModelo()); 33 | System.out.println("Cliente: " + aluguel.getCliente().getNome()); 34 | 35 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm"); 36 | System.out.println("Data e hora da retirada: " + aluguel.getDataEHoraDaRetirada().format(formatter)); 37 | System.out.println("Data e hora prevista para devolução: " + aluguel.getDataEHoraPrevistaParaDevolucao().format(formatter)); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /Desafios/Excecoes/ContaReceber.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | import com.algaworks.cursojava.financeiro.OperacaoContaException; 4 | 5 | public class ContaReceber extends Conta { 6 | 7 | private Cliente cliente; 8 | 9 | public ContaReceber() { 10 | } 11 | 12 | public ContaReceber(Cliente cliente, String descricao, Double valor, String dataVencimento) { 13 | this.cliente = cliente; 14 | this.setDescricao(descricao); 15 | this.setValor(valor); 16 | this.setDataVencimento(dataVencimento); 17 | } 18 | 19 | public void cancelar() throws OperacaoContaException { 20 | if (this.getValor() > 50000d) { 21 | throw new OperacaoContaException("Essa conta a receber não pode ser cancelada. " + 22 | "É muito dinheiro para deixar de receber: " + this.getDescricao()); 23 | } else { 24 | super.cancelar(); 25 | } 26 | } 27 | 28 | public void receber() { 29 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 30 | System.out.println("Não pode receber uma conta que já está paga: " 31 | + this.getDescricao() + "."); 32 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 33 | System.out.println("Não pode receber uma conta que está cancelada: " 34 | + this.getDescricao() + "."); 35 | } else { 36 | System.out.println("Recebendo conta " + this.getDescricao() + " no valor de " 37 | + this.getValor() + " e vencimento em " + this.getDataVencimento() 38 | + " do cliente " + this.getCliente().getNome() + "."); 39 | 40 | // altera situação da conta para PAGA 41 | this.situacaoConta = SituacaoConta.PAGA; 42 | } 43 | } 44 | 45 | public Cliente getCliente() { 46 | return this.cliente; 47 | } 48 | public void setCliente(Cliente cliente) { 49 | this.cliente = cliente; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /Aulas/Nova API de data parte 3/com/algaworks/model/Aluguel.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.model; 2 | 3 | import java.time.Duration; 4 | import java.time.LocalDateTime; 5 | 6 | public class Aluguel { 7 | 8 | private Cliente cliente; 9 | private Carro carro; 10 | private LocalDateTime dataEHoraDaRetirada; 11 | private LocalDateTime dataEHoraPrevistaParaDevolucao; 12 | private LocalDateTime dataEHoraRealDaDevolucao; 13 | 14 | public Aluguel(Cliente cliente, Carro carro, 15 | LocalDateTime dataEHoraDaRetirada, 16 | LocalDateTime dataEHoraPrevistaParaDevolucao) { 17 | this.cliente = cliente; 18 | this.carro = carro; 19 | this.dataEHoraDaRetirada = dataEHoraDaRetirada; 20 | this.dataEHoraPrevistaParaDevolucao = dataEHoraPrevistaParaDevolucao; 21 | } 22 | 23 | public Cliente getCliente() { 24 | return cliente; 25 | } 26 | 27 | public void setCliente(Cliente cliente) { 28 | this.cliente = cliente; 29 | } 30 | 31 | public Carro getCarro() { 32 | return carro; 33 | } 34 | 35 | public void setCarro(Carro carro) { 36 | this.carro = carro; 37 | } 38 | 39 | public LocalDateTime getDataEHoraDaRetirada() { 40 | return dataEHoraDaRetirada; 41 | } 42 | 43 | public void setDataEHoraDaRetirada(LocalDateTime dataEHoraDaRetirada) { 44 | this.dataEHoraDaRetirada = dataEHoraDaRetirada; 45 | } 46 | 47 | public LocalDateTime getDataEHoraPrevistaParaDevolucao() { 48 | return dataEHoraPrevistaParaDevolucao; 49 | } 50 | 51 | public void setDataEHoraPrevistaParaDevolucao( 52 | LocalDateTime dataEHoraPrevistaParaDevolucao) { 53 | this.dataEHoraPrevistaParaDevolucao = dataEHoraPrevistaParaDevolucao; 54 | } 55 | 56 | public LocalDateTime getDataEHoraRealDaDevolucao() { 57 | return dataEHoraRealDaDevolucao; 58 | } 59 | 60 | public void setDataEHoraRealDaDevolucao( 61 | LocalDateTime dataEHoraRealDaDevolucao) { 62 | this.dataEHoraRealDaDevolucao = dataEHoraRealDaDevolucao; 63 | } 64 | -------------------------------------------------------------------------------- /Desafios/Datas/Principal.java: -------------------------------------------------------------------------------- 1 | import java.util.Date; 2 | import java.util.Scanner; 3 | import java.text.DateFormat; 4 | import java.text.SimpleDateFormat; 5 | import java.text.ParseException; 6 | import java.util.Locale; 7 | 8 | public class Principal { 9 | 10 | public static void main(String args[]) { 11 | new Principal(); 12 | } 13 | 14 | public Principal() { 15 | Scanner entrada = new Scanner(System.in); 16 | 17 | try { 18 | System.out.println("Data do último período menstrual (dd/mm/aaaa):"); 19 | String ultimoPeriodoMenstrual = entrada.nextLine(); 20 | 21 | Date dataUltimoPeriodoMenstrual = this.converterEmData(ultimoPeriodoMenstrual); 22 | CalculadoraGravidez calculadora = new CalculadoraGravidez(dataUltimoPeriodoMenstrual); 23 | 24 | Date dataEstimadaConcepcao = calculadora.calcularDataEstimadaConcepcao(); 25 | System.out.println("Data estimada da concepção: " 26 | + this.formatarData(dataEstimadaConcepcao)); 27 | 28 | Date dataEstimadaParto = calculadora.calcularDataEstimadaParto(); 29 | System.out.println("Data estimada para parto: " 30 | + this.formatarData(dataEstimadaParto)); 31 | } catch (ParseException pe) { 32 | System.out.println("Informe uma data no padrão dd/mm/aaaa."); 33 | } 34 | } 35 | 36 | private String formatarData(Date data) { 37 | // Padrão de formatação de data por extenso 38 | // A classe Locale representa uma região no planeta, sendo neste caso 39 | // o Brasil (br), onde falamos Português (pt) 40 | // O Locale é usado aqui para formatar a data em português brasileiro 41 | DateFormat formatador = new SimpleDateFormat("EEEE, dd 'de' MMMM 'de' yyyy", 42 | new Locale("pt", "br")); 43 | return formatador.format(data); 44 | } 45 | 46 | private Date converterEmData(String texto) throws ParseException { 47 | DateFormat conversor = new SimpleDateFormat("dd/MM/yyyy"); 48 | return conversor.parse(texto); 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /Desafios/Heranca e sobreposicao/Principal.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro; 2 | 3 | import com.algaworks.cursojava.financeiro.modelo.ContaPagar; 4 | import com.algaworks.cursojava.financeiro.modelo.ContaReceber; 5 | import com.algaworks.cursojava.financeiro.modelo.Fornecedor; 6 | import com.algaworks.cursojava.financeiro.modelo.Cliente; 7 | 8 | public class Principal { 9 | 10 | public static void main(String[] args) { 11 | // instanciando fornecedores 12 | Fornecedor imobiliaria = new Fornecedor(); 13 | imobiliaria.setNome("Casa & Cia Negócios Imobiliários"); 14 | Fornecedor mercado = new Fornecedor(); 15 | mercado.setNome("Mercado do João"); 16 | 17 | // instanciando clientes 18 | Cliente atacadista = new Cliente(); 19 | atacadista.setNome("Triângulo Quadrado Atacadista"); 20 | Cliente telecom = new Cliente(); 21 | telecom.setNome("FoneNet Telecomunicações"); 22 | 23 | // instanciando contas a pagar 24 | ContaPagar contaPagar1 = new ContaPagar(); 25 | contaPagar1.setDescricao("Aluguel da matriz"); 26 | contaPagar1.setValor(1230d); 27 | contaPagar1.setDataVencimento("10/05/2012"); 28 | contaPagar1.setFornecedor(imobiliaria); 29 | 30 | ContaPagar contaPagar2 = new ContaPagar(mercado, "Compras do mês", 390d, "19/05/2012"); 31 | 32 | // instanciando contas a receber 33 | ContaReceber contaReceber1 = new ContaReceber(); 34 | contaReceber1.setDescricao("Desenvolvimento de projeto de logística em Java"); 35 | contaReceber1.setValor(89500d); 36 | contaReceber1.setDataVencimento("23/05/2012"); 37 | contaReceber1.setCliente(atacadista); 38 | 39 | ContaReceber contaReceber2 = new ContaReceber(telecom, "Manutenção em sistema de conta online", 40 | 53200d, "13/05/2012"); 41 | 42 | // pagamento e cancelamento de contas a pagar 43 | contaPagar1.pagar(); 44 | contaPagar2.cancelar(); 45 | 46 | // recebimento e cancelamento de contas a receber 47 | contaReceber1.receber(); 48 | contaReceber2.cancelar(); 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/ContaPagar.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro.modelo; 2 | 3 | public class ContaPagar extends Conta { 4 | 5 | private Fornecedor fornecedor; 6 | 7 | public ContaPagar() { 8 | } 9 | 10 | public ContaPagar(Fornecedor fornecedor, String descricao, Double valor, String dataVencimento) { 11 | this.fornecedor = fornecedor; 12 | this.setDescricao(descricao); 13 | this.setValor(valor); 14 | this.setDataVencimento(dataVencimento); 15 | } 16 | 17 | public void exibirDetalhes() { 18 | System.out.println("\nConta a Pagar"); 19 | System.out.println("==================================="); 20 | System.out.println("Fornecedor: " + this.getFornecedor().getNome()); 21 | System.out.println("Descrição: " + this.getDescricao()); 22 | System.out.println("Valor: " + this.getValor()); 23 | System.out.println("Data de vencimento: " + this.getDataVencimento()); 24 | System.out.println("Situação: " + this.getSituacaoConta()); 25 | System.out.println("==================================="); 26 | } 27 | 28 | public void pagar() { 29 | if (SituacaoConta.PAGA.equals(this.getSituacaoConta())) { 30 | System.out.println("Não pode pagar uma conta que já está paga: " 31 | + this.getDescricao() + "."); 32 | } else if (SituacaoConta.CANCELADA.equals(this.getSituacaoConta())) { 33 | System.out.println("Não pode pagar uma conta que está cancelada: " 34 | + this.getDescricao() + "."); 35 | } else { 36 | System.out.println("Pagando conta " + this.getDescricao() + " no valor de " 37 | + this.getValor() + " e vencimento em " + this.getDataVencimento() 38 | + " do fornecedor " + this.getFornecedor().getNome() + "."); 39 | 40 | // altera situação da conta para PAGA 41 | this.situacaoConta = SituacaoConta.PAGA; 42 | } 43 | } 44 | 45 | public Fornecedor getFornecedor() { 46 | return this.fornecedor; 47 | } 48 | public void setFornecedor(Fornecedor fornecedor) { 49 | this.fornecedor = fornecedor; 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /Desafios/Polimorfismo e classes abstratas/Principal.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro; 2 | 3 | import com.algaworks.cursojava.financeiro.modelo.ContaPagar; 4 | import com.algaworks.cursojava.financeiro.modelo.ContaReceber; 5 | import com.algaworks.cursojava.financeiro.modelo.Conta; 6 | import com.algaworks.cursojava.financeiro.modelo.Fornecedor; 7 | import com.algaworks.cursojava.financeiro.modelo.Cliente; 8 | 9 | public class Principal { 10 | 11 | public static void main(String[] args) { 12 | // instanciando fornecedores 13 | Fornecedor imobiliaria = new Fornecedor(); 14 | imobiliaria.setNome("Casa & Cia Negócios Imobiliários"); 15 | Fornecedor mercado = new Fornecedor(); 16 | mercado.setNome("Mercado do João"); 17 | 18 | // instanciando clientes 19 | Cliente atacadista = new Cliente(); 20 | atacadista.setNome("Triângulo Quadrado Atacadista"); 21 | Cliente telecom = new Cliente(); 22 | telecom.setNome("FoneNet Telecomunicações"); 23 | 24 | // instanciando contas a pagar 25 | ContaPagar contaPagar1 = new ContaPagar(); 26 | contaPagar1.setDescricao("Aluguel da matriz"); 27 | contaPagar1.setValor(1230d); 28 | contaPagar1.setDataVencimento("10/05/2012"); 29 | contaPagar1.setFornecedor(imobiliaria); 30 | 31 | ContaPagar contaPagar2 = new ContaPagar(mercado, "Compras do mês", 390d, "19/05/2012"); 32 | 33 | // instanciando contas a receber 34 | ContaReceber contaReceber1 = new ContaReceber(); 35 | contaReceber1.setDescricao("Desenvolvimento de projeto de logística em Java"); 36 | contaReceber1.setValor(89500d); 37 | contaReceber1.setDataVencimento("23/05/2012"); 38 | contaReceber1.setCliente(atacadista); 39 | 40 | ContaReceber contaReceber2 = new ContaReceber(telecom, "Manutenção em sistema de conta online", 41 | 53200d, "13/05/2012"); 42 | 43 | // exibe listagem de todas as contas com detalhamento 44 | RelatorioContas relatorio = new RelatorioContas(); 45 | Conta[] contas = new Conta[]{contaPagar1, contaPagar2, contaReceber1, contaReceber2}; 46 | 47 | relatorio.exibirListagem(contas); 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /Aulas/Javadoc/com/algaworks/curso/modelo/Funcionario.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.curso.modelo; 2 | 3 | /** 4 | * Representa um funcionário da empresa... 5 | * 6 | * @author Normandes Junior 7 | * @author João Silva 8 | * 9 | */ 10 | public class Funcionario { 11 | 12 | private String nome; 13 | private double salario; 14 | 15 | /** 16 | * Não utilize mais, pois o salário é obrigatório para outros métodos 17 | * 18 | * @deprecated 19 | * @param nome 20 | */ 21 | public Funcionario(String nome) { 22 | this.nome = nome; 23 | } 24 | 25 | public Funcionario(String nome, double salario) { 26 | this.nome = nome; 27 | this.salario = salario; 28 | } 29 | 30 | public String getNome() { 31 | return nome; 32 | } 33 | 34 | public void setNome(String nome) { 35 | this.nome = nome; 36 | } 37 | 38 | public double getSalario() { 39 | return salario; 40 | } 41 | 42 | public void setSalario(double salario) { 43 | this.salario = salario; 44 | } 45 | 46 | /** 47 | * Calcula o adiantamento em dinheiro que deverá ser pago ao funcionário. 48 | * 49 | *

O valor da diária é calculado dividindo-se o salário base por 30 (dias do mês).

50 | * 51 | * Caso o destino for uma capital, é adicionado 20% no valor do adiantamento. 52 | * 53 | * @param dias 54 | * Quantidade de dias da viagem 55 | * 56 | * @param capital 57 | * Indica se é ou não uma capital brasileira 58 | * 59 | * @return O valor em reais do adiantamento 60 | * 61 | * @throws IllegalArgumentException 62 | * Caso {@code dias} for menor ou igual a zero 63 | * 64 | * @since 1.1.0 65 | * 66 | * @see Viagem 67 | * 68 | */ 69 | public double adiatamentoViagem(int dias, boolean capital) { 70 | if (dias <= 0) { 71 | throw new IllegalArgumentException("Dias deve ser maior que zero."); 72 | } 73 | 74 | double valorDiaria = salario / 30; 75 | 76 | double valorAdiantamento = valorDiaria * dias; 77 | 78 | if (capital) { 79 | valorAdiantamento *= 1.20; 80 | } 81 | 82 | return valorAdiantamento; 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /Desafios/Collections/Governo.java: -------------------------------------------------------------------------------- 1 | import java.util.List; 2 | import java.util.ArrayList; 3 | import java.util.Map; 4 | import java.util.HashMap; 5 | import java.math.BigDecimal; 6 | 7 | public class Governo { 8 | 9 | // armazena uma lista de políticos por estado da federação 10 | private Map> partidosPoliticos; 11 | 12 | public Governo() { 13 | this.partidosPoliticos = new HashMap>(); 14 | } 15 | 16 | public void adicionarPolitico(String partidoPolitico, Politico politico) { 17 | // recupera a lista de políticos para um partido 18 | List politicos = this.partidosPoliticos.get(partidoPolitico); 19 | 20 | // se não existir uma lista de políticos para o partido informado, 21 | // devemos instanciar uma nova lista (pois é a primeira inclusão neste partido) 22 | if (politicos == null) { 23 | politicos = new ArrayList(); 24 | } 25 | 26 | // adiciona o político recebido como parâmetro à lista de políticos 27 | politicos.add(politico); 28 | 29 | // adiciona a lista de políticos ao mapa de partidos usando 30 | // como chave o nome do partido 31 | this.partidosPoliticos.put(partidoPolitico, politicos); 32 | } 33 | 34 | public BigDecimal calcularGastosComSalario(String partidoPolitico) { 35 | BigDecimal total = BigDecimal.ZERO; 36 | List politicos = this.partidosPoliticos.get(partidoPolitico); 37 | 38 | if (politicos != null) { 39 | for (Politico politico : politicos) { 40 | total = total.add(politico.getCargo().getSalario()); 41 | } 42 | } 43 | 44 | return total; 45 | } 46 | 47 | public BigDecimal calcularGastosComSalarioParaCargo(Cargo cargo, String partidoPolitico) { 48 | BigDecimal total = BigDecimal.ZERO; 49 | List politicos = this.partidosPoliticos.get(partidoPolitico); 50 | 51 | if (politicos != null) { 52 | for (Politico politico : politicos) { 53 | // verifica se cargo do político é igual ao cargo informado no parâmetro 54 | if (politico.getCargo().equals(cargo)) { 55 | total = total.add(politico.getCargo().getSalario()); 56 | } 57 | } 58 | } 59 | 60 | return total; 61 | } 62 | 63 | } -------------------------------------------------------------------------------- /Desafios/Excecoes/Principal.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.cursojava.financeiro; 2 | 3 | import com.algaworks.cursojava.financeiro.modelo.ContaPagar; 4 | import com.algaworks.cursojava.financeiro.modelo.ContaReceber; 5 | import com.algaworks.cursojava.financeiro.modelo.Fornecedor; 6 | import com.algaworks.cursojava.financeiro.modelo.Cliente; 7 | import com.algaworks.cursojava.financeiro.OperacaoContaException; 8 | 9 | public class Principal { 10 | 11 | public static void main(String[] args) { 12 | // instanciando fornecedores 13 | Fornecedor imobiliaria = new Fornecedor(); 14 | imobiliaria.setNome("Casa & Cia Negócios Imobiliários"); 15 | Fornecedor mercado = new Fornecedor(); 16 | mercado.setNome("Mercado do João"); 17 | 18 | // instanciando clientes 19 | Cliente atacadista = new Cliente(); 20 | atacadista.setNome("Triângulo Quadrado Atacadista"); 21 | Cliente telecom = new Cliente(); 22 | telecom.setNome("FoneNet Telecomunicações"); 23 | 24 | // instanciando contas a pagar 25 | ContaPagar contaPagar1 = new ContaPagar(); 26 | contaPagar1.setDescricao("Aluguel da matriz"); 27 | contaPagar1.setValor(1230d); 28 | contaPagar1.setDataVencimento("10/05/2012"); 29 | contaPagar1.setFornecedor(imobiliaria); 30 | 31 | ContaPagar contaPagar2 = new ContaPagar(mercado, "Compras do mês", 390d, "19/05/2012"); 32 | 33 | // instanciando contas a receber 34 | ContaReceber contaReceber1 = new ContaReceber(); 35 | contaReceber1.setDescricao("Desenvolvimento de projeto de logística em Java"); 36 | contaReceber1.setValor(89500d); 37 | contaReceber1.setDataVencimento("23/05/2012"); 38 | contaReceber1.setCliente(atacadista); 39 | 40 | ContaReceber contaReceber2 = new ContaReceber(telecom, "Manutenção em sistema de conta online", 41 | 53200d, "13/05/2012"); 42 | 43 | try { 44 | // pagamento e cancelamento de contas a pagar 45 | contaPagar1.pagar(); 46 | contaPagar2.cancelar(); 47 | 48 | // recebimento e cancelamento de contas a receber 49 | contaReceber1.receber(); 50 | contaReceber2.cancelar(); 51 | } catch (OperacaoContaException oce) { 52 | System.out.println("Erro em operação com conta: " + oce.getMessage()); 53 | oce.printStackTrace(); 54 | } 55 | } 56 | 57 | } --------------------------------------------------------------------------------