Adição de Resumos das matérias do Livro do Deitel: Java Como Programar ed.10º.
- Aula 00: Introdução ao curso
- Aula 01: Como JAVA funciona
- Aula 02: Como instalar JAVA no windows
- Aula 03: Executando o processo de compilação manualmente
- Aula 04: Download do ambiente de desenvolvimento
- Aula 05: Tipos primitivos, convenções de código e comentários
- Aula 06: Continuação tipos primitivos, exercício e operadores
- Aula 07: Operador resto e operadores de comparação
- Aula 08: com.devdojo.introducao.Operadores Lógicos
- Aula 09: com.devdojo.introducao.Operadores de Atribuição
- Aula 10: Controle de fluxo if, else if e else
- Aula 11: Controle de fluxo: Tabela verdade e mais.
- Aula 12: Controle de fluxo Resolução do exercício if else
- Aula 13: Controle de fluxo switch e exercícios
- Aula 14: Controle de fluxo - Solução do exercício
- Aula 15: Controle de fluxo for, while, do while
- Aula 16: Exercício estrutura de repetição
- Aula 17: Comando break and continue
- Aula 18: Arrays parte 1
- Aula 19: Arrays parte 2
- Aula 20: Arrays parte 3 foreach
- Aula 21: Arrays parte 4 arrays multidimencionais
- Aula 22: Arrays parte 5 arrays multidimencionais
- Aula 23: Introdução a pacotes
- Aula 24: Introdução a classes parte 1
- Aula 25: Introdução a classes parte 2 + exercício
- Aula 26: Solução do exercício introdução a classes
- Aula 27: Introdução a métodos
- Aula 28: Métodos com parâmetros
- Aula 29: Retorno de métodos parte 01
- Aula 30: Retorno de métodos parte 02
- Aula 31: Métodos com parâmetros tipo reference pt 01
- Aula 32: Passagem de objeto como parâmetro e this pt 02
- Aula 33: Passagem de parâmetros varargs
- Aula 34: Introdução a UML
- Aula 35: Exercício sobre métodos
- Aula 36: Modificador de acesso private, get e set pt 01
- Aula 37: Modificador de acesso private, get e set pt 02
- Aula 38: Sobrecarga de métodos
- Aula 39: Construtores e sobrecarga de construtores pt 01
- Aula 40: Construtores e sobrecarga de construtores pt 02
- Aula 41: Blocos de inicialização
- Aula 42: Modificador static
- Aula 43: Métodos Estáticos
- Aula 44: Bloco de inicialização
- Aula 45: UML e Associação de classes
- Aula 46: Exercício associação pt 01
- Aula 47: Exercício associação pt 02
- Aula 48: Exercício associação de classes pt 03
- Aula 49: Exercício associação pt 04
- Aula 50: Herança pt 01
- Aula 51: Herança parte 2 e referência super
- Aula 52: Herança e Modificador Protected pt 03
- Aula 53: Herança e construtores pt 04
- Aula 54: Herança e Sequência de inicialização pt 05
- Aula 55: Sobrescrita de métodos
- Aula 56: Modificador Final
- Aula 57: Enumeração pt 01
- Aula 58: Enumeração pt 02
- Aula 59: Enumeração pt 03
- Aula 60: Classes abstratas pt 01
- Aula 61: Classes abstratas pt 02
- Aula 62: Interfaces pt 01
- Aula 63: Interfaces pt 02
- Aula 64: Polimorfismo pt 01
- Aula 65: Polimorfismo pt 02
- Aula 66: Polimorfismo pt 03
- Aula 67: Exceptions pt 01
- Aula 68: Exceptions pt 02
- Aula 69: Exceptions: Exceções checked pt 03
- Aula 70: Exceptions: lançamento de exceção pt 04
- Aula 71: Exceptions: bloco finally pt 05
- Aula 72: Tratamento de multiplas exceções pt 06
- Aula 73: Exceptions: Multi-catch pt 07
- Aula 74 : Exceptions: try-with-resources pt 08
- Aula 75: Exceptions customizadas pt 09
- Aula 76: Exceptions e regras para sobrescrita pt 10
- Aula 77: Assertivas
- Aula 78: Classes Wrapper pt 01
- Aula 79: Classes Wrapper pt 02
- Aula 80: String pt 01
- Aula 81: String pt 02
- Aula 82: Performance das Strings
- Aula 83: StringBuilder and StringBuffer
- Aula 84: Datas com Date e Calendar
- Aula 85: Formatação de datas com DateFormat
- Aula 86: Internacionalização com a classe Locale
- Aula 87: Formatação de números e moeda com NumberFormat
- Aula 88: Datas personalizadas com SimpleDateFormat
- Aula 89: Expressões regulares pt 01
- Aula 90: Expressões regulares pt 02
- Aula 91: Expressões regulares pt 03
- Aula 92: Expressões regulares pt 04
- Aula 93: Expressões regulares pt 05
- Aula 94: Expressões regulares pt 06
- Aula 95: Tokens e Delimitadores com String e Scanner
- Aula 96: Resource Bundles pt 01
- Aula 97: Resource Bundles pt 02
- Aula 98: IO pt 01 Classe File para arquivos
- Aula 99: IO pt 02 FileWriter e FileReader
- Aula 100: IO pt 03 BufferedWriter e BufferedReader
- Aula 101: IO pt 04 Classe File para diretórios
- Aula 102: IO pt 05 Classe Console
- Aula 103: NIO pt 01 Introdução as novas classes Path, Paths, Files
- Aula 104: NIO pt 02 Uso básico das classes Path, Paths, Files
- Aula 105: NIO pt 03 Normalizando paths
- Aula 106: NIO pt 04 Resolvendo paths
- Aula 107: NIO pt 05 Relativizando paths
- Aula 108: NIO pt 06 BasicFileAttributes e BasicFileAttributeView
- Aula 109: NIO pt 07 DosFileAttributes e DosFileAttributeView
- Aula 110: NIO pt 08 PosixFileAttributes e PosixFileAttributeView
- Aula 111: NIO pt 09 DirectoryStream e SimpleFileVisitor
- Aula 112: NIO pt 10 PathMacther
- Aula 113: IO pt 06 InputStream e OutputStream
- Aula 114: NIO pt 11 Zipando arquivos com Java
- Aula 115: Serialização
- Aula 116: Coleções pt 01 método equals()
- Aula 117: Coleções pt 02 método hashCode
- Aula 118: Coleções pt 03 Introdução as coleções
- Aula 119: Coleções pt 04 Lists pt 01
- Aula 120: Coleções pt 05 Lists pt 02
- Aula 121: Coleções pt 06 Ordenação de listas com Comparable
- Aula 122: Coleções pt 07 Ordenação de listas e arrays com Comparator
- Aula 123: Coleções pt 08 Busca binária em Lists e Arrays
- Aula 124: Coleções pt 09 Convertendo Arrays em List e List em Arrays
- Aula 125: Coleções pt 10 Removendo elementos da lista com Iterator
- Aula 126: Coleções pt 11 Set, HashSet e LinkedHashSet
- Aula 127: Coleções pt 12 NavigableSet e TreeSet
- Aula 128: Coleções pt 13 Map, HashMap e LinkedHashMap pt 01
- Aula 129: Coleções pt 14 Map, HashMap e LinkedHashMap pt 02
- Aula 130: Coleções pt 15 NavigableMap e TreeMap
- Aula 131: Coleções pt 16 Queue e PriorityQueue
- Aula 132: Generics pt 01 O que são Generics
- Aula 133: Generics pt 02 Wildcard Caracter coringa
- Aula 134: Generics pt 03 Classes genéricas
- Aula 135: Generics pt 04 Métodos genéricos
- Aula 136: Inner Classes pt 01 Classe Interna aninhada
- Aula 137: Inner Classes pt 02 Classe Interna local
- Aula 138: Inner Classes pt 03 Classes Anônimas
- Aula 139: Inner Classes pt 04 Classes Internas Estáticas
- Aula 140: JBDC pt 01 Instalando o banco de dados MySQL
- Aula 141: JBDC pt 02 Criando o banco e as tabelas
- Aula 142: JBDC pt 03 Criando conexão com o banco de dados
- Aula 143: JBDC pt 04 Inserindo dados no banco com Statement
- Aula 144: JBDC pt 05 Atualizando e excluindo dados com Statement
- Aula 145: JBDC pt 06 ResultSet pt 01 - Selecionando registros
- Aula 146: JBDC pt 07 ResultSet pt 02 - Tipos de ResultSet e metadados
- Aula 147: JBDC pt 08 ResultSet pt 03 - Métodos para posicionamento do cursor
- Aula 148: JBDC pt 09 RS pt 04 Atualizando registros através do ResultSet
- Aula 149: JBDC pt 10 PreparedStatement
- Aula 150: JBDC pt 11 Procedures e funções no banco com CallableStatement
- Aula 151: JBDC pt 12 Connected RowSet - JdbcRowSet
- Aula 152: JBDC pt 13 Disconnected RowSet - CachedRowSet
- Aula 153: JBDC pt 14 Transações
- Aula 154: JBDC pt 15 CRUD pt 01
- Aula 155: JBDC pt 16 CRUD pt 02
- Aula 156: Threads pt 01 O que são e como criar
- Aula 157: Thread pt 02 Thread states
- Aula 158: Threads pt 03 Parando a execução com Sleep, Yield e Join
- Aula 159: Threads pt 04: Sincronismo de código pt 01
- Aula 160: Sincronismo de código e Deadlock pt 02
- Aula 161: Threads pt 06: Interação de Threads com wait, notify e notifyAll
- Aula 162: Concorrência pt 01: Variáveis atômicas
- Aula 163: Concorrência pt 02: Lock e ReentrantLock
- Aula 164: Concorrência pt 03: Conditions
- Aula 165: Concorrência pt 04 : ReentrantReadWriteLock
- Aula 166: Concorrência pt 05: CopyOnWriteArrayList
- Aula 167: Concorrência pt 06: Coleções Concorrentes
- Aula 168: Concorrência pt 07: Blocking Queues
- Aula 169: Concorrência pt 08: Executors pt 01 Thread Pools
- Aula 170: Concorrência pt 09: Executors pt 02 Scheduled Thread Pool
- Aula 171: Concorrência pt 10: Interface Callable
- Aula 172: Padrões de projeto pt 01: Padrão Builder
- Aula 173: Padrões de projeto pt 02: Padrão Singleton
- Aula 174: Padrões de projeto pt 03: Padrão DAO
- Aula 175: Padrões de projeto pt 04: Padrão Factory
- Aula 176: Java 8 Parametrizando comportamentos
- Aula 177: Java 8 Programação Funcional e Lambdas pt 01
- Aula 178: Java 8 Programação Funcional e Lambdas pt 02
- Aula 179: Java 8 Programação Funcional e Lambdas pt 03
- Aula 180: Java 8 Programação Funcional e Lambdas pt 04 Method References
- Aula 181: Java 8 Novas regras para Interfaces, métodos default
- Aula 182: Java 8 Evitando NullPointerException com Optional pt 01
- Aula 183: Java 8 Evitando NullPointerException com Optional pt 02
- Aula 184: Java 8 Evitando NullPointerException com Optional pt 03
- Aula 185: Java 8 Streams pt 01
- Aula 186: Java 8 Streams pt 02
- Aula 187: Java 8 Streams pt 03, map e flatmap
- Aula 188: Java 8 Streams pt 04, Finding and matching
- Aula 189: Java 8 Streams pt 05, Streams especializados (Streams primitivos)
- Aula 190: Java 8 Streams pt 06, Gerando Streams
- Aula 191: Java 8 Streams pt 07, Reduzindo e sumarizando Streams
- Aula 192: Java 8 Streams pt 08, Agrupando Streams
- Aula 193: Java 8 Parallel Streams pt 01, Introdução aos streams paralelos
- Aula 194: Java 8 Parallel Streams pt 02, Quando utilizar streams paralelos
- Aula 195: Java 8 CompletableFuture pt 01, Introdução a programação assíncrona
- Aula 196: Java 8 CompletableFuture pt 02, Funcionamento do CompletableFuture
- Aula 197: Java 8 CompletableFuture pt 03, Tratamento de exceções assíncronas
- Aula 198: Java 8 CompletableFuture pt 04, Desempenho comparado aos Streams
- Aula 199: Java 8 CompletableFuture pt 05, CompletableFuture Custom Executor
- Aula 200: Java 8 CompletableFuture pt 06, Encadeando tarefas pt 01
- Aula 201: Java 8 CompletableFuture pt 07, Encadeando tarefas pt 02
- Aula 202: Java 8 CompletableFuture pt 08, Exibindo resultados dinamicamente
- Aula 203: Java 8 Nova API DateTime LocalDate, LocalTime, LocalDateTime
- Aula 204: Java 8 Nova API DateTime Instant, Duration and Period
- Aula 205: Java 8 Nova API Manipulando datas de forma relativa
- Aula 206: Java 8 Nova API DateTime, Fazendo ajustes temporais com TimeAdjuster
- Aula 207: Java 8 Nova API DateTime, Formatação e parse
- Aula 208: Java 8 Nova API DateTime, Trabalhando com Time Zones
- FIM DO MARATONA?
Apresentação dos conteúdo:
Resumo:
Outros Artigos:
Como uma Java Virtual Machine escrita em Java funciona?
Aula 02: Como instalar JAVA no windows
Java Platform, Standard Edition
Aula 03: Executando o processo de compilação manualmente
Deitel:
Normalmente, existem cinco fases: editar, compilar, carregar, verificar e executar. Nós as discutiremos no contexto do Java SE 8 Development Kit ( JDK).
Fase 1: criando um programa
A Fase 1 consiste em editar um arquivo com um programa editor, muitas vezes conhecido simplesmente como um editor. Você digita um programa Java (em geral referido como código-fonte) utilizando o editor, faz quaisquer correções necessárias e salva o programa em um dispositivo de armazenamento secundário, como sua unidade de disco. Arquivos de código-fonte Java recebem um nome que termina com a extensão .java, que indica um arquivo contendo código-fonte Java.
Fase 2: compilando um programa Java em bytecodes
Na Fase 2, utilize o comando javac (o compilador Java) para compilar um programa. Por exemplo, a fim de compilar um programa chamado Welcome.java, você digitaria:
javac Welcome.java
na janela de comando do seu sistema (isto é, o Prompt do MS-DOS, no Windows, ou o aplicativo Terminal, no Mac OS X) ou em um shell Linux (também chamado Terminal em algumas versões do Linux). Se o programa compilar, o compilador produz um arquivo .class chamado Welcome.class que contém a versão compilada. IDEs tipicamente fornecem um item de menu, como Build ou Make, que chama o comando javac para você. Se o compilador detectar erros, você precisa voltar para a Fase 1 e corrigi-los.
O compilador Java converte o código-fonte Java em bytecodes que representam as tarefas a serem executadas na fase de execução (Fase 5). O Java Virtual Machine (JVM) — uma parte do JDK e a base da plataforma Java — executa bytecodes. A máquina virtual (virtual machine — VM) é um aplicativo de software que simula um computador, mas oculta o sistema operacional e o hardware subjacentes dos programas que interagem com ela. Se a mesma máquina virtual é implementada em muitas plataformas de computador, os aplicativos escritos para ela podem ser utilizados em todas essas plataformas. A JVM é uma das máquinas virtuais mais utilizadas. O .NET da Microsoft utiliza uma arquitetura de máquina virtual semelhante.
Diferentemente das instruções em linguagem de máquina, que são dependentes de plataforma (isto é, de hardware específico de computador), instruções bytecode são independentes de plataforma. Portanto, os bytecodes do Java são portáveis — sem recompilar o código-fonte, as mesmas instruções em bytecodes podem ser executadas em qualquer plataforma contendo uma JVM que entende a versão do Java na qual os bytecodes foram compilados. A JVM é invocada pelo comando java. Por exemplo, para executar um aplicativo Java chamado Welcome, você digitaria
java Welcome
em uma janela de comando para invocar a JVM, que então iniciaria os passos necessários a fim de executar o aplicativo. Isso começa a Fase 3. IDEs tipicamente fornecem um item de menu, como Run, que chama o comando java para você.
Fase 3: carregando um programa na memória
Na Fase 3, a JVM armazena o programa na memória para executá-lo — isso é conhecido como carregamento. O carregador de classe da JVM pega os arquivos .class que contêm os bytecodes do programa e os transfere para a memória primária. Ele também carrega qualquer um dos arquivos .class fornecidos pelo Java que seu programa usa. Os arquivos .class podem ser carregados a partir de um disco em seu sistema ou em uma rede (por exemplo, sua faculdade local ou rede corporativa ou a internet).
Fase 4: verificação de bytecode
Na Fase 4, enquanto as classes são carregadas, o verificador de bytecode examina seus bytecodes para assegurar que eles são válidos e não violam restrições de segurança do Java (Figura 1.9). O Java impõe uma forte segurança para certificar-se de que os programas Java que chegam pela rede não danificam os arquivos ou o sistema (como vírus e worms de computador).
Fase 5: execução
Na Fase 5, a JVM executa os bytecodes do programa, realizando, assim, as ações especificadas por ele (Figura 1.10). Nas primeiras versões do Java, a JVM era simplesmente um interpretador para bytecodes. A maioria dos programas Java executava lentamente, porque a JVM interpretava e executava um bytecode de cada vez. Algumas arquiteturas modernas de computador podem executar várias instruções em paralelo. Em geral, as JVMs atuais executam bytecodes utilizando uma combinação de interpretação e a chamada compilação just in time ( JIT). Nesse processo, a JVM analisa os bytecodes à medida que eles são interpretados, procurando hot spots (pontos ativos) — partes dos bytecodes que executam com frequência. Para essas partes, um compilador just in time (JIT), como o compilador Java HotSpot™ da Oracle, traduz os bytecodes para a linguagem de máquina do computador subjacente. Quando a JVM encontra de novo essas partes compiladas, o código de linguagem de máquina mais rápido é executado. Portanto, os programas Java realmente passam por duas fases de compilação: uma em que o código-fonte é traduzido em bytecodes (para a portabilidade entre JVMs em diferentes plataformas de computador) e outra em que, durante a execução, os bytecodes são traduzidos em linguagem de máquina para o computador real no qual o programa é executado.
Um aplicativo Java é um programa de computador que é executado quando você utiliza o comando java para carregar a Java Virtual Machine ( JVM).
Modifificando
outro exemplo:
Algumas sequências de escape comuns:
Outros:
Processo de Interpretação e Compilação: Entendendo o java de uma forma diferente
Alô Mundo: Entendendo o java de uma forma diferente
Aula 04: Download do ambiente de desenvolvimento
Dois editores amplamente utilizados nos sistemas Linux são vi e emacs. O Windows fornece o Bloco de Notas. Já o OS X fornece o TextEdit. Também há muitos editores freeware e shareware disponíveis on-line, incluindo Notepad++ (notepad-plus-plus. org), EditPlus (www.editplus.com), TextPad (www.textpad.com) e jEdit (www.jedit.org).
Ambientes de desenvolvimento integrado (IDEs) fornecem ferramentas que suportam o processo de desenvolvimento de software, como editores e depuradores para localizar erros lógicos (que fazem programas serem executados incorretamente) e outros. Há muitos IDEs Java populares, incluindo:
- Eclipse (www.eclipse.org)
- NetBeans (www.netbeans.org)
- IntelliJ IDEA (www.jetbrains.com)
Modificadores de acesso
- private: acesso apenas dentro da classe
- protected: acesso por classes no mesmo pacote e subclasses
- public: acesso de qualquer classe
Modificadores de classes, variáveis ou métodos
- abstract: classe que não pode ser instanciada ou método que precisa ser implementado por uma subclasse não abstrata
- class: especifica uma classe
- extends: indica a superclasse que a subclasse está estendendo
- final: impossibilita que uma classe seja estendida, que um método seja sobrescrito ou que uma variável seja reinicializada
- implements: indica as interfaces que uma classe irá implementar
- interface: especifica uma interface
- native: indica que um método está escrito em uma linguagem dependente de plataforma, como o C
- new: instancia um novo objeto, chamando seu construtor
- static: faz um método ou variável pertencer à classe ao invés de às instâncias
- strictfp: usado em frente a um método ou classe para indicar que os números de ponto flutuante seguirão as regras de ponto flutuante em todas as expressões
- synchronized:indica que um método só pode ser acessado por uma thread de cada vez
- transient: impede a serialização de campos
- volatile:indica que uma variável pode ser alterada durante o uso de threads
Controle de fluxo dentro de um bloco de código
- break: sai do bloco de codigo em que ele está
- case: executa um bloco de código dependendo do teste do switch
- continue: pula a execução do código que viria após essa linha e vai para a próxima passagem do loop
- default: executa esse bloco de codigo caso nenhum dos teste de switch-case seja verdadeiro
- do: executa um bloco de código uma vez, e então realiza um teste em conjunto com o while para determinar se o bloco deverá ser executado novamente
- else: executa um bloco de código alternativo caso o teste if seja falso
- for: usado para realizar um loop condicional de um bloco de código
- if: usado para realizar um teste lógico de verdadeiro o falso
- instanceof: determina se um objeto é uma instância de determinada classe, superclasse ou interface
- return: retorna de um método sem executar qualquer código que venha depois desta linha (também pode retornar uma variável)
- switch: indica a variável a ser comparada nas expressões case
- while: executa um bloco de código repetidamente enquanto a condição for verdadeira
Tratamento de erros
- assert: testa uma expressão condicional para verificar uma suposição do programador
- catch: declara o bloco de código usado para tratar uma exceção
- finally: bloco de código, após um try-catch, que é executado independentemente do fluxo de programa seguido ao lidar com uma exceção
- throw: usado para passar uma exceção para o método que o chamou
- throws: indica que um método pode passar uma exceção para o método que o chamou
- try: bloco de código que tentará ser executado, mas que pode causar uma exceção
Controle de pacotes
- import:importa pacotes ou classes para dentro do código
- package: especifica a que pacote todas as classes de um arquivo pertencem
Primitivos
- boolean: um valor indicando verdadeiro ou falso
- byte: um inteiro de 8 bits (signed)
- char: um caracter unicode (16-bit unsigned)
- double: um número de ponto flutuante de 64 bits (signed)
- float: um número de ponto flutuante de 32 bits (signed)
- int: um inteiro de 32 bits (signed)
- long: um inteiro de 64 bits (signed)
- short: um inteiro de 32 bits (signed)
Variáveis de referência
- super: refere-se a superclasse imediata
- this: refere-se a instância atual do objeto
Retorno de um método
- void: indica que o método não tem retorno
Palavras reservadas não utilizadas
- const: Não utilize para declarar constantes; use public static final
- goto: não implementada na linguagem Java por ser considerada prejudicial
Literais reservados
De acordo com a Java Language Specification, null, true e false são tecnicamente chamados de valores literais, e não keywords. Se você tentar criar algum identificador com estes valores, você também terá um erro de compilação.
FONTE:As 52 palavras reservadas do Java
Aula 05: Tipos primitivos, convenções de código e comentários
public class com.devdojo.introducao.ImprimindoVariaveis {
public static void main(String[] args) {
int idadeDosPais = 50;
System.out.println("A idade é "+idadeDosPais);
}
}
Tipos primitivos Java:
Exemplo 01:
/**
* Criado por José Stélio Malcher Jr. on 14/09/2017.
*/
public class com.devdojo.introducao.RelatorioPendencia {
public static void main(String[] args) {
String nome = "Bulma";
String endereco = "456 Rua saiadin";
String telefone = "(91)98877-6655";
System.out.println("O "+nome + " mora em "+endereco+ " e seu telefone é "+ telefone + ". (ok)");
}
}
Exemplo 02:
/**
* Criado por José Stélio Malcher Jr. on 15/09/2017.
*/
public class com.devdojo.introducao.Operadores {
public static void main(String[] args) {
int numero1 = 10;
int numero2 = 20;
System.out.println(numero1+numero2);
System.out.println("A Soma é " + numero1+numero2);
System.out.println(numero1+numero2 + " SOMANDO... " + numero1 + numero2);
System.out.println(numero1+numero2 + " SOMANDO... " + (numero1 + numero2));
}
}
Saída
30
A Soma é 1020
30 SOMANDO... 1020
30 SOMANDO... 30
Operador de módulo/resto
int numeroInteiro = 20;
long numeroLong = 200000L;
double numeroDouble = 10d;
float numeroFloat = 20f;
numeroFloat = (float) numeroDouble;
int resto = 20 % 2;
System.out.println("Resto é " + resto);
System.out.println(numeroDouble);
com.devdojo.introducao.Operadores de comparação
boolean dezMaiorqueVinte = 10 >= 20;
boolean dezMenorqueVinte = 10 <= 20;
System.out.println(dezMaiorqueVinte);
System.out.println(dezMenorqueVinte);
System.out.println(5 == 5);
System.out.println(5 != 5);
false
true
true
false
Process finished with exit code 0
int idade = 18;
float salario = 5000f;
System.out.println(idade >= 21 && salario >= 2000);
System.out.println(idade <= 16 && salario <= 2000);
// false
// false
System.out.println(idade >= 21 || salario >= 2000);
System.out.println(idade <= 21 || salario >= 2000);
// true
// true
Exemplo:
int salario = 2000;
int numero = 11;
numero %= 2;
numero = numero % 2;
System.out.println(numero);
Exemplo:
2.5 Outra aplicação: adicionando inteiros
Scanner input = new Scanner(System.in);
int numero1;
int numero2;
int soma;
System.out.println("Entre com o primeiro numero");
numero1 = input.nextInt();
System.out.println("Entre com o segundo numero");
numero2 = input.nextInt();
soma = numero1 + numero2;
System.out.printf("A soma é %d%n", soma);
2.8 Tomada de decisão: operadores de igualdade e operadores relacionais
Scanner entrada = new Scanner(System.in);
int num1, num2;
System.out.println("Entre com o primeiro valor: ");
num1 = entrada.nextInt();
System.out.println("Entre com o segundo valor: ");
num2 = entrada.nextInt();
if(num1 == num2)
System.out.printf("%d == %d%n",num1,num2);
if(num1 != num2)
System.out.printf("%d != %d%n",num1,num2);
if(num1 < num2)
System.out.printf("%d < %d%n",num1,num2);
if(num1 > num2)
System.out.printf("%d > %d%n",num1,num2);
if(num1 <= num2)
System.out.printf("%d <= %d%n",num1,num2);
if(num1 >= num2)
System.out.printf("%d >= %d%n",num1,num2);
Seção 2.2 Nosso primeiro programa Java: imprimindo uma linha de texto
- Um aplicativo Java é executado quando você usa o comando "java" para iniciar a JVM.
- Comentários documentam programas e melhoram sua legibilidade. O compilador ignora-os.
- Um comentário que começa com // é de fim de linha — ele termina no fim da linha em que aparece.
- Comentários tradicionais podem se estender por várias linhas e são delimitados por /* e */ .
- Os comentários da Javadoc, delimitados por /** e */, permitem que você incorpore a documentação do programa no código. O programa utilitário javadoc gera páginas em HTML com base nesses comentários.
- Um erro de sintaxe (também chamado erro de compilador, erro em tempo de compilação ou erro de compilação) ocorre quando o compilador encontra um código que viola as regras da linguagem do Java. É semelhante a um erro de gramática em um idioma natural.
- Linhas em branco, caracteres de espaço em branco e caracteres de tabulação são conhecidos como espaço em branco. O espaço em branco torna os programas mais fáceis de ler e não é ignorado pelo compilador.
- As palavras-chave são reservadas para uso pelo Java e sempre são escritas com todas as letras minúsculas.
- A palavra-chave class introduz uma declaração de classe.
- Por convenção, todos os nomes de classes em Java começam com uma letra maiúscula e apresentam a letra inicial de cada palavra que eles incluem em maiúscula (por exemplo, SampleClassName).
- O nome de uma classe Java é um identificador — uma série de caracteres consistindo em letras, dígitos, sublinhados ( _ ) e sinais de cifrão ($) que não iniciem com um dígito nem contenham espaços.
- O Java faz distinção entre maiúsculas e minúsculas.
- O corpo de cada declaração de classe é delimitado por chaves, { e }.
- Uma declaração de class public deve ser salva em um arquivo com o mesmo nome da classe seguido pela extensão “.java”.
- O método main é o ponto de partida de cada aplicativo Java e deve iniciar com
public static void main(String[] args)
Caso contrário, a JVM não executará o aplicativo.
- Os métodos realizam tarefas e retornam informações ao concluí-las. A palavra-chave void indica que um método executará uma tarefa, mas não retornará nenhuma informação.
- As instruções instruem o computador a realizar ações.
- Uma string entre aspas duplas é às vezes chamada de string de caracteres ou string literal.
- O objeto de saída padrão (System.out) exibe caracteres na janela de comando.
- O método System.out.println exibe seu argumento na janela de comando seguido por um caractere de nova linha para posicionar o cursor de saída no começo da próxima linha.
- Você compila um programa com o comando javac. Se o programa não contiver nenhum erro de sintaxe, um arquivo de classe contendo os bytecodes Java que representam o aplicativo é criado. Esses bytecodes são interpretados pela JVM quando executamos o programa.
- Para executar um aplicativo, digite java seguido pelo nome da classe que contém main.
Seção 2.3 Modificando nosso primeiro programa Java
- System.out.print exibe seu argumento e posiciona o cursor de saída imediatamente após o último caractere exibido.
- Uma barra invertida () em uma string é um caractere de escape. O Java combina-o com o próximo caractere para formar uma sequência de escape. A sequência de escape \n representa o caractere de nova linha.
Seção 2.4 Exibindo texto com printf
- O método System.out.printf (f significa “formatado”) exibe os dados formatados.
- O primeiro argumento do método printf é uma string de formato contendo especificadores de texto fixo e/ou de formato. Cada especificador de formato indica o tipo de dado a ser gerado e é um espaço reservado para um argumento correspondente que aparece após a string de formato.
- Especificadores de formato iniciam com um sinal de porcentagem (%) e são seguidos por um caractere que representa o tipo de dado. O especificador de formato %s é um espaço reservado para uma string de caracteres.
- O especificador de formato %n é um separador de linha portável. Você não pode usar %n no argumento para System.out.print ou System.out.println; mas o separador de linha gerado por System.out.println depois que ele exibe seu argumento é portável em diferentes sistemas operacionais.
Seção 2.5 Outra aplicação: adicionando inteiros
- Uma declaração import ajuda o compilador a localizar uma classe que é usada em um programa.
- O rico conjunto do Java de classes predefinidas é agrupado em pacotes — chamados de grupos de classes. Esses são referidos como biblioteca de classes Java, ou Interface de Programação de Aplicativo Java (API Java).
- Uma variável é uma posição na memória do computador na qual um valor pode ser armazenado para utilização posterior em um programa. Todas as variáveis devem ser declaradas com um nome e um tipo antes que possam ser utilizadas.
- O nome de uma variável permite que o programa acesse o valor dela na memória.
- Um Scanner (pacote java.util) permite que um programa leia os dados que utilizará. Antes de um Scanner poder ser utilizado, o programa deve criá-lo e especificar a origem dos dados.
- Variáveis devem ser inicializadas a fim de serem preparadas para uso em um programa.
- A expressão new Scanner(System.in) cria um Scanner que lê a partir do objeto de entrada padrão (System.in) — normalmente o teclado.
- O tipo de dado int é utilizado para declarar variáveis que conterão valores de inteiro. O intervalo de valores para um int é –2.147.483.648 a +2.147.483.647.
- Os tipos float e double especificam números reais com pontos decimais, como 3.4 e -11.19.
- Variáveis do tipo char representam caracteres individuais, como uma letra maiúscula (por exemplo, A), um dígito (por exemplo, 7), um caractere especial (por exemplo, * ou %) ou uma sequência de escape (por exemplo, tab, \t).
- Tipos como int, float, double e char são primitivos. Os nomes dos tipos primitivos são palavras-chave; portanto, todos devem aparecer em letras minúsculas.
- Um prompt direciona o usuário a tomar uma ação específica.
- O método Scanner nextInt obtém um inteiro para uso em um programa.
- O operador de atribuição, =, permite ao programa atribuir um valor a uma variável. Ele é chamado operador binário, porque tem dois operandos.
- Partes das declarações que contêm valores são chamadas expressões.
- O especificador de formato %d é um marcador de lugar para um valor int.
Seção 2.6 Conceitos de memória
- Os nomes de variável correspondem a posições na memória do computador. Cada variável tem um nome, um tipo, um tamanho e um valor.
- Um valor que é colocado em uma posição de memória substitui o valor anterior dessa posição, que é perdido.
Seção 2.7 Aritmética
- Os operadores aritméticos são + (adição), - (subtração), * (multiplicação), / (divisão) e % (resto).
- A divisão de inteiros produz um quociente com inteiros.
- O operador de resto, %, fornece o resto depois da divisão.
- As expressões aritméticas devem ser escritas em forma de linha reta.
- Se uma expressão contém parênteses aninhados, o conjunto mais interno é avaliado primeiro.
- O Java aplica os operadores a expressões aritméticas em uma sequência precisa determinada pelas regras de precedência de operador.
- Quando dizemos que operadores são aplicados da esquerda para a direita, estamos nos referindo à sua associatividade. Alguns operadores associam da direita para a esquerda.
- Parênteses redundantes podem tornar uma expressão mais clara.
Seção 2.8 Tomada de decisão: operadores de igualdade e operadores relacionais
- A instrução if toma uma decisão baseada no valor de uma condição (verdadeiro ou falso).
- As condições em instruções if podem ser formadas utilizando-se os operadores de igualdade (== e !=) e relacionais (>, <, >= e <=).
- Uma instrução if começa com a palavra-chave if, seguida por uma condição entre parênteses, e espera uma instrução no seu corpo.
- A instrução vazia é do tipo que não realiza qualquer tarefa.
Exemplo aula 10:
// idade < 15 cat infantil
// idade >= 15 && idade < 18 Ccat juvenil
// idade >= 18 cat adulto
int idade = 18;
String categoria;
if(idade < 15){
categoria = "infantil";
}else if(idade >=15 && idade < 18){
categoria = "Juvenil";
}else{
categoria = "Adulto";
}
System.out.println(categoria);
O Java fornece o operador condicional (?:), que pode ser utilizado no lugar de uma instrução if...else. Isso pode tornar o código mais curto e mais claro. O operador condicional é o único operador ternário do Java (isto é, um operador que recebe três operandos). Juntos, os operandos e o símbolo ?: formam uma expressão condicional. O primeiro operando (à esquerda do ?) é uma expressão boolean (isto é, uma condição que é avaliada como um valor boolean — true ou false), o segundo operando (entre o ? e :) é o valor da expressão condicional se a expressão boolean for true e o terceiro operando (à direita do :) é o valor da expressão condicional se a expressão boolean for avaliada como false.
Exemplo: Operador ternario
int idade = 15;
String status;
status = idade < 18 ? "Não Adulto" : "Adulto";
System.out.println(status);
Tabela Verdade
// create truth table for && (conditional AND) operator
System.out.printf("%s%n%s: %b%n%s: %b%n%s: %b%n%s: %b%n%n",
"Conditional AND (&&)", "false && false", (false && false),
"false && true", (false && true),
"true && false", (true && false),
"true && true", (true && true));
// create truth table for || (conditional OR) operator
System.out.printf("%s%n%s: %b%n%s: %b%n%s: %b%n%s: %b%n%n",
"Conditional OR (||)", "false || false", (false || false),
"false || true", (false || true),
"true || false", (true || false),
"true || true", (true || true));
// create truth table for & (boolean logical AND) operator
System.out.printf("%s%n%s: %b%n%s: %b%n%s: %b%n%s: %b%n%n",
"Boolean logical AND (&)", "false & false", (false & false),
"false & true", (false & true),
"true & false", (true & false),
"true & true", (true & true));
// create truth table for | (boolean logical inclusive OR) operator
System.out.printf("%s%n%s: %b%n%s: %b%n%s: %b%n%s: %b%n%n",
"Boolean logical inclusive OR (|)",
"false | false", (false | false),
"false | true", (false | true),
"true | false", (true | false),
"true | true", (true | true));
// create truth table for ^ (boolean logical exclusive OR) operator
System.out.printf("%s%n%s: %b%n%s: %b%n%s: %b%n%s: %b%n%n",
"Boolean logical exclusive OR (^)",
"false ^ false", (false ^ false),
"false ^ true", (false ^ true),
"true ^ false", (true ^ false),
"true ^ true", (true ^ true));
// create truth table for ! (logical negation) operator
System.out.printf("%s%n%s: %b%n%s: %b%n", "Logical NOT (!)",
"!false", (!false), "!true", (!true));
Conditional AND (&&)
false && false: false
false && true: false
true && false: false
true && true: true
Conditional OR (||)
false || false: false
false || true: true
true || false: true
true || true: true
Boolean logical AND (&)
false & false: false
false & true: false
true & false: false
true & true: true
Boolean logical inclusive OR (|)
false | false: false
false | true: true
true | false: true
true | true: true
Boolean logical exclusive OR (^)
false ^ false: false
false ^ true: true
true ^ false: true
true ^ true: false
Logical NOT (!)
!false: true
!true: false
Exercício:
public class com.devdojo.introducao.ExercicioControledeFluxo {
public static void main(String[] args) {
/*
Crie uma variavel salario e imprima seu imposto
imposto:
salario < 1000 5%
salario >= 1000 && salario < 2000 10%
salario >= 2000 && salario < 4000 15%
salario > 5000 20%
*/
double salario = 2000;
double totalImposto = 0 ;
if(salario <= 1000){
System.out.println("entrou 1");
totalImposto = salario * 0.05;
}else if(salario>= 1000 && salario < 2000){
System.out.println("entrou 2");
totalImposto = salario * 0.1;
}else if(salario>= 2000 && salario < 4000){
totalImposto = salario * 0.15;
}else{
totalImposto = salario * 0.2;
}
System.out.println("O total de imposto e: " + totalImposto);
}
}
link: https://www.youtube.com/watch?v=2vngkzInOEo
public class com.devdojo.introducao.ControleFluxo3 {
public static void main(String[] args) {
byte dia = 5; // char, int, byte, short, enum e String
switch (dia) {
case 1:
System.out.println("domingo");
break;
case 2:
System.out.println("segunda");
break;
case 3:
System.out.println("terca");
break;
case 4:
System.out.println("quarta");
break;
case 5:
System.out.println("quinta");
break;
case 6:
System.out.println("sexta");
break;
case 7:
System.out.println("sabado");
break;
}
String sexo = "FF";
switch (sexo) {
case "F":
System.out.println("Feminino");
break;
case "M":
System.out.println("Masculino");
break;
default:
System.out.println("Opcao invalida");
break;
}
}
}
Aula: https://www.youtube.com/watch?v=wtkPdOzewDQ
public class com.devdojo.introducao.ExercicioControleFluxo2 {
public static void main(String[] args) {
// Crie um switch que dado um valor de 1 a 7
// Considerando 1 domingo imprima se é dia util ou final de semana
byte dia = 8;
switch (dia) {
case 1:
case 7:
System.out.println("FINAL DE SEMANA!");
break;
case 2:
case 3:
case 4:
case 5:
case 6:
System.out.println("DIA ÚTIL");
break;
default:
System.out.println("Opção inválida");
}
}
}
Aula: https://www.youtube.com/watch?v=bAqBN-_Iqs8
public class com.devdojo.introducao.ControleFluxo4 {
public static void main(String[] args) {
int contador = 11;
while (contador < 10) {
System.out.println(++contador);
}
contador = 0;
do {
System.out.println("dentro do do while: "+ contador++);
} while (contador < 10);
for (int i = 0; i < 10; i++) {
System.out.println("valor de i é: " + i);
if(i==5){
break;
}
}
}
}
vídeo: https://www.youtube.com/watch?v=AR8I88rmyzg
public class com.devdojo.introducao.ExercicioControleFluxo3 {
public static void main(String[] args) {
//Imprima todos os numeros pares de 0 até 100000
int valor = 100000;
for (int i = 0; i <= valor; i++) {
if (i % 2 != 0) {
System.out.println(i);
}
}
}
}
link da aula: https://www.youtube.com/watch?v=ucin9R76150&index=18&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
public class com.devdojo.introducao.ControleFluxo5 {
public static void main(String[] args) {
// Dado um valor de um carro, descubra em quantas parcelas ele pode ser parcelado.
//porém as parcelas não podem ser menores que 1000.
double valorTotal = 30000;
for(int parcela = 1 ; parcela <= valorTotal ; parcela++){
double valorParcala = valorTotal/parcela;
/*if(valorParcala >= 1000){
System.out.println("Parcela "+ parcela + " R$ " + valorParcala);
}else {
System.out.println("Saindo do laço");
break;
}*/
if(valorParcala < 1000){
break;
}
System.out.println("Parcela "+ parcela + " R$ " + valorParcala);
}
System.out.println("FORA do laço!");
}
}
public class com.devdojo.introducao.ControleFluxo6 {
public static void main(String[] args) {
// Dado um valor de um carro, descubra em quantas parcelas ele pode ser parcelado.
//porém as parcelas não podem ser menores que 1000.
double valorTotal = 30000;
for(int parcela = (int)valorTotal ; parcela >= 1 ; parcela--){
double valorParcela = valorTotal / parcela;
if(valorParcela <= 1000){
continue;
//códigos aqui... resultará em erro de compilação!
}
System.out.println("Parcela "+ parcela + " R$ " + valorParcela);
System.out.println("CODIGO CONSUMINDO MEMORIA!");
}
}
}
Aula: https://www.youtube.com/watch?v=S2d_WfyuNmI&index=19&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
public class com.devdojo.introducao.Arrays1 {
public static void main(String[] args) {
int[] idades = new int[3];
idades[0] = 20;
idades[1] = 15;
idades[2] = 30;
System.out.println("Idedade 0 " + idades[0]);
System.out.println("Idedade 1 " + idades[1]);
System.out.println("Idedade 2 " + idades[2]);
}
}
Aula: https://www.youtube.com/watch?v=p5PJuCxlzo4&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=20
public class com.devdojo.introducao.Arrays2 {
public static void main(String[] args) {
//byte, short, int, long, float, double = 0
// char '\u0000' ' '
//boolean false;
// reference null
String[] nomes = new String[3];
nomes[0] = "Naruto";
nomes[1] = "Goku";
nomes[2] = "Luffy";
for (int i = 0; i < nomes.length; i++) {
System.out.println((i + 1) + " nome " + nomes[i]);
}
nomes = new String[4];
// "nomes" perde a referência.. é criando um novo obj. array.
}
}
Aula: https://www.youtube.com/watch?v=9zfJqV9TbYQ&index=21&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
public class com.devdojo.introducao.Arrays3 {
public static void main(String[] args) {
int[] numeros = new int[5];
int[] numeros2 = {1, 2, 3, 4, 5};// tam: 5, index: 0 até 4
int[] numeros3 = new int[]{1, 2, 3, 4, 5};
for (int i = 0; i < numeros2.length; i++) {
System.out.println(numeros2[i]);
}
// mais usado:
for (int num : numeros2) {
System.out.println(num);
}
}
}
public class com.devdojo.introducao.Arrays4 {
public static void main(String[] args) {
String[] nomes = {"Juju", "Jao Jao", "Xu xu"};
for (String nome : nomes) {
System.out.println(nome);
}
}
}
public class com.devdojo.introducao.Arrays5 {
public static void main(String[] args) {
int[][] dias = new int[2][2];
dias[0][0] = 30;
dias[0][1] = 31;
dias[1][0] = 29;
dias[1][1] = 28;
for (int i = 0; i < dias.length; i++) {
System.out.println(dias[i]); // imprime os endereços de memória
for (int j = 0; j < dias[i].length; j++) {
System.out.println(dias[i][j]);
}
}
System.out.println("---------------");
for (int[] ref : dias) {
for (int dia : ref) {
System.out.println(dia);
}
}
}
}
public class com.devdojo.introducao.Arrays6 {
public static void main(String[] args) {
int[] arrInt = {1, 2, 3};
int[] arrInt2 = new int[3];
int[] arrInt3 = new int[]{1, 2, 3};
// int[][] dias = new int[3][];
// dias[0] = new int[2];
// dias[1] = new int[]{1,2,3};
// dias[2] = new int[4];
int[][] dias = {{0, 0}, {1, 2, 3}, {0, 0, 0, 0}};
// qual é o valor da posicao [1][2] = 3
for (int[] arr : dias) {
for (int num : arr) {
System.out.println(num);
}
}
}
}
vídeo: https://www.youtube.com/watch?v=u1Nd4UIGJeI&index=24&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
Ajuste nas pastas/pacotes do projeto atual!
package com.devdojo.javacore.a.introducaoclasses.classes;
public class Estudante {
public String nome;
public String matricula;
public int idade;
}
package com.devdojo.javacore.a.introducaoclasses.test;
import com.devdojo.javacore.a.introducaoclasses.classes.Estudante;
public class EstudanteTest {
public static void main(String[] args) {
Estudante joao = new Estudante();
joao.nome = "Joao";
joao.matricula = "1212";
joao.idade = 15;
System.out.println(joao.nome);
System.out.println(joao.matricula);
System.out.println(joao.idade);
}
}
package com.devdojo.javacore.a.introducaoclasses.classes;
public class Carro {
public String placa;
public String modelo;
public float velocidadeMaxima;
}
package com.devdojo.javacore.a.introducaoclasses.test;
import com.devdojo.javacore.a.introducaoclasses.classes.Carro;
public class CarroTest {
public static void main(String[] args) {
Carro carro = new Carro();
carro.modelo = "Fusca";
carro.placa = "QWJ1029";
carro.velocidadeMaxima = 120f;
System.out.println(carro.placa);
System.out.println(carro.modelo);
System.out.println(carro.velocidadeMaxima);
}
}
package com.devdojo.javacore.a.introducaoclasses.classes;
/**
* Crie os seguintes atributos para essa classe
* Nome
* Matricula
* rg
* cpf
* Crie uma classe de teste para preencher e imprimir os dados desse professor
**/
public class Professor {
public String nome;
public String matricula;
public String rg;
public String cpf;
}
package com.devdojo.javacore.a.introducaoclasses.test;
import com.devdojo.javacore.a.introducaoclasses.classes.Professor;
public class ProfessorTest {
public static void main(String[] args) {
Professor prof = new Professor();
prof.cpf ="111.122.131-20";
prof.nome = "Jurandir";
prof.rg = "20201-2";
prof.matricula = "1121";
Professor prof2 = new Professor();
prof2.cpf ="222.222.222-22";
prof2.nome = "Juciclei";
prof2.rg = "9982-2";
prof2.matricula = "0921C";
prof = prof2;
System.out.println(prof.cpf);
System.out.println(prof.nome);
System.out.println(prof.rg);
System.out.println(prof.matricula);
System.out.println("----------------------");
System.out.println(prof2.cpf);
System.out.println(prof2.nome);
System.out.println(prof2.rg);
System.out.println(prof2.matricula);
}
}
Aula: https://www.youtube.com/watch?v=GEjFD9qvUVM&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=28
package com.devdojo.javacore.b.introducaometodos.classes;
public class Calculadora {
public void somaDoisNumeros() {
System.out.println(5 + 5);
}
public void subtraiDoisNumeros() {
System.out.println(5 - 5);
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Calculadora;
public class CalculadoraTest {
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
calculadora.somaDoisNumeros();
calculadora.subtraiDoisNumeros();
System.out.println("Continuando a exec....");
}
}
Aula: https://www.youtube.com/watch?v=ocBUcd7T65E&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=29
package com.devdojo.javacore.b.introducaometodos.classes;
public class Calculadora {
public void somaDoisNumeros() {
System.out.println(5 + 5);
}
public void subtraiDoisNumeros() {
System.out.println(5 - 5);
}
public void multiplicaDoisNumeros(double num1, int num2) {
System.out.println(num1 * num2);
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Calculadora;
public class CalculadoraTest {
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
calculadora.somaDoisNumeros();
calculadora.subtraiDoisNumeros();
calculadora.multiplicaDoisNumeros(55.5,5);
}
}
Aula: https://www.youtube.com/watch?v=ye-cC3bhjlg&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=30
package com.devdojo.javacore.b.introducaometodos.classes;
public class Calculadora {
public void somaDoisNumeros() {
System.out.println(5 + 5);
}
public void subtraiDoisNumeros() {
System.out.println(5 - 5);
}
public void multiplicaDoisNumeros(double num1, int num2) {
System.out.println(num1 * num2);
}
public double divideDoisNumeros(double num1, double num2) {
return num1 / num2;
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Calculadora;
public class CalculadoraTest {
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
calculadora.somaDoisNumeros();
calculadora.subtraiDoisNumeros();
calculadora.multiplicaDoisNumeros(55.5,5);
System.out.println("divisao de dois numeros");
double result = calculadora.divideDoisNumeros(20,2);
System.out.println(result);
}
}
AULA: https://www.youtube.com/watch?v=SGrAPbGUCJo&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=31
package com.devdojo.javacore.b.introducaometodos.classes;
public class Calculadora {
public void somaDoisNumeros() {
System.out.println(5 + 5);
}
public void subtraiDoisNumeros() {
System.out.println(5 - 5);
}
public void multiplicaDoisNumeros(double num1, int num2) {
System.out.println(num1 * num2);
}
public double divideDoisNumeros(double num1, double num2) {
if (num2 != 0) {
return num1 / num2;
}
return 0;
}
public void imprimeDoisNumerosDivididos(double num1, double num2) {
if (num2 != 0) {
System.out.println(num1 / num2);
return; //funciona como um break
}
System.out.println("Não é possivel dividir por 0 ");
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Calculadora;
public class CalculadoraTest {
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
calculadora.somaDoisNumeros();
calculadora.subtraiDoisNumeros();
calculadora.multiplicaDoisNumeros(55.5,5);
System.out.println("divisao de dois numeros");
double result = calculadora.divideDoisNumeros(20,2);
System.out.println(result);
System.out.println("imprimindo dois numeros divididos");
calculadora.imprimeDoisNumerosDivididos(20,0);
}
}
AULA: https://www.youtube.com/watch?v=WHd3PRcFbQw&index=32&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.b.introducaometodos.classes;
public class Calculadora {
public void somaDoisNumeros() {
System.out.println(5 + 5);
}
public void subtraiDoisNumeros() {
System.out.println(5 - 5);
}
public void multiplicaDoisNumeros(double num1, int num2) {
System.out.println(num1 * num2);
}
public double divideDoisNumeros(double num1, double num2) {
if (num2 != 0) {
return num1 / num2;
}
return 0;
}
public void imprimeDoisNumerosDivididos(double num1, double num2) {
if (num2 != 0) {
System.out.println(num1 / num2);
return; //funciona como um break
}
System.out.println("Não é possivel dividir por 0 ");
}
public static void alteraDoisNumeros(int a, int b) {
a = 30;
b = 40;
System.out.println("Dentro do altera dois numeros");
System.out.println("num1: " + a);
System.out.println("num2: " + b);
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Calculadora;
public class ParametrosTest {
public static void main(String[] args) {
Calculadora calc = new Calculadora();
int num1 = 5;
int num2 = 10;
calc.alteraDoisNumeros(num1, num2);
System.out.println("dentro do teste");
System.out.println("num1: " + num1);
System.out.println("num2: " + num2);
}
}
package com.devdojo.javacore.b.introducaometodos.classes;
public class Professor {
public String nome;
public String matricula;
public String rg;
public String cpf;
public void imprime(Professor aux) {
System.out.println("----------------------");
System.out.println(this.cpf);
System.out.println(this.matricula);
System.out.println(this.nome);
System.out.println(this.rg);
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Professor;
public class ProfessorTest {
public static void main(String[] args) {
Professor prof = new Professor();
prof.cpf = "122.222.232-20";
prof.matricula = "11122";
prof.nome = "Marcos";
prof.rg = "122211-5";
Professor prof2 = new Professor();
prof2.cpf = "222.111.888-20";
prof2.matricula = "44444";
prof2.nome = "Joana";
prof2.rg = "2122-6";
prof.imprime(prof);
prof.imprime(prof2); // algo aqui errado que parece não está certo!!
}
}
Aula: https://www.youtube.com/watch?v=JWukxtWTG7E&index=33&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.b.introducaometodos.classes;
public class Professor {
public String nome;
public String matricula;
public String rg;
public String cpf;
public void imprime() {
System.out.println("----------------------");
System.out.println(this.cpf);
System.out.println(this.matricula);
System.out.println(this.nome);
System.out.println(this.rg);
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Professor;
public class ProfessorTest {
public static void main(String[] args) {
Professor prof = new Professor();
prof.cpf = "122.222.232-20";
prof.matricula = "11122";
prof.nome = "Marcos";
prof.rg = "122211-5";
Professor prof2 = new Professor();
prof2.cpf = "222.111.888-20";
prof2.matricula = "44444";
prof2.nome = "Joana";
prof2.rg = "2122-6";
prof.imprime();
prof2.imprime();
}
}
Aula: https://www.youtube.com/watch?v=L151aRhoNSM&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=34
package com.devdojo.javacore.b.introducaometodos.classes;
public class Calculadora {
public void somaDoisNumeros() {
System.out.println(5 + 5);
}
public void subtraiDoisNumeros() {
System.out.println(5 - 5);
}
public void multiplicaDoisNumeros(double num1, int num2) {
System.out.println(num1 * num2);
}
public double divideDoisNumeros(double num1, double num2) {
if (num2 != 0) {
return num1 / num2;
}
return 0;
}
public void imprimeDoisNumerosDivididos(double num1, double num2) {
if (num2 != 0) {
System.out.println(num1 / num2);
return; //funciona como um break
}
System.out.println("Não é possivel dividir por 0 ");
}
public void alteraDoisNumeros(int a, int b) {
a = 30;
b = 40;
System.out.println("Dentro do altera dois numeros");
System.out.println("num1: " + a);
System.out.println("num2: " + b);
}
public void somaArray(int[] numeros) {
int soma = 0;
for (int num : numeros) {
soma += num;
}
System.out.println(soma);
}
//public void somaVarArgs(double numero1, int... numeros) //precisa sempre ser o último
public void somaVarArgs(int... numeros) { //apenas um por assinatura de método!
int soma = 0;
for (int num : numeros) {
soma += num;
}
System.out.println(soma);
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Calculadora;
public class CalculadoraTest {
public static void main(String[] args) {
Calculadora calculadora = new Calculadora();
calculadora.somaDoisNumeros();
calculadora.subtraiDoisNumeros();
calculadora.multiplicaDoisNumeros(55.5,5);
System.out.println("divisao de dois numeros");
double result = calculadora.divideDoisNumeros(20,2);
System.out.println(result);
System.out.println("imprimindo dois numeros divididos");
calculadora.imprimeDoisNumerosDivididos(20,0);
int[] numeros = {1,2,3,4,5};
calculadora.somaArray(numeros);
calculadora.somaVarArgs(1,2,3,4,5);
}
}
AULA: https://www.youtube.com/watch?v=LXWXkvRIn-k&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=35
RESUMO SOBRE UML: http://josemalcher.net/resumo-diagramas-uml/
DEVMEDIA: http://www.devmedia.com.br/o-que-e-uml-e-diagramas-de-caso-de-uso-introducao-pratica-a-uml/23408
AULA: https://www.youtube.com/watch?v=Qx4-p5fn_rA&index=36&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.b.introducaometodos.classes;
public class Estudante {
public String nome;
public int idade;
public double[] notas;
public void print() {
System.out.println("Nome: " + this.nome);
System.out.println("Idade: " + this.idade);
if (this.notas != null) {
for (double nota : this.notas) {
System.out.print(nota + " ");
}
}
}
public void tirarMedia() {
if (this.notas == null) {
System.out.println("Esse aluno não possui notas");
return;
}
double media = 0;
for (double nota : this.notas) {
media += nota;
}
media = media / this.notas.length;
if (media > 6) {
System.out.println("\n A média é: " + media + " situação: aprovado");
} else {
System.out.println("\n A média é: " + media + " situação: reprovado");
}
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Estudante;
public class EstudanteTest {
public static void main(String[] args) {
Estudante estudante = new Estudante();
estudante.nome = "William Suane";
estudante.idade = 18;
//estudante.notas = new double[]{3, 2, 9.5};
estudante.print();
estudante.tirarMedia();
}
}
package com.devdojo.javacore.b.introducaometodos.classes;
public class Estudante {
private String nome;
private int idade;
private double[] notas;
public void print() {
System.out.println("Nome: " + this.nome);
System.out.println("Idade: " + this.idade);
if (this.notas != null) {
for (double nota : this.notas) {
System.out.print(nota + " ");
}
}
}
public void tirarMedia() {
if (this.notas == null) {
System.out.println("Esse aluno não possui notas");
return;
}
double media = 0;
for (double nota : this.notas) {
media += nota;
}
media = media / this.notas.length;
if (media > 6) {
System.out.println("\n A média é: " + media + " situação: aprovado");
} else {
System.out.println("\n A média é: " + media + " situação: reprovado");
}
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
if(idade < 1){
System.out.println("Você não pode alterar a idade!");
return;
}
this.idade = idade;
}
public double[] getNotas() {
return notas;
}
public void setNotas(double[] notas) {
this.notas = notas;
}
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Estudante;
public class EstudanteTest {
public static void main(String[] args) {
Estudante estudante = new Estudante();
estudante.setNome("William Suane");
estudante.setIdade(18);
estudante.setNotas(new double[]{3, 2, 9.5});
estudante.print();
estudante.tirarMedia();
System.out.println(estudante.getNome());
}
}
Aula: https://www.youtube.com/watch?v=9MVmEPb7GYc&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=38
package com.devdojo.javacore.b.introducaometodos.classes;
public class Estudante {
private String nome;
private int idade;
private double[] notas;
private boolean aprovado;
public void print() {
System.out.println("Nome: " + this.nome);
System.out.println("Idade: " + this.idade);
if (this.notas != null) {
for (double nota : this.notas) {
System.out.print(nota + " ");
}
}
}
public void tirarMedia() {
if (this.notas == null) {
System.out.println("Esse aluno não possui notas");
return;
}
double media = 0;
for (double nota : this.notas) {
media += nota;
}
media = media / this.notas.length;
if (media > 6) {
this.aprovado = true;
System.out.println("\n A média é: " + media + " situação: aprovado");
} else {
this.aprovado = false;
System.out.println("\n A média é: " + media + " situação: reprovado");
}
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
if(idade < 1){
System.out.println("Você não pode alterar a idade!");
return;
}
this.idade = idade;
}
public double[] getNotas() {
return notas;
}
public void setNotas(double[] notas) {
this.notas = notas;
}
public boolean isAprovado() { //get
return aprovado;
}
/*public void setAprovado(boolean aprovado) {
this.aprovado = aprovado;
}*/
}
package com.devdojo.javacore.b.introducaometodos.test;
import com.devdojo.javacore.b.introducaometodos.classes.Estudante;
public class EstudanteTest {
public static void main(String[] args) {
Estudante estudante = new Estudante();
estudante.setNome("William Suane");
estudante.setIdade(18);
estudante.setNotas(new double[]{3, 2, 9.5});
estudante.print();
estudante.tirarMedia();
System.out.println(estudante.getNome());
System.out.println("Aluno Aprovado? "+ estudante.isAprovado() );
}
}
AUla: https://www.youtube.com/watch?v=uq4O__CGPdo&index=39&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.c.sobrecargametodos.classes;
public class Funcionario {
private String nome;
private String cpf;
private double salario;
private String rg;
public Funcionario(String nome, String cpf, double salario, String rg) {
this.nome = nome;
this.cpf = cpf;
this.salario = salario;
this.rg = rg;
}
public void init(String nome, String cpf, double salario) {
this.nome = nome;
this.cpf = cpf;
this.salario = salario;
}
public void init(String nome, String cpf, double salario, String rg) {
init(nome, cpf, salario);
this.rg = rg;
}
public void imprime() {
System.out.println(this.nome);
System.out.println(this.cpf);
System.out.println(this.salario);
System.out.println(this.rg);
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.c.sobrecargametodos.test;
import com.devdojo.javacore.c.sobrecargametodos.classes.Funcionario;
public class FuncionarioTest {
public static void main(String[] args) {
Funcionario funcionario = new Funcionario("Chica da Silva", "111.222.333-44", 4500, "122212-9");
funcionario.imprime();
}
}
AULA: https://www.youtube.com/watch?v=IcR84k4NV1M&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=40
public class Funcionario {
private String nome;
private String cpf;
private double salario;
private String rg;
public Funcionario() {
System.out.println("Dentro do COntrutor!");
}
public Funcionario(String nome, String cpf, double salario, String rg) {
this.nome = nome;
this.cpf = cpf;
this.salario = salario;
this.rg = rg;
}
package com.devdojo.javacore.c.sobrecargametodos.test;
import com.devdojo.javacore.c.sobrecargametodos.classes.Funcionario;
public class FuncionarioTest {
public static void main(String[] args) {
Funcionario funcionario2 = new Funcionario();
Funcionario funcionario = new Funcionario("Chica da Silva", "111.222.333-44", 4500, "122212-9");
funcionario.imprime();
funcionario2.imprime();
}
}
https://www.youtube.com/watch?v=RufTevo0S0M&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=41
package com.devdojo.javacore.d.obrecargaconstrutores.classes;
public class Estudante {
private String matricula;
private String nome;
private double[] notas;
private String dataMatricula;
public Estudante(String matricula, String nome, double[] notas) {
this.matricula = matricula;
this.nome = nome;
this.notas = notas;
}
public Estudante(String matricula, String nome, double[] notas, String dataMatricula) {
this(matricula,nome,notas); //sempre deve ser a primeira linha!
/*this.matricula = matricula;
this.nome = nome;
this.notas = notas;*/
this.dataMatricula = dataMatricula;
}
public Estudante() {
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double[] getNotas() {
return notas;
}
public void setNotas(double[] notas) {
this.notas = notas;
}
public String getDataMatricula() {
return dataMatricula;
}
public void setDataMatricula(String dataMatricula) {
this.dataMatricula = dataMatricula;
}
public void imprime() {
System.out.println(this.nome);
System.out.println(this.matricula);
for (double nota : notas) {
System.out.println(nota + " ");
}
System.out.println(this.dataMatricula);
}
}
package com.devdojo.javacore.d.obrecargaconstrutores.test;
import com.devdojo.javacore.d.obrecargaconstrutores.classes.Estudante;
public class EstudanteTest {
public static void main(String[] args) {
Estudante est = new Estudante("12212","Carlitos", new double[]{5,7,9},"13/04/2016");
est.imprime();
}
}
package com.devdojo.javacore.e.blocodeinicializacao.classes;
public class Cliente {
// 1 - Alocado espaco na memoria para o objeto que será criado
// 2 - Cada atributo de classe é criado e inicializado com seus valores default ou valores explicitos
// 3 - Bloco de inicializacao é executado
// 4 - O construtor é executado
private int[] parcelas;
{ //início do bloco de inicialização
parcelas = new int[100];
System.out.println("Dentro do bloco de inicializacao");
for (int i = 1; i <= 100; i++) {
parcelas[i - 1] = i;
}
} // fim
public Cliente() {
}
public int[] getParcelas() {
return parcelas;
}
public void setParcelas(int[] parcelas) {
this.parcelas = parcelas;
}
}
package com.devdojo.javacore.e.blocodeinicializacao.test;
import com.devdojo.javacore.e.blocodeinicializacao.classes.Cliente;
public class ClienteTeste {
public static void main(String[] args) {
Cliente c = new Cliente();
System.out.println("Exibindo quantidade de parcelas possiveis");
for(int parcela : c.getParcelas()){
System.out.print(parcela + " ");
}
}
}
Aula: https://www.youtube.com/watch?v=JFFfIN14oc4&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=43
package com.devdojo.javacore.f.modificadorestatico.classes;
public class Carro {
private String nome;
private double velocidadeMaxima;
public static double velocidadeLimite = 240;
public Carro(String nome, double velocidadeMaxima) {
this.nome = nome;
this.velocidadeMaxima = velocidadeMaxima;
}
public Carro() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getVelocidadeMaxima() {
return velocidadeMaxima;
}
public void setVelocidadeMaxima(double velocidadeMaxima) {
this.velocidadeMaxima = velocidadeMaxima;
}
/* public double getVelocidadeLimite() {
return velocidadeLimite;
}
public void setVelocidadeLimite(double velocidadeLimite) {
this.velocidadeLimite = velocidadeLimite;
}*/
public void imprime(){
System.out.println("--------------------");
System.out.println("Nome " + this.nome);
System.out.println("Velocidade maxima = " + this.velocidadeMaxima);
System.out.println("Velocidade limite = " + velocidadeLimite);
}
}
package com.devdojo.javacore.f.modificadorestatico.teste;
import com.devdojo.javacore.f.modificadorestatico.classes.Carro;
public class CarroTest {
public static void main(String[] args) {
Carro.velocidadeLimite = 220;
Carro c1 = new Carro("BMW", 280);
Carro c2 = new Carro("Audi", 275);
Carro c3 = new Carro("Mercedes", 290);
c1.imprime();
c2.imprime();
c3.imprime();
System.out.println("#######################");
c1.imprime();
c2.imprime();
c3.imprime();
}
}
package com.devdojo.javacore.f.modificadorestatico.classes;
public class Carro {
private String nome;
private double velocidadeMaxima;
public static double velocidadeLimite = 240;
public Carro(String nome, double velocidadeMaxima) {
this.nome = nome;
this.velocidadeMaxima = velocidadeMaxima;
}
public Carro() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getVelocidadeMaxima() {
return velocidadeMaxima;
}
public void setVelocidadeMaxima(double velocidadeMaxima) {
this.velocidadeMaxima = velocidadeMaxima;
}
public static double getVelocidadeLimite() {
return velocidadeLimite;
}
public static void setVelocidadeLimite(double velocidadeLimite) {
Carro.velocidadeLimite = velocidadeLimite;
}
public void imprime(){
System.out.println("--------------------");
System.out.println("Nome " + this.nome);
System.out.println("Velocidade maxima = " + this.velocidadeMaxima);
System.out.println("Velocidade limite = " + velocidadeLimite);
}
}
package com.devdojo.javacore.f.modificadorestatico.teste;
import com.devdojo.javacore.f.modificadorestatico.classes.Carro;
public class CarroTest {
public static void main(String[] args) {
//Carro.velocidadeLimite = 320;
Carro.setVelocidadeLimite(320);
Carro c1 = new Carro("BMW", 280);
Carro c2 = new Carro("Audi", 275);
Carro c3 = new Carro("Mercedes", 290);
c1.imprime();
c2.imprime();
c3.imprime();
System.out.println("#######################");
c1.imprime();
c2.imprime();
c3.imprime();
}
}
Aula: https://www.youtube.com/watch?v=QD3_CfitYDU&index=45&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.f.modificadorestatico.classes;
public class Cliente {
// 1 - Bloco de inicializacao estático é executado quando a JVM carregar a classe (é executado apenas 1 vez)
// 2 - Alocado espaco na memoria para o objeto que será criado
// 3 - Cada atributo de classe é criado e inicializado com seus valores default ou valores explicitos
// 4 - Bloco de inicializacao é executado
// 5 - O construtor é executado
private static int[] parcelas;
static { // é executado apenas uma vez | pode haver mais outros <<----
parcelas = new int[100];
System.out.println("Dentro do bloco de inicializacao estatico");
for(int i=1; i<=100;i++){
parcelas[i-1] = i;
}
}
public Cliente(){
}
public static int[] getParcelas() {
return parcelas;
}
}
package com.devdojo.javacore.f.modificadorestatico.teste;
import com.devdojo.javacore.f.modificadorestatico.classes.Cliente;
public class ClientTeste {
public static void main(String[] args) {
Cliente c = new Cliente();
Cliente c1 = new Cliente();
Cliente c2 = new Cliente();
System.out.println("Exibindo quantidade de parcelas possiveis");
/*for(int parcela : c.getParcelas()){
System.out.print(parcela + " ");
}*/
System.out.println("tamanho: " + Cliente.getParcelas().length);
}
}
Aula: https://www.youtube.com/watch?v=3OR-8ExlwvA&index=46&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.g.associacao.classes;
public class Pessoa {
private Departamento departamento;
private Endereco endereco;
}
package com.devdojo.javacore.g.associacao.classes;
public class Departamento {
private Pessoa[] pessoas;
}
package com.devdojo.javacore.g.associacao.classes;
public class Endereco {
private String rua;
private String bairro;
private String Estado;
// private Pessoa[] pessoas;
}
Crie um Sistema que gerencia seminários
Deverá cadastrar os seminários, cadastrar os alunos, cadastrat os professores e cadastrar um local.
Um aluno poderá estar em apenas um seminário.
um seminário poderá ter nenhum ou vários alunos.
Um professor poderá ministrar um ou vários seminários.
Um seminário só poderá ter um professor.
Um seminário deverá ter um local.
Seminário: título
Aluno: Nome e idade
Professor? Nome e esécialidade.
Local: rua e bairro.
https://www.youtube.com/watch?v=2blCZZJ3HP4&index=49&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
https://www.youtube.com/watch?v=TKE2Wk_ehks&index=50&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.g.associacao.classes_exercicio;
public class Aluno {
private String nome;
private int idade;
private Seminario seminario;
public Aluno(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
public Aluno() {
}
public void print() {
System.out.println("---------------Relatório de alunos---------------");
System.out.println("Nome: " + this.nome);
System.out.println("Idade: " + this.idade);
if (this.seminario != null)
System.out.println("Seminario inscrito: " + this.seminario.getTitulo());
else
System.out.println("Aluno não está inscrito em nenhum seminário");
}
public Seminario getSeminario() {
return seminario;
}
public void setSeminario(Seminario seminario) {
this.seminario = seminario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
package com.devdojo.javacore.g.associacao.classes_exercicio;
public class Seminario {
private String titulo;
private Aluno[] alunos;
private Professor professor;
private Local local;
public Seminario() {
}
public Seminario(String titulo) {
this.titulo = titulo;
}
public void print() {
System.out.println("---------------Relatório de seminários---------------");
System.out.println("Título: " + this.titulo);
if (this.professor != null)
System.out.println("Professor palestrante: " + this.professor.getNome());
else
System.out.println("Nenhum professor cadastrado para esse seminário");
if (this.local != null)
System.out.println("Local " + this.local.getRua() + " Bairro: " + this.local.getBairro());
else
System.out.println("Nenhum local cadastrado para esse seminário");
if (alunos != null && alunos.length != 0) {
System.out.println("---- Alunos participantes ----");
for (Aluno aluno : alunos) {
System.out.println(aluno.getNome());
}
return;
}
System.out.println("Nenhum aluno cadastrado");
}
public Local getLocal() {
return local;
}
public void setLocal(Local local) {
this.local = local;
}
public Professor getProfessor() {
return professor;
}
public void setProfessor(Professor professor) {
this.professor = professor;
}
public Aluno[] getAlunos() {
return alunos;
}
public void setAlunos(Aluno[] alunos) {
this.alunos = alunos;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
package com.devdojo.javacore.g.associacao.classes_exercicio;
public class Professor {
private String nome;
private String especialidade;
private Seminario[] seminarios;
public Professor() {
}
public Professor(String nome, String especialidade) {
this.nome = nome;
this.especialidade = especialidade;
}
public void print() {
System.out.println("---------------Relatório de professor---------------");
System.out.println("Nome do professor: " + this.nome);
System.out.println("Especialidade: " + this.especialidade);
if (seminarios != null && seminarios.length != 0) {
System.out.println("Seminários participantes");
for (Seminario sem : seminarios) {
System.out.println(sem.getTitulo());
}
return;
}
System.out.println("Professor não vinculado a nenhum seminário");
}
public Seminario[] getSeminarios() {
return seminarios;
}
public void setSeminarios(Seminario[] seminarios) {
this.seminarios = seminarios;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEspecialidade() {
return especialidade;
}
public void setEspecialidade(String especialidade) {
this.especialidade = especialidade;
}
}
package com.devdojo.javacore.g.associacao.classes_exercicio;
public class Local {
private String rua;
private String bairro;
public Local() {
}
public Local(String rua, String bairro) {
this.rua = rua;
this.bairro = bairro;
}
public void print(){
System.out.println("---------------Relatório de local---------------");
System.out.println("Rua: "+this.rua);
System.out.println("Bairro: "+this.bairro);
}
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}
Teste
package com.devdojo.javacore.g.associacao.teste;
import com.devdojo.javacore.g.associacao.classes_exercicio.Aluno;
import com.devdojo.javacore.g.associacao.classes_exercicio.Local;
import com.devdojo.javacore.g.associacao.classes_exercicio.Professor;
import com.devdojo.javacore.g.associacao.classes_exercicio.Seminario;
public class AssociacaoTest {
public static void main(String[] args) {
Aluno aluno = new Aluno("William Suane", 27);
Aluno aluno2 = new Aluno("Joana D'Arc", 20);
Seminario sem = new Seminario("Como ser um baita programador e ficar rico");
Professor prof = new Professor("Yoda","Usar a força para programar");
Local local = new Local("Rua das araras", "mato");
aluno.setSeminario(sem);
aluno2.setSeminario(sem);
sem.setProfessor(prof);
sem.setLocal(local);
sem.setAlunos(new Aluno[]{aluno,aluno2});
Seminario[] semArray = new Seminario[1];
semArray[0] = sem;
prof.setSeminarios(semArray);
sem.print();
prof.print();
}
}
age com.devdojo.javacore.h.heranca.classes;
public class Pessoa {
private String nome;
private String cpf;
private Endereco endereco;
public void imprime(){
System.out.println("Nome: " + this.getNome());
System.out.println("CPF: " + this.getCpf());
System.out.println("Endereço: " + this.getEndereco().getRua());
System.out.println("Endereço: " + this.getEndereco().getBairro());
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Endereco {
private String rua;
private String bairro;
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Funcionario extends Pessoa{
private double salario;
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.h.heranca.teste;
import com.devdojo.javacore.h.heranca.classes.Endereco;
import com.devdojo.javacore.h.heranca.classes.Funcionario;
import com.devdojo.javacore.h.heranca.classes.Pessoa;
public class HerancaTeste {
public static void main(String[] args) {
Pessoa p = new Pessoa();
p.setNome("José Malcher Jr.");
p.setCpf("123456789");
Endereco end = new Endereco();
end.setBairro("Cidade Velha");
end.setRua("Rua Tal tal tal");
p.setEndereco(end);
p.imprime();
System.out.println("------------------------------------");
Funcionario f = new Funcionario();
f.setNome("FUncionario 01");
f.setCpf("987654321");
f.setSalario(1500);
f.setEndereco(end);
f.imprime();
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Funcionario extends Pessoa{
private double salario;
@Override
public void imprime() {
super.imprime();
System.out.println("Salario = " + this.salario);
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Funcionario extends Pessoa{
private double salario;
@Override
public void imprime() {
super.imprime();
System.out.println("Salario = " + this.salario);
imprimeReciboPagamento();
}
public void imprimeReciboPagamento(){
System.out.println("Eu " + super.nome + " RECEBI R$ "+this.salario);
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Pessoa {
protected String nome;
private String cpf;
private Endereco endereco;
public void imprime(){
System.out.println("Nome: " + this.getNome());
System.out.println("CPF: " + this.getCpf());
System.out.println("Endereço: " + this.getEndereco().getRua());
System.out.println("Endereço: " + this.getEndereco().getBairro());
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
Aula 53: Herança e construtores pt 04
package com.devdojo.javacore.h.heranca.classes;
public class Pessoa {
protected String nome;
private String cpf;
private Endereco endereco;
public Pessoa(String nome) {
this.nome = nome;
}
public Pessoa(String nome, String cpf) {
this(nome);
this.cpf = cpf;
}
public void imprime(){
System.out.println("Nome: " + this.getNome());
System.out.println("CPF: " + this.getCpf());
System.out.println("Endereço: " + this.getEndereco().getRua());
System.out.println("Endereço: " + this.getEndereco().getBairro());
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Funcionario extends Pessoa{
private double salario;
@Override
public void imprime() {
super.imprime();
System.out.println("Salario = " + this.salario);
imprimeReciboPagamento();
}
public Funcionario(String nome) {
super(nome);
}
public void imprimeReciboPagamento(){
System.out.println("Eu " + super.nome + " RECEBI R$ "+this.salario);
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.h.heranca.teste;
import com.devdojo.javacore.h.heranca.classes.Endereco;
import com.devdojo.javacore.h.heranca.classes.Funcionario;
import com.devdojo.javacore.h.heranca.classes.Pessoa;
public class HerancaTeste {
public static void main(String[] args) {
Pessoa p = new Pessoa("José Malcher Jr.");
p.setCpf("123456789");
Endereco end = new Endereco();
end.setBairro("Cidade Velha");
end.setRua("Rua Tal tal tal");
p.setEndereco(end);
p.imprime();
System.out.println("------------------------------------");
Funcionario f = new Funcionario("FUncionario 01");
f.setCpf("987654321");
f.setSalario(1500);
f.setEndereco(end);
f.imprime();
}
}
1 - Espaço em memória é alocado para o objeto sendo construído;
2 - Cada um dos atributos odo objeto é inicializado com os valores default;
3 - O construtor da superclasse é chamado;
4 - A inicialização dos atributos via declaração e o código do bloco de inicialização da superclasse sçai executados na ordem em que aparecem;
5 - O código do construtor da super classe é chamado;
6 - Passo 4 para a subclasse é executado;
7 - O código do construtor da classe é executado.
package com.devdojo.javacore.h.heranca.classes;
public class Pessoa {
protected String nome;
private String cpf;
private Endereco endereco;
public Pessoa(String nome) {
System.out.println("Dentro do bloco Construtor PESSOA");
this.nome = nome;
}
public Pessoa(String nome, String cpf) {
this(nome);
this.cpf = cpf;
}
static{
System.out.println("Bloco de Inicialização Estático de PESSOA");
}
{
System.out.println("Blcoo de inicialização PESSOA 1");
}
{
System.out.println("Blcoo de inicialização PESSOA 2");
}
public void imprime(){
System.out.println("Nome: " + this.getNome());
System.out.println("CPF: " + this.getCpf());
System.out.println("Endereço: " + this.getEndereco().getRua());
System.out.println("Endereço: " + this.getEndereco().getBairro());
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
package com.devdojo.javacore.h.heranca.classes;
public class Funcionario extends Pessoa{
private double salario;
{
System.out.println("Blcoo de Inicialização de funcionario 1");
}
{
System.out.println("Blcoo de Inicialização de funcionario 2");
}
static {
System.out.println("BLCOO DE INICIALIZAÇÂO ESTATICO FUNCIONARIO 1");
}
@Override
public void imprime() {
super.imprime();
System.out.println("Salario = " + this.salario);
imprimeReciboPagamento();
}
public Funcionario(String nome) {
super(nome);
System.out.println("DENTRO DO CONSTRUTOR DE FUNCIONARIO");
}
public void imprimeReciboPagamento(){
System.out.println("Eu " + super.nome + " RECEBI R$ "+this.salario);
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.h.heranca.teste;
import com.devdojo.javacore.h.heranca.classes.Endereco;
import com.devdojo.javacore.h.heranca.classes.Funcionario;
import com.devdojo.javacore.h.heranca.classes.Pessoa;
public class HerancaTeste {
public static void main(String[] args) {
//Pessoa p = new Pessoa("José Malcher Jr.");
//p.setCpf("123456789");
Endereco end = new Endereco();
end.setBairro("Cidade Velha");
end.setRua("Rua Tal tal tal");
//p.setEndereco(end);
//p.imprime();
System.out.println("------------------------------------");
Funcionario f = new Funcionario("FUncionario 01");
f.setCpf("987654321");
f.setSalario(1500);
f.setEndereco(end);
//f.imprime();
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\lib\idea_rt.jar=56855:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\josemalcher\Documents\09-Workspaces\workspace-DEVDOJO-Maratona-JAVA\out\production\workspace-DEVDOJO-Maratona-JAVA" com.devdojo.javacore.h.heranca.teste.HerancaTeste
------------------------------------
Bloco de Inicialização Estático de PESSOA
BLCOO DE INICIALIZAÇÂO ESTATICO FUNCIONARIO 1
Blcoo de inicialização PESSOA 1
Blcoo de inicialização PESSOA 2
Dentro do bloco Construtor PESSOA
Blcoo de Inicialização de funcionario 1
Blcoo de Inicialização de funcionario 2
DENTRO DO CONSTRUTOR DE FUNCIONARIO
Process finished with exit code 0
package com.devdojo.javacore.i.sobrescrita.classes;
public class Pessoa {
private String nome;
private int idade;
/* @Override
public String toString() {
return "NOME: " + this.nome + " | Idade "+ this.idade;
}*/
@Override
public String toString() {
return "Pessoa{" +
"nome='" + nome + '\'' +
", idade=" + idade +
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
}
package com.devdojo.javacore.i.sobrescrita.teste;
import com.devdojo.javacore.i.sobrescrita.classes.Pessoa;
public class PessoaTeste {
public static void main(String[] args) {
Pessoa p = new Pessoa();
p.setNome("JSOE");
p.setIdade(33);
System.out.println(p);
}
}
package com.devdojo.javacore.j.modificadorfinal.classes;
public class Carro {
private String nome;
private String marca;
private static final double VELOCIDADE_FINAL = 200;
private final Comprador comprador = new Comprador();
/* static {
VELOCIDADE_FINAL = 200;
}*/
@Override
public String toString() {
return "Carro{" +
"nome='" + nome + '\'' +
", marca='" + marca + '\'' +
'}';
}
public Comprador getComprador() {
return comprador;
}
public static double getVelocidadeFinal() {
return VELOCIDADE_FINAL;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
}
package com.devdojo.javacore.j.modificadorfinal.classes;
public class Comprador {
private String nome;
@Override
public String toString() {
return "Comprador{" +
"nome='" + nome + '\'' +
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
package com.devdojo.javacore.j.modificadorfinal.teste;
import com.devdojo.javacore.j.modificadorfinal.classes.Carro;
public class CarroTeste {
public static void main(String[] args) {
Carro c = new Carro();
Carro.getVelocidadeFinal();
System.out.println(c.getComprador());
c.getComprador().setNome("COMPRADOR NOME MARIA");
System.out.println(c.getComprador());
}
}
package com.devdojo.javacore.k.enumeracao.classes;
public enum TipoCliente {
PESSOA_FISICA,PESSOA_JURIDICA;
}
package com.devdojo.javacore.k.enumeracao.classes;
public class Cliente {
private String nome;
private TipoCliente tipo;
public Cliente(String nome, TipoCliente tipo) {
this.nome = nome;
this.tipo = tipo;
}
@Override
public String toString() {
return "Cliente{" +
"nome='" + nome + '\'' +
", tipo=" + tipo +
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public TipoCliente getTipo() {
return tipo;
}
public void setTipo(TipoCliente tipo) {
this.tipo = tipo;
}
}
package com.devdojo.javacore.k.enumeracao.teste;
import com.devdojo.javacore.k.enumeracao.classes.Cliente;
import com.devdojo.javacore.k.enumeracao.classes.TipoCliente;
public class ClienteTeste {
public static void main(String[] args) {
Cliente cliente = new Cliente("JOSE JR.", TipoCliente.PESSOA_FISICA);
System.out.println(cliente);
}
}
package com.devdojo.javacore.k.enumeracao.classes;
public enum TipoCliente {
PESSOA_FISICA(1, "Pessoa Fisica"),PESSOA_JURIDICA(2,"Pessoa Juridica");
private int tipo;
private String nome;
TipoCliente(int tipo, String nome) { //sempre é private
this.tipo = tipo;
this.nome = nome;
}
public int getTipo() {
return tipo;
}
public String getNome() {
return nome;
}
}
package com.devdojo.javacore.k.enumeracao.classes;
public class Cliente {
public enum TipoPagamento{
AVISTA, APRAZO
}
private TipoPagamento tipoPagamento;
private String nome;
private TipoCliente tipo;
public Cliente(TipoPagamento tipoPagamento, String nome, TipoCliente tipo) {
this.tipoPagamento = tipoPagamento;
this.nome = nome;
this.tipo = tipo;
}
@Override
public String toString() {
return "Cliente{" +
"tipoPagamento=" + tipoPagamento +
", nome='" + nome + '\'' +
", tipo=" + tipo +
", Numero do Tipo Pagamento: " + tipo.getTipo()+
", Tipo Pagamento: " + tipo.getNome()+
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public TipoCliente getTipo() {
return tipo;
}
public void setTipo(TipoCliente tipo) {
this.tipo = tipo;
}
public TipoPagamento getTipoPagamento() {
return tipoPagamento;
}
public void setTipoPagamento(TipoPagamento tipoPagamento) {
this.tipoPagamento = tipoPagamento;
}
}
package com.devdojo.javacore.k.enumeracao.teste;
import com.devdojo.javacore.k.enumeracao.classes.Cliente;
import com.devdojo.javacore.k.enumeracao.classes.TipoCliente;
public class ClienteTeste {
public static void main(String[] args) {
Cliente cliente = new Cliente(Cliente.TipoPagamento.AVISTA,"JOSE JR.", TipoCliente.PESSOA_FISICA);
System.out.println(cliente);
}
}
package com.devdojo.javacore.k.enumeracao.classes;
public enum TipoCliente {
PESSOA_FISICA(1, "Pessoa Fisica"),PESSOA_JURIDICA(2,"Pessoa Juridica"){
public String getId(){
return "B";
}
};
private int tipo;
private String nome;
TipoCliente(int tipo, String nome) { //sempre é private
this.tipo = tipo;
this.nome = nome;
}
public int getTipo() {
return tipo;
}
public String getNome() {
return nome;
}
//Constant stpecific class body -> copo de classe especifico constante
public String getId(){
return "A";
}
}
package com.devdojo.javacore.k.enumeracao.teste;
import com.devdojo.javacore.k.enumeracao.classes.Cliente;
import com.devdojo.javacore.k.enumeracao.classes.TipoCliente;
public class ClienteTeste {
public static void main(String[] args) {
Cliente cliente = new Cliente(Cliente.TipoPagamento.AVISTA,"JOSE JR.", TipoCliente.PESSOA_FISICA);
System.out.println(TipoCliente.PESSOA_FISICA.getId());
System.out.println(TipoCliente.PESSOA_JURIDICA.getId());
System.out.println(cliente);
}
}
package com.devdojo.javacore.l.classesabstratas.classes;
public abstract class Funcionario {
protected String nome;
protected String clt;
protected double salario;
public Funcionario() {
}
public Funcionario(String nome, String clt, double salario) {
this.nome = nome;
this.clt = clt;
this.salario = salario;
}
@Override
public String toString() {
return "Funcionario{" +
"nome='" + nome + '\'' +
", clt='" + clt + '\'' +
", salario=" + salario +
'}';
}
public abstract void calculaSalario();//{
//this.salario = salario + (salario + 0.1);
//}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getClt() {
return clt;
}
public void setClt(String clt) {
this.clt = clt;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.l.classesabstratas.classes;
public class Gerente extends Funcionario {
public Gerente() {
}
public Gerente(String nome, String clt, double salario) {
super(nome, clt, salario);
}
@Override
public void calculaSalario() {
this.salario = salario + (salario * 0.3);
}
}
package com.devdojo.javacore.l.classesabstratas.classes;
public class Vendedor extends Funcionario {
private double totalVendas;
public Vendedor() {
}
public Vendedor(String nome, String clt, double salario, double totalVendas) {
super(nome, clt, salario);
this.totalVendas = totalVendas;
}
@Override
public void calculaSalario() {
this.salario = salario + (totalVendas * 0.05);
}
public double getTotalVendas() {
return totalVendas;
}
public void setTotalVendas(double totalVendas) {
this.totalVendas = totalVendas;
}
}
package com.devdojo.javacore.l.classesabstratas.testes;
import com.devdojo.javacore.l.classesabstratas.classes.Gerente;
import com.devdojo.javacore.l.classesabstratas.classes.Vendedor;
public class FuncionarioTeste {
public static void main(String[] args) {
//Funcionario f = new Funcionario("JOSE", "123-22", 2000);
Gerente g = new Gerente("JULIANA", "4444-33", 2000);
Vendedor v = new Vendedor("JOSE", "123-22", 2000, 1000);
//f.calculaSalario();
g.calculaSalario();
v.calculaSalario();
//System.out.println(f);
System.out.println(g);
System.out.println(v);
}
}
package com.devdojo.javacore.l.classesabstratas.classes;
public abstract class Pessoa {
protected String nome;
public abstract void imprime();
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
package com.devdojo.javacore.l.classesabstratas.classes;
public abstract class Funcionario extends Pessoa {
protected String clt;
protected double salario;
public Funcionario() {
}
public Funcionario(String nome, String clt, double salario) {
this.nome = nome;
this.clt = clt;
this.salario = salario;
}
@Override
public String toString() {
return "Funcionario{" +
"nome='" + nome + '\'' +
", clt='" + clt + '\'' +
", salario=" + salario +
'}';
}
public abstract void calculaSalario();//{
//this.salario = salario + (salario + 0.1);
//}
@Override
public abstract void imprime() ;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getClt() {
return clt;
}
public void setClt(String clt) {
this.clt = clt;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
Vendendor / gerente
@Override
public void imprime() {
System.out.println("DEntro de Imprime de VEndedor");
}
package com.devdojo.javacore.m.interfaces.classes;
public interface Transportalvel {
public abstract void calculaFrete();
}
package com.devdojo.javacore.m.interfaces.classes;
public interface Tributavel {
public static final double IMPOSTO = 0.2 ;
public abstract void calcularImposto();
}
package com.devdojo.javacore.m.interfaces.classes;
public class Produto implements Tributavel, Transportalvel {
private String nome;
private double peso;
private double preco;
private double precoFinal;
private double valorFrete;
@Override
public void calcularImposto() {
precoFinal = this.preco + (this.preco * IMPOSTO);
}
@Override
public void calculaFrete() {
this.valorFrete = this.preco / this.peso * 0.1;
}
public Produto(String nome, double peso, double preco) {
this.nome = nome;
this.peso = peso;
this.preco = preco;
}
@Override
public String toString() {
return "Produto{" +
"nome=' " + nome + '\'' +
", peso=" + peso +
", preco= R$ " + preco +
", precoFinal= R$ " + precoFinal +
", valorFrete= R$ " + valorFrete +
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public double getPrecoFinal() {
return precoFinal;
}
public double getValorFrete() {
return valorFrete;
}
}
package com.devdojo.javacore.m.interfaces.testes;
import com.devdojo.javacore.m.interfaces.classes.Produto;
public class TesteProduto {
public static void main(String[] args) {
Produto p = new Produto("Notebook", 4, 3000);
p.calcularImposto();
p.calculaFrete();
System.out.println(p);
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public abstract class Funcionario {
protected String nome;
protected double salario;
public Funcionario(String nome, double salario) {
this.nome = nome;
this.salario = salario;
}
@Override
public String toString() {
return "Funcionario{" +
"nome='" + nome + '\'' +
", salario=" + salario +
'}';
}
public abstract void calcularPagamento();
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public class Vendedor extends Funcionario{
private double totalVendas;
public Vendedor(String nome, double salario, double totalVendas) {
super(nome, salario);
this.totalVendas = totalVendas;
}
public double getTotalVendas() {
return totalVendas;
}
public void setTotalVendas(double totalVendas) {
this.totalVendas = totalVendas;
}
@Override
public void calcularPagamento() {
this.salario = this.salario + (totalVendas * 0.05);
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public class Gerente extends Funcionario {
private double pnl;
public Gerente(String nome, double salario, double pnl) {
super(nome, salario);
this.pnl = pnl;
}
@Override
public void calcularPagamento() {
this.salario = this.salario + pnl;
}
public double getPnl() {
return pnl;
}
public void setPnl(double pnl) {
this.pnl = pnl;
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public class RelatorioPagamento {
/*
public void relatorioPagamentoGerente(Gerente gerente){
System.out.println("Gerando relatorio de pagamento para o Gerente");
gerente.calcularPagamento();
System.out.println("Nome " + gerente.getNome());
System.out.println("Salario do Mes " + gerente.getSalario());
}
public void relatorioPagamentoVendedor(Vendedor vendedor){
System.out.println("Gerando relatorio de pagamento para o vendedores");
vendedor.calcularPagamento();
System.out.println("Nome " + vendedor.getNome());
System.out.println("Salario do Mes " + vendedor.getSalario());
}
*/
public void relatorioPagamento(Funcionario funcionario){
System.out.println("Gerando relatorio de pagamento");
funcionario.calcularPagamento();
System.out.println("Nome " + funcionario.getNome());
System.out.println("Salario do Mes " + funcionario.getSalario());
}
}
package com.devdojo.javacore.n.polimorfismo.testes;
import com.devdojo.javacore.n.polimorfismo.classes.Funcionario;
import com.devdojo.javacore.n.polimorfismo.classes.Gerente;
import com.devdojo.javacore.n.polimorfismo.classes.RelatorioPagamento;
import com.devdojo.javacore.n.polimorfismo.classes.Vendedor;
public class PolimorfismoTeste {
public static void main(String[] args) {
Gerente g = new Gerente("Jose", 5000, 2000);
Vendedor v = new Vendedor("Mariazinha", 2000, 20000);
RelatorioPagamento relatorioPagamento = new RelatorioPagamento();
//relatorioPagamento.relatorioPagamentoGerente(g);
//relatorioPagamento.relatorioPagamentoVendedor(v);
relatorioPagamento.relatorioPagamento(g);
relatorioPagamento.relatorioPagamento(v);
System.out.println("------------------------------------");
Funcionario f = g;
System.out.println(f.getSalario());
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public class RelatorioPagamento {
/*
public void relatorioPagamentoGerente(Gerente gerente){
System.out.println("Gerando relatorio de pagamento para o Gerente");
gerente.calcularPagamento();
System.out.println("Nome " + gerente.getNome());
System.out.println("Salario do Mes " + gerente.getSalario());
}
public void relatorioPagamentoVendedor(Vendedor vendedor){
System.out.println("Gerando relatorio de pagamento para o vendedores");
vendedor.calcularPagamento();
System.out.println("Nome " + vendedor.getNome());
System.out.println("Salario do Mes " + vendedor.getSalario());
}
*/
public void relatorioPagamento(Funcionario funcionario){
System.out.println("Gerando relatorio de pagamento");
funcionario.calcularPagamento();
System.out.println("Nome " + funcionario.getNome());
System.out.println("Salario do Mes " + funcionario.getSalario());
if(funcionario instanceof Gerente){
Gerente g = (Gerente) funcionario;
System.out.println("Partifipação nos lucros R$ "+ g.getPnl());
}
if(funcionario instanceof Vendedor){
//Vendedor v = (Vendedor) funcionario;
//System.out.println("Total Vendas R$ " +v.getTotalVendas());
System.out.println("Total Vendas R$ " +((Vendedor) funcionario).getTotalVendas());
}
}
}
package com.devdojo.javacore.n.polimorfismo.testes;
import com.devdojo.javacore.n.polimorfismo.classes.Funcionario;
import com.devdojo.javacore.n.polimorfismo.classes.Gerente;
import com.devdojo.javacore.n.polimorfismo.classes.RelatorioPagamento;
import com.devdojo.javacore.n.polimorfismo.classes.Vendedor;
public class PolimorfismoTeste {
public static void main(String[] args) {
Gerente g = new Gerente("Jose", 5000, 2000);
Vendedor v = new Vendedor("Mariazinha", 2000, 20000);
RelatorioPagamento relatorioPagamento = new RelatorioPagamento();
//relatorioPagamento.relatorioPagamentoGerente(g);
//relatorioPagamento.relatorioPagamentoVendedor(v);
relatorioPagamento.relatorioPagamento(g);
System.out.println("------------------------------------");
relatorioPagamento.relatorioPagamento(v);
/*
Funcionario f = g;
System.out.println(f.getSalario());
*/
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public interface GenercDAO {
public abstract void save();
}
package com.devdojo.javacore.n.polimorfismo.classes;
public class DataBaseDAOImpl implements GenercDAO{
@Override
public void save() {
System.out.println("Salvando dados no BD");
}
}
package com.devdojo.javacore.n.polimorfismo.classes;
public class ArquivoDAOImpl implements GenercDAO {
@Override
public void save() {
System.out.println("Salvando dados nos arquivos");
}
}
package com.devdojo.javacore.n.polimorfismo.testes;
import com.devdojo.javacore.n.polimorfismo.classes.ArquivoDAOImpl;
import com.devdojo.javacore.n.polimorfismo.classes.DataBaseDAOImpl;
import com.devdojo.javacore.n.polimorfismo.classes.GenercDAO;
public class DAOTeste {
public static void main(String[] args) {
//GenercDAO dadoParaSalvar = new ArquivoDAOImpl();
GenercDAO dadoParaSalvar = new DataBaseDAOImpl();
dadoParaSalvar.save();
}
}
https://www.youtube.com/watch?v=MO12vFGPbxo
package com.devdojo.javacore.o.exception.teste;
public class ErrorTeste {
public static void main(String[] args) {
stackOverflowError();
}
public static void stackOverflowError(){
stackOverflowError();
}
}
package com.devdojo.javacore.o.exception.runtimeexception.teste;
public class RuntimeException {
public static void main(String[] args) {
int a = 10;
int b = 0;
if(b != 0){ // "Tratamento"
int c = a/b;
System.out.println(c);
}
Object obj = null;
System.out.println(obj.toString()); //NullPointerException
int[] ar = new int[2];
System.out.println(ar[2]); //ArrayIndexOutOfBoundsException
}
}
https://www.youtube.com/watch?v=9xW7o1sIkRE
package com.devdojo.javacore.o.exception.checkedexception.teste;
import java.io.File;
import java.io.IOException;
public class CheckedExceptionTest {
public static void main(String[] args) {
criarArquivo();
}
public static void criarArquivo(){
File file = new File("Teste.txt");
try {
System.out.println("Arquivo Criado? " + file.createNewFile());
System.out.println("Arquivo criado com sucesso!!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.devdojo.javacore.o.exception.runtimeexception.teste;
public class RuntimeException {
public static void main(String[] args) {
int a = 10;
int b = 0;
if(b != 0){ // "Tratamento"
int c = a/b;
System.out.println(c);
}
Object obj = null;
//System.out.println(obj.toString()); //NullPointerException
try{
int[] ar = new int[2];
System.out.println(ar[2]); //ArrayIndexOutOfBoundsException
System.out.println("Imprimindo depois da possivel excecao");
}catch (java.lang.RuntimeException e ){
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=YzoQMLfY7-c
package com.devdojo.javacore.o.exception.runtimeexception.teste;
public class RuntimeException {
public static void main(String[] args) {
try{
divisao(10,0);
}catch (java.lang.RuntimeException e){
System.out.println(e.getStackTrace());
e.printStackTrace();
}
}
public static void divisao(int a, int b){
if(b == 0){
throw new IllegalArgumentException("Valor precisa ser diferente de ZERO");
}
int result = a/b;
System.out.println(result);
}
}
package com.devdojo.javacore.o.exception.checkedexception.teste;
import java.io.File;
import java.io.IOException;
public class CheckedExceptionTest {
public static void main(String[] args) {
try {
criarArquivo();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void criarArquivo() throws IOException{
File file = new File("Teste.txt");
try {
System.out.println("Arquivo Criado? " + file.createNewFile());
System.out.println("Arquivo criado com sucesso!!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=OtJVX2K8jGY
package com.devdojo.javacore.o.exception.checkedexception.teste;
import java.io.File;
import java.io.IOException;
public class CheckedExceptionTest {
public static void main(String[] args) {
abrindoArquivo();
}
public static void criarArquivo() throws IOException {
File file = new File("Teste.txt");
try {
System.out.println("Arquivo Criado? " + file.createNewFile());
System.out.println("Arquivo criado com sucesso!!");
} catch (IOException e) {
e.printStackTrace();
}
}
public static String abrindoArquivo() {
try {
System.out.println("Abrindo ARQUIVO!!");
System.out.println("Executando A LEITURA");
//throw new Exception();
System.out.println("Escrevendo no arquivo");
return "valor";
} catch (Exception e) {
System.out.println("Dentro do CATCH");
e.printStackTrace();
} finally { //sempre executado
System.out.println("FECHANDO ARQUIVO");
}
return null;
}
}
https://www.youtube.com/watch?v=IL0-EWlytzA&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=73
package com.devdojo.javacore.o.exception.runtimeexception.teste;
import java.io.FileNotFoundException;
import java.sql.SQLException;
public class MultiplasRuntimeExceltionTeste {
public static void main(String[] args) {
try {
throw new IndexOutOfBoundsException();
} catch (IllegalArgumentException | IndexOutOfBoundsException | ArithmeticException e) {
System.out.println("dentro do ArrayIndexOutOfBoundsException");
}
System.out.println("final do programa");
try {
talvezLanceException();
} catch (SQLException e) {
e.printStackTrace();
}catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private static void talvezLanceException() throws SQLException, FileNotFoundException {
}
}
package com.devdojo.javacore.o.exception.runtimeexception.teste;
import java.awt.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
public class MultiplasRuntimeExceltionTeste {
public static void main(String[] args) {
try {
throw new IndexOutOfBoundsException();
} catch (IllegalArgumentException | IndexOutOfBoundsException | ArithmeticException e) {
System.out.println("dentro do ArrayIndexOutOfBoundsException");
}
System.out.println("final do programa");
try {
talvezLanceException();
} catch (Exception e) {
}
}
private static void talvezLanceException() throws SQLException, AWTException, IOException {
}
}
https://www.youtube.com/watch?v=Medf33blG4M&index=75&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.o.exception.checkedexception.classes;
public class Leitor1 implements AutoCloseable{
@Override
public void close() throws Exception {
System.out.println("FECHANDO O LEITOR 1");
}
}
package com.devdojo.javacore.o.exception.checkedexception.classes;
public class Leitor2 implements AutoCloseable {
@Override
public void close() throws Exception {
System.out.println("Fechando o LEITOR 2");
}
}
package com.devdojo.javacore.o.exception.checkedexception.teste;
import com.devdojo.javacore.o.exception.checkedexception.classes.Leitor1;
import com.devdojo.javacore.o.exception.checkedexception.classes.Leitor2;
import java.io.*;
public class TryWithResourcesTest {
public static void main(String[] args) {
lerArquivo();
}
public static void lerArquivo() {
try (Leitor2 leitor2 = new Leitor2();
Leitor1 leitor1 = new Leitor1()) {
} catch (Exception e) {
e.printStackTrace();
}
}
public static void lerArquivoOld() {
Reader reader = null;
try {
reader = new BufferedReader(new FileReader("text.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
https://www.youtube.com/watch?v=HoXCxdcCN6o&index=76&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.o.exception.customexceptions.classes;
public class LoginInvalidoException extends Exception {
public LoginInvalidoException() {
super("--->>> Usuario ou senha inválidos!! <<<---");
}
}
package com.devdojo.javacore.o.exception.customexceptions.teste;
import com.devdojo.javacore.o.exception.customexceptions.classes.LoginInvalidoException;
public class CustomExceptionTest {
public static void main(String[] args) {
try {
logar();
} catch (LoginInvalidoException e) {
e.printStackTrace();
}
}
private static void logar() throws LoginInvalidoException {
String usuarioBancoDeDados = "goku";
String senhaBancoDeDados = "111";
String usuarioDigitado = "goku";
String senhaDigitada = "123";
if (!usuarioBancoDeDados.equals(usuarioDigitado) || !senhaBancoDeDados.equals(senhaDigitada)) {
throw new LoginInvalidoException();
} else {
System.out.println("Logado!");
}
}
}
https://www.youtube.com/watch?v=CxTXrKWXzo4&index=77&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.o.exception.sobrescrita.classes;
import com.devdojo.javacore.o.exception.customexceptions.classes.LoginInvalidoException;
import java.io.FileNotFoundException;
public class Pessoa {
public void salvar() throws LoginInvalidoException, FileNotFoundException{
}
}
package com.devdojo.javacore.o.exception.sobrescrita.classes;
import java.io.FileNotFoundException;
public class Funcionario extends Pessoa{
public void salvar() throws FileNotFoundException{
}
}
package com.devdojo.javacore.o.exception.sobrescrita.teste;
import com.devdojo.javacore.o.exception.customexceptions.classes.LoginInvalidoException;
import com.devdojo.javacore.o.exception.sobrescrita.classes.Funcionario;
import com.devdojo.javacore.o.exception.sobrescrita.classes.Pessoa;
import java.io.FileNotFoundException;
public class SObrescritaComExceptionTeste {
public static void main(String[] args) {
Funcionario f = new Funcionario();
Pessoa p = new Pessoa();
try {
p.salvar();
} catch (LoginInvalidoException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=kd8L6jS8C3Q&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=78
package com.devdojo.javacore.p.assrtions.teste;
public class AssertTest {
public static void main(String[] args) {
calculaSalario(-10000);
}
private static void calculaSalario(double salario) {
assert (salario > 0) : "Não pode ser menor que ZERO!!" + salario;
// em config VM -> -ea //habilita
// em config VM -> -ea:com.devdojo.javacore.p.assrtions.teste.AssertTest //habilita para a classe
// em config VM -> -ea -da:com.devdojo.javacore.p.assrtions.teste.AssertTest //desabilita para a classe
// em config VM -> -da //desabilita
}
public static void calcSalario(double salario) {
if (salario < 0) {
throw new IllegalArgumentException();
}
}
public static void diasDaSemana(int dia) {
switch (dia) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
default:
assert false;
}
}
}
https://www.youtube.com/watch?v=MBm7iyYt6NQ&index=79&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.r.wrappers;
public class WrappersTest {
public static void main(String[] args) {
byte bytePrimitivo = 1;
short shortPrimitivo = 1;
int intPrimitivo = 10;
long longPrimitivo = 10;
float floatPrimitivo = 10;
double doublePrimitivo = 10F;
char charPrimitivo = 'A';
boolean booleanPrimitivo = true;
Byte byteWrapper = 1;
Short shortWrapper = 1;
Integer integerWrapper = 1;
Long longWrapper = 1L;
Float floatWrapper = 10f;
Double doubleWrapper = 10D;
Character characterWrapper = 'A';
Boolean booleanWrapper = true;
}
}
https://www.youtube.com/watch?v=s5AEuHhR2PY&index=80&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.r.wrappers;
public class WrappersTest {
public static void main(String[] args) {
byte bytePrimitivo = 1;
short shortPrimitivo = 1;
int intPrimitivo = 10;
long longPrimitivo = 10;
float floatPrimitivo = 10;
double doublePrimitivo = 10F;
char charPrimitivo = 'A';
boolean booleanPrimitivo = true;
Byte byteWrapper = 1;
Short shortWrapper = 1;
//Integer integerWrapper = 1;
Integer integerWrapper = new Integer("10");
//Long longWrapper = 1L;
Long longWrapper = Long.valueOf("10");
//Float floatWrapper = 10f;
Float floatWrapper = new Float("10");
Double doubleWrapper = 10D;
Character characterWrapper = 'A';
Boolean booleanWrapper = new Boolean("TrUe");
String valor = "10";
Float f = Float.parseFloat(valor);
System.out.println(Character.isDigit('9'));
System.out.println(Character.isLetter('1'));
System.out.println(Character.isLetterOrDigit('#'));
System.out.println(Character.isUpperCase('A'));
System.out.println(Character.isLowerCase('A'));
System.out.println(Character.toUpperCase('9'));
}
}
https://www.youtube.com/watch?v=n0B_KA3DHHg&index=81&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.s.string;
public class StringTest {
public static void main(String[] args) {
String nome = "Jose";
nome = nome.concat(" Malcher"); // nome += " Suane";
String nome2 = "William";
String nome3 = new String("Catarina");
// 1 - variavel de referencia,
// 2 - um objeto do tipo string,
// 3 - Uma string no pool de String
System.out.println(nome3);
}
}
https://www.youtube.com/watch?v=2gcrpIZVKpk&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=82
package com.devdojo.javacore.s.string;
public class StringTest {
public static void main(String[] args) {
String nome = "Jose";
nome = nome.concat(" Malcher"); // nome += " Suane";
String nome2 = "William";
String nome3 = new String("Catarina");
// 1 - variavel de referencia,
// 2 - um objeto do tipo string,
// 3 - Uma string no pool de String
String teste = " Goku";
String teste2 = " 0123456789 ";
System.out.println(teste.charAt(3));
System.out.println(teste.equalsIgnoreCase(teste2));
System.out.println(teste.length());
System.out.println(teste2.replace('a','o'));
System.out.println(teste2.toLowerCase());
System.out.println(teste2.toUpperCase());
System.out.println(teste2.substring(0,5));
System.out.println(teste2.trim());
}
}
https://www.youtube.com/watch?v=3ctBVJQaMWM&index=83&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.s.string;
public class StringPerformanceTest {
public static void main(String[] args) {
long inicio = System.currentTimeMillis();
concatString(100000);
long fim = System.currentTimeMillis();
System.out.println("Tempo gasto String " + (fim - inicio) + " ms");
inicio = System.currentTimeMillis();
concatStringBuilder(100000);
fim = System.currentTimeMillis();
System.out.println("Tempo gasto StringBuilder " + (fim - inicio) + " ms");
inicio = System.currentTimeMillis();
concatStringBuffer(100000);
fim = System.currentTimeMillis();
System.out.println("Tempo gasto StringBuffer " + (fim - inicio) + " ms");
}
private static void concatString(int tam) {
String string = "";
for (int i = 0; i < tam; i++) {
string += i;
}
}
private static void concatStringBuilder(int tam) {
StringBuilder sb = new StringBuilder(tam);
for (int i = 0; i < tam; i++) {
sb.append(i);
}
}
private static void concatStringBuffer(int tam) {
StringBuffer sb = new StringBuffer(tam);
for (int i = 0; i < tam; i++) {
sb.append(i);
}
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\lib\idea_rt.jar=62606:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\josemalcher\Documents\09-Workspaces\workspace-DEVDOJO-Maratona-JAVA\out\production\workspace-DEVDOJO-Maratona-JAVA" com.devdojo.javacore.s.string.StringPerformanceTest
Tempo gasto String 33076 ms
Tempo gasto StringBuilder 5 ms
Tempo gasto StringBuffer 7 ms
https://www.youtube.com/watch?v=QY92U86m77s&index=84&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.s.string;
public class StringBuilderTest {
public static void main(String[] args) {
String s = "Uma frase comum...";
StringBuffer sb = new StringBuffer(16);
// sb.append("Uma Frase comum 2 - ");
// sb.append(" teste");
// System.out.println(sb.reverse());
sb.append("0123456789");
//System.out.println(sb.delete(0,2));
System.out.println(sb.insert(2, "###"));
}
}
https://www.youtube.com/watch?v=A7dJK1CNxKA&index=85&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.t.datas;
import java.util.Calendar;
import java.util.Date;
public class ManipulacaoDeDatasTest {
public static void main(String[] args) {
Date date = new Date();
date.setTime(date.getTime() + 3_600_000L);
System.out.println(date);
Calendar c = Calendar.getInstance();
System.out.println(c);
//c.setTime(date);
if (Calendar.SUNDAY == c.getFirstDayOfWeek()) {
System.out.println("Domingo é o primeiro dia da semana");
}
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_WEEK));
System.out.println(c.get(Calendar.DAY_OF_YEAR));
c.roll(Calendar.HOUR, 24);
//c.roll(Calendar.MONTH, 9);
Date date2 = c.getTime();
System.out.println(date2);
// NumberFormat, Locale, Calendar, Date, DateFormat
}
}
https://www.youtube.com/watch?v=Fmwg6ECNVXI&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=86
package com.devdojo.javacore.t.datas;
import java.text.DateFormat;
import java.util.Calendar;
public class DateFormatTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
DateFormat[] dfa = new DateFormat[6];
dfa[0] = DateFormat.getInstance();
dfa[1] = DateFormat.getDateInstance();
dfa[2] = DateFormat.getDateInstance(DateFormat.SHORT);
dfa[3] = DateFormat.getDateInstance(DateFormat.MEDIUM);
dfa[4] = DateFormat.getDateInstance(DateFormat.LONG);
dfa[5] = DateFormat.getDateInstance(DateFormat.FULL);
for (DateFormat df : dfa) {
System.out.println(df.format(c.getTime()));
}
}
}
https://www.youtube.com/watch?v=UZC14RpxdmQ&index=87&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.t.datas;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Locale;
public class LocaleTest {
public static void main(String[] args) {
//ISO 639
// pt= portugues BR - Brazil,
// en - ingles, US - Estados Unidos
Locale locItaly = new Locale("it", "IT");
Locale locSuica = new Locale("it", "CH");
Locale locIndia = new Locale("hi", "IN");
Locale locJapao = new Locale("ja");
Calendar c = Calendar.getInstance();
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, locItaly);
DateFormat df2 = DateFormat.getDateInstance(DateFormat.FULL, locSuica);
DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL, locIndia);
DateFormat df4 = DateFormat.getDateInstance(DateFormat.FULL, locJapao);
System.out.println("Italia " + df.format(c.getTime()));
System.out.println("Suica " + df2.format(c.getTime()));
System.out.println("India " + df3.format(c.getTime()));
System.out.println("Japao " + df4.format(c.getTime()));
//1.000,00(BR) , 1,000.00(EUA)
System.out.println(locItaly.getDisplayLanguage(locJapao));
System.out.println(locJapao.getDisplayLanguage(locItaly));
System.out.println(locSuica.getDisplayCountry(locItaly));
}
}
https://www.youtube.com/watch?v=xACEG97W8p0&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=88
package com.devdojo.javacore.t.datas;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
public class NumberFormatTest {
public static void main(String[] args) {
float valor = 212.4567f;
Locale locJP = new Locale("jp");
Locale locFR = new Locale("fr");
Locale locIT = new Locale("it");
NumberFormat[] nfa = new NumberFormat[4];
nfa[0] = NumberFormat.getInstance();
nfa[1] = NumberFormat.getInstance(locIT);
nfa[2] = NumberFormat.getCurrencyInstance();
nfa[3] = NumberFormat.getCurrencyInstance(locIT);
for (NumberFormat nf : nfa) {
System.out.println(nf.format(valor));
}
NumberFormat nf = NumberFormat.getInstance();
System.out.println(nf.getMaximumFractionDigits());
nf.setMaximumFractionDigits(1);
System.out.println(nf.format(valor));
String valorString = "212.4567";
try {
System.out.println(nf.parse(valorString));
nf.setParseIntegerOnly(true);
System.out.println(nf.parse(valorString));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=ruc10Zv4F24&index=89&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.t.datas;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class SimpleDateFormatTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
String mascara = "'Atlanta,' dd 'de' MMMM 'de' yyyy";
SimpleDateFormat formatador = new SimpleDateFormat(mascara);
System.out.println(formatador.format(c.getTime()));
}
}
https://www.youtube.com/watch?v=-Pmnb_no1bQ&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=90
package com.devdojo.javacore.u.expressoesregulares;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressoesRegularesTest {
public static void main(String[] args) {
String regex = "aba";
String texto = "abababa";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(texto);
System.out.println("texto: "+texto);
System.out.println("indice: 0123456789");
System.out.println("expressao: "+matcher.pattern());
System.out.println("posicoes encontradas");
while(matcher.find()){
System.out.print(matcher.start() +" ");
}
}
}
https://www.youtube.com/watch?v=rY6sA1vdSPA&index=91&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.u.expressoesregulares;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressoesRegularesTest {
public static void main(String[] args) {
// \d - todos os digitos
// \D tudo o que não for digito
// \s espaços em branco \t \n \f \r
// \S caractere que não é branco
// \w caracteres de palavras a-z A-Z, digitos e _
// \W tudo o que não for caractere de palavra
String regex = "\\W";
String texto = "#@hab1278 \t_";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(texto);
System.out.println("texto: " + texto);
System.out.println("indice: 012345678901234567");
System.out.println("expressao: " + matcher.pattern());
System.out.println("posicoes encontradas");
while (matcher.find()) {
System.out.print(matcher.start() + " ");
}
}
}
https://www.youtube.com/watch?v=rUweIU5UuW0&index=92&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.u.expressoesregulares;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressoesRegularesTest {
public static void main(String[] args) {
// \d - todos os digitos
// \D tudo o que não for digito
// \s espaços em branco \t \n \f \r
// \S caractere que não é branco
// \w caracteres de palavras a-z A-Z, digitos e _
// \W tudo o que não for caractere de palavra
// []
int hex = 0x1;
String regex = "0[xX][0-9a-fA-F]";
String texto = "12 0x 0X 0xFFABC 0x10G 0x1";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(texto);
System.out.println("texto: "+texto);
System.out.println("indice: 012345678901234567");
System.out.println("expressao: "+matcher.pattern());
System.out.println("posicoes encontradas");
while(matcher.find()){
System.out.println(matcher.start() +" "+ matcher.group());
}
}
}
https://www.youtube.com/watch?v=z2Immdl1-5Q&index=93&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.u.expressoesregulares;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressoesRegularesTest {
public static void main(String[] args) {
// \d - todos os digitos
// \D tudo o que não for digito
// \s espaços em branco \t \n \f \r
// \S caractere que não é branco
// \w caracteres de palavras a-z A-Z, digitos e _
// \W tudo o que não for caractere de palavra
// []
// ? zero ou uma
// * zero ou mais
// + uma ou mais
// {n,m} de n ate m
// ( )
// |
// $
int hex = 0x1;
String regex = "0[xX]([0-9a-fA-F])+(\\s|$)";
String texto = "12 0x 0X 0x01FFABC 0x10G 0x1";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(texto);
System.out.println("texto: " + texto);
System.out.println("indice: 012345678901234567");
System.out.println("expressao: " + matcher.pattern());
System.out.println("posicoes encontradas");
while (matcher.find()) {
System.out.println(matcher.start() + " " + matcher.group());
}
}
}
https://www.youtube.com/watch?v=LfT1kT64cFQ&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=94
package com.devdojo.javacore.u.expressoesregulares;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressoesRegularesTest {
public static void main(String[] args) {
// \d - todos os digitos
// \D tudo o que não for digito
// \s espaços em branco \t \n \f \r
// \S caractere que não é branco
// \w caracteres de palavras a-z A-Z, digitos e _
// \W tudo o que não for caractere de palavra
// []
// ? zero ou uma
// * zero ou mais
// + uma ou mais
// {n,m} de n ate m
// ( )
// |
// $
// . coringa 1.3 = 123,133,1A3,1#3, 1 3
int hex = 0x1;
//String regex = "0[xX]([0-9a-fA-F])+(\\s|$)";
//String texto = "12 0x 0X 0x01FFABC 0x10G 0x1";
//String regex = "([a-zA-Z0-9\\._-])+@([a-zA-Z])+(\\.([a-zA-Z])+)+"; //([\\w\\.])+@([a-zA-Z])+(\.([a-zA-Z])+)+
//String texto = "[email protected], [email protected], #@[email protected], [email protected], teste@mail";
String regex = "\\d{2}/\\d{2}/\\d{2,4}";
String texto = "05/10/2010 05/05/2015 1/1/01 01/05/95"; // dd/MM/yyyy
// System.out.println("Email valido? "+ "#@[email protected]".matches(regex));
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(texto);
System.out.println("texto: "+texto);
System.out.println("indice: 012345678901234567");
System.out.println("expressao: "+matcher.pattern());
System.out.println("posicoes encontradas");
while(matcher.find()){
System.out.println(matcher.start() +" "+ matcher.group());
}
}
}
https://www.youtube.com/watch?v=NHejMxwN2wc&index=95&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.u.expressoesregulares;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressoesRegularesTest {
public static void main(String[] args) {
// \d - todos os digitos
// \D tudo o que não for digito
// \s espaços em branco \t \n \f \r
// \S caractere que não é branco
// \w caracteres de palavras a-z A-Z, digitos e _
// \W tudo o que não for caractere de palavra
// []
// ? zero ou uma
// * zero ou mais
// + uma ou mais
// {n,m} de n ate m
// ( )
// |
// $
// . coringa 1.3 = 123,133,1A3,1#3, 1 3
// ^ [^abc]
int hex = 0x1;
//String regex = "0[xX]([0-9a-fA-F])+(\\s|$)";
//String texto = "12 0x 0X 0x01FFABC 0x10G 0x1";
//String regex = "([a-zA-Z0-9\\._-])+@([a-zA-Z])+(\\.([a-zA-Z])+)+"; //([\\w\\.])+@([a-zA-Z])+(\.([a-zA-Z])+)+
//String texto = "[email protected], [email protected], #@[email protected], [email protected], teste@mail";
//String regex = "\\d{2}/\\d{2}/\\d{2,4}";
//String texto = "05/10/2010 05/05/2015 1/1/01 01/05/95"; // dd/MM/yyyy
String regex = "proj([^,])*";
String texto = "proj1.bkp, proj1.java, proj1.class, proj1final.java, proj2.bkp, proj3.java, diagrama, texto, foto"; // dd/MM/yyyy
//System.out.println("Email valido? "+ "#@[email protected]".matches(regex));
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(texto);
System.out.println("texto: "+texto);
System.out.println("indice: 012345678901234567");
System.out.println("expressao: "+matcher.pattern());
System.out.println("posicoes encontradas");
while(matcher.find()){
System.out.println(matcher.start() +" "+ matcher.group());
}
}
}
https://www.youtube.com/watch?v=mbD6S4dHObw&index=96&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.u.expressoesregulares;
public class TokenTest {
public static void main(String[] args) {
String str = "José Malcher4 William9 Paulo1 Joana2 Camila3 Anna4 John5 Matheus";
String[] tokens = str.split("\\d"); // delimitador / regex
for (String arr : tokens) {
System.out.println(arr.trim());
}
}
}
package com.devdojo.javacore.u.expressoesregulares;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner scanner = new Scanner("1 true 100 oi");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
System.out.println("##########################");
Scanner scanner2 = new Scanner("1 true 100 oi");
while (scanner2.hasNext()) {
if (scanner2.hasNextInt()) {
int i = scanner2.nextInt();
System.out.println("int " + i);
} else if (scanner2.hasNextBoolean()) {
boolean b = scanner2.nextBoolean();
System.out.println(b);
} else {
System.out.println(scanner2.next());
}
}
}
}
https://www.youtube.com/watch?v=sQeG5rgwGIQ&index=97&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
messages.properties
show = show
messages_pt_BR.properties
# messages
! comentário
hello = Olá
good.morning = Bom Dia
show = SHOWWWW!!
messagens_en_US.properties
# messages
! comentário
hello = hello
good.morning = Good Morning
package com.devdojo.javacore.v.resourcebundle;
import java.util.Locale;
import java.util.ResourceBundle;
public class ResourceBundleTest {
public static void main(String[] args) {
System.out.println(Locale.getDefault());
ResourceBundle rb = ResourceBundle.getBundle("messages", new Locale("en","US"));
System.out.println(rb.getString("hello"));
System.out.println(rb.getString("good.morning"));
System.out.println(rb.getString("show"));
rb = ResourceBundle.getBundle("messages", new Locale("pt","BR"));
System.out.println(rb.getString("hello"));
System.out.println(rb.getString("good.morning"));
System.out.println(rb.getString("show"));
//Locale locale = new Locale("fr","CA");
//ResourceBundle.getBundle("messages",locale);
//messages_fr_CA.properties
//messages_fr.properties
//messages_en_US.properties
//messages_en.properties
//messages.properties
}
}
https://www.youtube.com/watch?v=OmeH6N4HI8U&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=98
https://www.youtube.com/watch?v=1MnFUxq3Z4M&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=99
package com.devdojo.javacore.w.io;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileTest {
public static void main(String[] args) {
File file = new File("Arquivo.txt");
try {
System.out.println(file.createNewFile());
boolean exists = file.exists();
System.out.println("Permissao de leitura? " + file.canRead());
System.out.println("path " + file.getPath());
System.out.println("path " + file.getAbsolutePath());
System.out.println("diretorio? " + file.isDirectory());
System.out.println("hidden? " + file.isHidden());
System.out.println("last modified? " + new Date(file.lastModified()));
if (exists) {
System.out.println("Deletado? " + file.delete());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=Czq4WgIpAe0&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=100
package com.devdojo.javacore.w.io;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterReaderTest {
public static void main(String[] args) {
File file = new File("Arquivo.txt");
try (FileWriter fw = new FileWriter(file);
FileReader fr = new FileReader(file)) {
fw.write("Escrevendo uma mensagem no arquivo\nE pulando uma linha 3");
fw.flush();
char[] in = new char[500];
int size = fr.read(in);
System.out.println("tamanho " + size);
for (char c : in) {
System.out.print(c);
}
} catch (IOException e) {
e.printStackTrace();
}
/*
try {
FileWriter fw = new FileWriter(file);
fw.write("Escrevendo uma mensagem no arquivo\nE pulando uma linha 3");
fw.flush();
fw.close();
FileReader fr = new FileReader(file);
char[] in = new char[500];
int size = fr.read(in);
System.out.println("tamanho "+size);
for(char c: in){
System.out.print(c);
}
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
*/
}
}
https://www.youtube.com/watch?v=PySJ7sq7hpE&index=101&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.w.io;
import java.io.*;
public class BufferedTest {
public static void main(String[] args) {
File file = new File("Arquivo.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file));
BufferedReader br = new BufferedReader(new FileReader(file))) {
bw.write("Escrevendo uma mensagem no arquivo");
bw.newLine();
bw.write("E pulando uma linha 3");
bw.flush();
String s;
while ((s = br.readLine()) != null) {
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
}
/*
try {
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Escrevendo uma mensagem no arquivo");
bw.newLine();
bw.write("E pulando uma linha 3");
bw.flush();
bw.close();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String s = null;
while ((s = br.readLine()) != null) {
System.out.println(s);
}
br.close();
//file não tem o close
} catch (IOException e) {
e.printStackTrace();
}
*/
}
}
https://www.youtube.com/watch?v=2rLO4JGwnOI&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=102
package com.devdojo.javacore.w.io;
import java.io.File;
import java.io.IOException;
public class FileDiretorioTest {
public static void main(String[] args) throws IOException {
/*
File diretorio = new File("folder");
boolean mkdir = diretorio.mkdir();
System.out.println("Diretorio Criado " + mkdir);
File arquivo = new File(diretorio,"arquivo.txt");
boolean newFile = arquivo.createNewFile();
System.out.println("Arquivo criado " + newFile);
File arquivoNovoNome = new File(diretorio,"arquivo_renomeado.txt");
boolean renamed = arquivo.renameTo(arquivoNovoNome);
System.out.println("Renomeado "+renamed);
File diretorioRenomeado = new File("folder2");
boolean diretorioRenamed = diretorio.renameTo(diretorioRenomeado);
System.out.println("diretorio renomeado: "+diretorioRenamed);
*/
buscarArquivos();
}
public static void buscarArquivos() {
File file = new File("folder2");
String[] list = file.list();
for (String arquivo : list) {
System.out.println(arquivo);
}
}
}
https://www.youtube.com/watch?v=URfifIDhQ_k&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=103
package com.devdojo.javacore.w.io;
import java.io.Console;
public class ConsoleTest {
public static void main(String[] args) {
/*
Executar no terminarl
*/
Console c = System.console();
char[] pw = c.readPassword("%s", "pw: ");
for(char pass : pw){
c.format("%c ", pass);
}
c.format("\n");
String texto;
while(true){
texto = c.readLine("%s","Digite: ");
c.format("esse texto %s foi digitado", retorno(texto));
}
}
public static String retorno(String arg1){
return arg1;
}
}
https://www.youtube.com/watch?v=RX3kPWkuZMQ&index=104&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.nio.file.Path;
import java.nio.file.Paths;
public class CriandoPathTest {
public static void main(String[] args) {
// C:\Users\GCUIT\Google Drive\GCU\JavaOnline
Path p1 = Paths.get("C:\\Users\\GCUIT\\Google Drive\\GCU\\JavaOnline\\Arquivo.txt");
Path p2 = Paths.get("C:\\Users\\GCUIT\\Google Drive\\GCU\\JavaOnline", "Arquivo.txt");
Path p3 = Paths.get("C:", "Users\\GCUIT\\Google Drive\\GCU\\JavaOnline", "Arquivo.txt");
Path p4 = Paths.get("C:", "Users", "GCUIT", "Google Drive", "GCU", "JavaOnline", "Arquivo.txt");
}
}
https://www.youtube.com/watch?v=gdHpxnp09_s&index=105&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
public class CriandoPathTest {
public static void main(String[] args) {
// C:\Users\GCUIT\Google Drive\GCU\JavaOnline
Path p1 = Paths.get("C:\\Users\\GCUIT\\Google Drive\\GCU\\JavaOnline\\Arquivo.txt");
Path p2 = Paths.get("C:\\Users\\GCUIT\\Google Drive\\GCU\\JavaOnline", "Arquivo.txt");
Path p3 = Paths.get("C:", "Users\\GCUIT\\Google Drive\\GCU\\JavaOnline", "Arquivo.txt");
Path p4 = Paths.get("C:", "Users", "GCUIT", "Google Drive", "GCU", "JavaOnline", "Arquivo.txt");
System.out.println(p4.toAbsolutePath());
File file = p4.toFile();
Path path = file.toPath();
Path path1 = Paths.get("pasta");
Path path2 = Paths.get("pasta\\subpasta\\subsubpasta\\");
Path arquivo = Paths.get("pasta\\subpasta\\subsubpasta\\file.txt");
try {
// if (Files.notExists(path1))
// Files.createDirectory(path1);
if (Files.notExists(path2.getParent()))
Files.createDirectories(path2.getParent());
if (Files.notExists(arquivo))
Files.createFile(arquivo);
} catch (IOException e) {
e.printStackTrace();
}
Path source = Paths.get("folder2\\arquivo.txt");
Path target = Paths.get(path2.toString() + "\\arquivoCopiado.txt");
try {
Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
Files.deleteIfExists(target);
} catch (IOException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=nBIqYjEb6ZA&index=106&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.nio.file.Path;
import java.nio.file.Paths;
public class NormalizacaoTest {
public static void main(String[] args) {
String diretorioProjeto = "JavaOnline\\home\\william\\dev";
String arquivoTxt = "..\\..\\arquivo.txt"; //voltar
Path p1 = Paths.get(diretorioProjeto,arquivoTxt);
System.out.println(p1);
System.out.println(p1.normalize());
Path p2 = Paths.get("a/./b/./c"); // '/.' ref. ao mesmo diretorio
System.out.println(p2);
System.out.println(p2.normalize());
}
}
https://www.youtube.com/watch?v=f0sAcBBdkoA&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=107
package com.devdojo.javacore.x.nio;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ResolvendoPaths {
public static void main(String[] args) {
Path dir = Paths.get("home\\jose");
Path arquivo = Paths.get("dev\\arquivo.txt");
Path result = dir.resolve(arquivo);
System.out.println(result);
Path absoluto = Paths.get("/home/jose");
Path relativo = Paths.get("dev");
Path file = Paths.get("file.txt");
System.out.println("1: "+absoluto.resolve(relativo));
System.out.println("2: "+absoluto.resolve(file));
System.out.println("3: "+relativo.resolve(file));
System.out.println("4: "+relativo.resolve(absoluto));
System.out.println("5: "+file.resolve(absoluto));
System.out.println("6: "+file.resolve(relativo));
}
}
https://www.youtube.com/watch?v=UkPKm3Hdi1A&index=108&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.nio.file.Path;
import java.nio.file.Paths;
public class RelativizarTest {
public static void main(String[] args) {
Path dir = Paths.get("/home/jose");
Path classe = Paths.get("/home/jose/java/Pessoa.java");
Path pathToClasse = dir.relativize(classe);
System.out.println(pathToClasse);
Path absoluto1 = Paths.get("/home/jose");
Path absoluto2 = Paths.get("/usr/local");
Path absoluto3 = Paths.get("/home/jose/java/Pessoa.java");
Path relativo1 = Paths.get("temp");
Path relativo2 = Paths.get("temp/Funcionario.java");
System.out.println("1: "+absoluto1.relativize(absoluto3));
System.out.println("2: "+absoluto3.relativize(absoluto1));
System.out.println("3: "+absoluto1.relativize(absoluto2));
System.out.println("4: "+relativo1.relativize(relativo2));
//System.out.println("5: "+absoluto1.relativize(relativo1));
/*
Exception in thread "main" java.lang.IllegalArgumentException: 'other' is different type of Path
at sun.nio.fs.WindowsPath.relativize(WindowsPath.java:388)
at sun.nio.fs.WindowsPath.relativize(WindowsPath.java:44)
at com.devdojo.javacore.x.nio.RelativizarTest.main(RelativizarTest.java:22)
*/
}
}
https://www.youtube.com/watch?v=ydmOXDRSTBU&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=109
package com.devdojo.javacore.x.nio;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class AtributosBasicosTest {
public static void main(String[] args) throws IOException {
Date primeiroDeDezemebro = new GregorianCalendar(2015, Calendar.DECEMBER, 1).getTime();
File file = new File("folder2\\arquivo.txt");
file.createNewFile();
file.setLastModified(primeiroDeDezemebro.getTime());
System.out.println(file.lastModified());
file.delete();
Path path = Paths.get("folder2\\arquivo_path.txt");
Files.createFile(path);
FileTime fileTime = FileTime.fromMillis(primeiroDeDezemebro.getTime());
Files.setLastModifiedTime(path, fileTime);
System.out.println(Files.getLastModifiedTime(path));
Files.deleteIfExists(path);
path = Paths.get("C:\\Users\\josemalcher\\Documents\\09-Workspaces\\workspace-DEVDOJO-Maratona-JAVA\\src\\com\\devdojo\\javacore\\a\\introducaoclasses\\classes\\Carro.java");
System.out.println(Files.isReadable(path));
System.out.println(Files.isWritable(path));
System.out.println(Files.isExecutable(path));
// BasicFileAttributes, PosixFileAttributes, DosFileAttributes
BasicFileAttributes atributosBasicos = Files.readAttributes(path, BasicFileAttributes.class); //leitura visualizações
System.out.println("create " + atributosBasicos.creationTime());
System.out.println("lastAccess " + atributosBasicos.lastAccessTime());
System.out.println("LastModified " + atributosBasicos.lastModifiedTime());
System.out.println("-------------------------------");
System.out.println(atributosBasicos.isDirectory());
System.out.println(atributosBasicos.isSymbolicLink());
System.out.println(atributosBasicos.isRegularFile());
System.out.println("-------------------------------");
// BasicFileAttributeView, PosixFileAttributeView, DosFileAttributeView, FileOwnerAttributeView, AclFileAttributeView
FileTime lastModified = atributosBasicos.lastModifiedTime();
FileTime created = atributosBasicos.creationTime();
FileTime lastAcess = FileTime.fromMillis(System.currentTimeMillis());
BasicFileAttributeView basicView = Files.getFileAttributeView(path, BasicFileAttributeView.class); //Alterações
basicView.setTimes(lastModified, lastAcess, created);
atributosBasicos = Files.readAttributes(path, BasicFileAttributes.class);
System.out.println("create " + atributosBasicos.creationTime());
System.out.println("lastAccess " + atributosBasicos.lastAccessTime());
System.out.println("LastModified " + atributosBasicos.lastModifiedTime());
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\lib\idea_rt.jar=54615:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\josemalcher\Documents\09-Workspaces\workspace-DEVDOJO-Maratona-JAVA\out\production\workspace-DEVDOJO-Maratona-JAVA" com.devdojo.javacore.x.nio.AtributosBasicosTest
1448938800000
2015-12-01T03:00:00Z
true
true
true
create 2017-10-15T02:38:07.396696Z
lastAccess 2018-01-02T22:22:26.639Z
LastModified 2017-10-15T02:38:18.333822Z
-------------------------------
false
false
true
create 2017-10-15T02:38:07.396696Z
lastAccess 2018-01-02T22:23:55.311Z
LastModified 2017-10-15T02:38:18.333822Z
Process finished with exit code 0
https://www.youtube.com/watch?v=Q5yNdsxzB7M&index=110&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.DosFileAttributeView;
import java.nio.file.attribute.DosFileAttributes;
public class DosFileAttributesTest {
public static void main(String[] args) {
Path path = Paths.get("folder2\\teste.txt");
try {
//Files.createFile(path);
Files.setAttribute(path, "dos:hidden", true);
Files.setAttribute(path, "dos:readonly", true);
DosFileAttributes dos = Files.readAttributes(path, DosFileAttributes.class);
System.out.println(dos.isHidden());
System.out.println(dos.isReadOnly());
//mais fácil
DosFileAttributeView dosView = Files.getFileAttributeView(path, DosFileAttributeView.class);
dosView.setHidden(false);
dosView.setReadOnly(false);
dos = Files.readAttributes(path, DosFileAttributes.class);
System.out.println(dos.isHidden());
System.out.println(dos.isReadOnly());
} catch (IOException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=35_-UodFIwk&index=111&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFileAttributes;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
public class PosixFileAttributesTest {
public static void main(String[] args) throws IOException {
// roda no linux
Path path = Paths.get("/home/william/dev/arquivo");
PosixFileAttributes posix = Files.readAttributes(path, PosixFileAttributes.class);
System.out.println(posix.permissions());
System.out.println("Alterando as permissoes");
Set<PosixFilePermission> permissions = PosixFilePermissions.fromString("rw-rw-rw-");
Files.setPosixFilePermissions(path,permissions);
posix = Files.readAttributes(path, PosixFileAttributes.class);
System.out.println(posix.permissions());
}
}
https://www.youtube.com/watch?v=FDFPtMpe1qo&index=112&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.x.nio;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class DirectoryStreamTest {
public static void main(String[] args) {
Path dir = Paths.get("pasta/subpasta/subsubpasta");
try(DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
for(Path path : stream){
System.out.println(path.getFileName());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\lib\idea_rt.jar=59508:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\josemalcher\Documents\09-Workspaces\workspace-DEVDOJO-Maratona-JAVA\out\production\workspace-DEVDOJO-Maratona-JAVA" com.devdojo.javacore.x.nio.DirectoryStreamTest
file.bkp
file2.bkp
file2.txt
teste.txt
Process finished with exit code 0
package com.devdojo.javacore.x.nio;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
class AcharTodosOsBkp extends SimpleFileVisitor<Path> {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.getFileName().toString().endsWith(".bkp")) {
System.out.println(file.getFileName());
}
return FileVisitResult.CONTINUE;
}
}
public class FileVisitorTest {
public static void main(String[] args) throws IOException {
Files.walkFileTree(Paths.get("pasta/subpasta"), new PrintDirs());
}
}
class PrintDirs extends SimpleFileVisitor<Path> {
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {
System.out.println("pre: " + dir);
// if(dir.getFileName().toString().equals("subsubpasta")){
// return FileVisitResult.SKIP_SIBLINGS;
// }
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
System.out.println("file " + file.getFileName());
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc)
throws IOException {
return FileVisitResult.CONTINUE;
}
public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
System.out.println("post: " + dir);
return FileVisitResult.CONTINUE;
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\lib\idea_rt.jar=59726:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\josemalcher\Documents\09-Workspaces\workspace-DEVDOJO-Maratona-JAVA\out\production\workspace-DEVDOJO-Maratona-JAVA" com.devdojo.javacore.x.nio.FileVisitorTest
pre: pasta\subpasta
file outroarquivo.txt
pre: pasta\subpasta\subsubpasta
file file.bkp
file file2.bkp
file file2.txt
file teste.txt
post: pasta\subpasta\subsubpasta
post: pasta\subpasta
Process finished with exit code 0
https://www.youtube.com/watch?v=0lBmlr8KdF0&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=113
package com.devdojo.javacore.x.nio;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
class FindAllTest extends SimpleFileVisitor<Path> {
private PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:**/*{Test*}.{java,class}");
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (matcher.matches(file)) {
System.out.println(file.getFileName());
}
return FileVisitResult.CONTINUE;
}
}
public class PathMatcherTest {
public static void main(String[] args) throws IOException {
Path path1 = Paths.get("pasta/subpasta/subsubpasta/file.bkp");
Path path2 = Paths.get("file.bkp");
Path path3 = Paths.get("william");
PathMatcher matcher = FileSystems.getDefault().getPathMatcher("glob:*.bkp");
System.out.println(matcher.matches(path1));
System.out.println(matcher.matches(path2));
System.out.println("-------------------");
matches(path1, "glob:*.bkp");
matches(path1, "glob:**/*.bkp");
matches(path1, "glob:*");
matches(path1, "glob:**");
System.out.println("-------------------");
matches(path1, "glob:*.???");
matches(path1, "glob:**/*.???");
matches(path1, "glob:**.???");
System.out.println("-------------------");
matches(path3, "glob:{william*,suane*}");
matches(path3, "glob:{william,suane}*");
matches(path3, "glob:{william,suane}");
Files.walkFileTree(Paths.get("./"), new FindAllTest());
}
private static void matches(Path path, String glob) {
PathMatcher matcher = FileSystems.getDefault().getPathMatcher(glob);
System.out.println(glob + ": " + matcher.matches(path));
}
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\lib\idea_rt.jar=59689:C:\Program Files\JetBrains\IntelliJ IDEA 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\josemalcher\Documents\09-Workspaces\workspace-DEVDOJO-Maratona-JAVA\out\production\workspace-DEVDOJO-Maratona-JAVA" com.devdojo.javacore.x.nio.PathMatcherTest
false
true
-------------------
glob:*.bkp: false
glob:**/*.bkp: true
glob:*: false
glob:**: true
-------------------
glob:*.???: false
glob:**/*.???: true
glob:**.???: true
-------------------
glob:{william*,suane*}: true
glob:{william,suane}*: true
glob:{william,suane}: true
CarroTest.class
EstudanteTest.class
ProfessorTest.class
CalculadoraTest.class
EstudanteTest.class
ParametrosTest.class
ProfessorTest.class
FuncionarioTest.class
EstudanteTest.class
ClienteTeste.class
CarroTest.class
ClientTeste.class
AssociacaoTest.class
HerancaTeste.class
PessoaTeste.class
CarroTeste.class
ClienteTeste.class
FuncionarioTeste.class
TesteProduto.class
DAOTeste.class
PolimorfismoTeste.class
CheckedExceptionTest.class
TryWithResourcesTest.class
CustomExceptionTest.class
ErrorTeste.class
MultiplasRuntimeExceltionTeste.class
SObrescritaComExceptionTeste.class
AssertTest.class
WrappersTest.class
StringBuilderTest.class
StringPerformanceTest.class
StringTest.class
DateFormatTest.class
LocaleTest.class
ManipulacaoDeDatasTest.class
NumberFormatTest.class
SimpleDateFormatTest.class
ExpressoesRegularesTest.class
ScannerTest.class
TokenTest.class
ResourceBundleTest.class
BufferedTest.class
ConsoleTest.class
FileDiretorioTest.class
FileTest.class
FileWriterReaderTest.class
AtributosBasicosTest.class
CriandoPathTest.class
DirectoryStreamTest.class
DosFileAttributesTest.class
FileVisitorTest.class
FindAllTest.class
NormalizacaoTest.class
PathMatcherTest.class
PosixFileAttributesTest.class
RelativizarTest.class
CarroTest.java
EstudanteTest.java
ProfessorTest.java
CalculadoraTest.java
EstudanteTest.java
ParametrosTest.java
ProfessorTest.java
FuncionarioTest.java
EstudanteTest.java
ClienteTeste.java
CarroTest.java
ClientTeste.java
AssociacaoTest.java
HerancaTeste.java
PessoaTeste.java
CarroTeste.java
ClienteTeste.java
FuncionarioTeste.java
TesteProduto.java
DAOTeste.java
PolimorfismoTeste.java
CheckedExceptionTest.java
TryWithResourcesTest.java
CustomExceptionTest.java
ErrorTeste.java
MultiplasRuntimeExceltionTeste.java
SObrescritaComExceptionTeste.java
AssertTest.java
WrappersTest.java
StringBuilderTest.java
StringPerformanceTest.java
StringTest.java
DateFormatTest.java
LocaleTest.java
ManipulacaoDeDatasTest.java
NumberFormatTest.java
SimpleDateFormatTest.java
ExpressoesRegularesTest.java
ScannerTest.java
TokenTest.java
ResourceBundleTest.java
BufferedTest.java
ConsoleTest.java
FileDiretorioTest.java
FileTest.java
FileWriterReaderTest.java
AtributosBasicosTest.java
CriandoPathTest.java
DirectoryStreamTest.java
DosFileAttributesTest.java
FileVisitorTest.java
NormalizacaoTest.java
PathMatcherTest.java
PosixFileAttributesTest.java
RelativizarTest.java
Process finished with exit code 0
https://www.youtube.com/watch?v=zvi6U0VxbjE&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=114
package com.devdojo.javacore.w.io;
import java.io.*;
public class StreamsTest {
public static void main(String[] args) {
//gravadorTunado();
leitorTunado();
}
private static void gravador() {
byte[] dados = {65, 66, 67, 68, 69, 70};
try (FileOutputStream gravador = new FileOutputStream("pasta/stream.txt")) {
gravador.write(dados);
gravador.flush();
System.out.println("Dados gravados com sucesso!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void leitor() {
try (FileInputStream leitor = new FileInputStream("pasta/stream.txt")) {
int leitura;
while ((leitura = leitor.read()) != -1) {
byte b = (byte) leitura;
System.out.println(" " + b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void gravadorTunado() {
byte[] dados = {65, 66, 67, 68, 69, 70};
try (BufferedOutputStream gravadorBuffer = new BufferedOutputStream(new FileOutputStream("pasta/stream.txt"), 4098)) {
gravadorBuffer.write(dados);
gravadorBuffer.flush();
System.out.println("Dados gravados com sucesso!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void leitorTunado() {
try (BufferedInputStream leitorBuffer = new BufferedInputStream(new FileInputStream("pasta/stream.txt"), 4098)) {
int leitura;
while ((leitura = leitorBuffer.read()) != -1) {
byte b = (byte) leitura;
System.out.println(" " + b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=4X4trvL0AW0&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=115
package com.devdojo.javacore.x.nio;
import java.io.*;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipandoTest {
public static void main(String[] args) {
/*Esse é o path em que será salvo o arquivo.zip, lembre-se como o path não começa com / estamos trabalhando com o
*path relativo. Isso significa que dentro da pasta do meu projeto existe o diretório pasta/subpasta
*ex: C:\MeuProjetoJava\pasta\subpasta
*No final ficará C:\MeuProjetoJava\pasta\subpasta\arquivo.zip
*/
Path dirZip = Paths.get("pasta/subpasta");
/*Dentro deste diretório estão todos os arquivos que queremos zipar. Vamos zipar todos os arquivos que estiverem
* no diretório C:\MeuProjetoJava\pasta\subpasta\subsubpasta
*/
Path dirFiles = Paths.get("pasta/subpasta/subsubpasta");
/* O resolve vai juntar o primeiro path "pasta/subpasta" com o "arquivo.zip"
* e utilizaremos a variável de referência zipFile para criar o arquivo.zip dentro do diretório pasta/subpasta.
*/
Path zipFile = dirZip.resolve("arquivo.zip");
// Ao ser executado esse try-with-resources vai criar o arquivo.zip imediatamente
try (ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipFile.toFile()));
// Comos vamos zipar todos os arquivos do diretório dirFiles apenas iteramos sobre eles usando DirectoryStream
DirectoryStream<Path> stream = Files.newDirectoryStream(dirFiles)) {
for (Path path : stream) {
//Adicionamos ao arquivo.zip uma entrada ZipEntry, que será o arquivo que será copiado para dentro do zip
zip.putNextEntry(new ZipEntry(path.getFileName().toString()));
// O código abaixo copiará os dados do arquivo para o arquivo dentro do zip
BufferedInputStream bf = new BufferedInputStream(new FileInputStream(path.toFile()));
byte[] buff = new byte[2048];
int bytesRead;
while ((bytesRead = bf.read(buff)) > 0) {
zip.write(buff, 0, bytesRead);
}
zip.flush();
zip.closeEntry();
bf.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
https://www.youtube.com/watch?v=5Rq6n-q471Q&index=116&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.y.serializacao.classes;
public class Pessoa {
}
package com.devdojo.javacore.y.serializacao.classes;
public class Turma {
private String nome;
public Turma(String nome) {
this.nome = nome;
}
@Override
public String toString() {
return "Turma{" +
"nome='" + nome + '\'' +
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
package com.devdojo.javacore.y.serializacao.classes;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Aluno implements Serializable{
private Long id;
private String nome;
private transient String password;
private static String nomeEscola = "DevDojo :)";
private transient Turma turma;
public Aluno(Long id, String nome, String password) {
System.out.println("Dentro do construtor");
this.id = id;
this.nome = nome;
this.password = password;
}
@Override
public String toString() {
return "Aluno{" +
"id=" + id +
", nome='" + nome + '\'' +
", password='" + password + '\'' +
", nomeEscola='" + nomeEscola + '\'' +
", turma='" + turma + '\'' +
'}';
}
private void writeObject(ObjectOutputStream oos){
try{
oos.defaultWriteObject();
oos.writeUTF(turma.getNome());
}catch (IOException e){
e.printStackTrace();
}
}
private void readObject(ObjectInputStream ois){
try{
ois.defaultReadObject();
turma = new Turma(ois.readUTF());
}catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
public Turma getTurma() {
return turma;
}
public void setTurma(Turma turma) {
this.turma = turma;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static String getNomeEscola() {
return nomeEscola;
}
public static void setNomeEscola(String nomeEscola) {
Aluno.nomeEscola = nomeEscola;
}
}
package com.devdojo.javacore.y.serializacao.testes;
import com.devdojo.javacore.y.serializacao.classes.Aluno;
import com.devdojo.javacore.y.serializacao.classes.Turma;
import java.io.*;
public class SerializacaoTeste {
public static void main(String[] args) {
gravadorObjeto();
leitorObjeto();
}
private static void gravadorObjeto() {
Turma t = new Turma("Maratona Java, só para os campeões");
Aluno aluno = new Aluno(1L, "William Suane", "123456");
aluno.setTurma(t);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("aluno.ser"))) {
oos.writeObject(aluno);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void leitorObjeto() {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("aluno.ser"))) {
Aluno aluno = (Aluno) ois.readObject();
System.out.println(aluno);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Dentro do construtor
Aluno{id=1, nome='William Suane', password='null', nomeEscola='DevDojo :)', turma='Turma{nome='Maratona Java, só para os campeões'}'}
https://www.youtube.com/watch?v=sv0dIuI1PXI&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=117
package com.devdojo.javacore.z.colecoes.classes;
public class Celular {
private String nome;
private String IMEI;
public Celular(String nome, String IMEI) {
this.nome = nome;
this.IMEI = IMEI;
}
//Reflexivo = x.equals(x) tem que ser true para tudo que for diferente de null
//Simetrico para xe y diferentes de null, se x.equals(y) == true logo y.equals(x) tem que ser true
//Transitividade para x, y, z diferentes de null, se x.equals(y) == true, logo y.equals(x) == true e x.equals(z) == true logo y.equals(z) também tem que ser true
//Consistente x.equals(y) deve sempre retornar o mesmo valor
// para x diferente de null x.equals(null) tem que retornar false;
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (this == obj) return true;
if (this.getClass() != obj.getClass()) return false;
Celular outroCelular = (Celular) obj;
return IMEI != null && IMEI.equals(outroCelular.getIMEI());
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getIMEI() {
return IMEI;
}
public void setIMEI(String IMEI) {
this.IMEI = IMEI;
}
}
package com.devdojo.javacore.z.colecoes.teste;
import com.devdojo.javacore.z.colecoes.classes.Celular;
public class EqualsTeste {
public static void main(String[] args) {
String nome1 = "José";
String nome2 = new String("José");
Integer int1 = 5;
Integer int2 = new Integer(5);
//System.out.println(nome1.equals(nome2));
//System.out.println(int1.equals(int2));
Celular c1 = new Celular("iPhone", "123456");
Celular c2 = new Celular("iPhone", "1234562");
System.out.println(c1.equals(c2));
}
}
https://www.youtube.com/watch?v=O0fP8jA4RVA&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=118
package com.devdojo.javacore.z.colecoes.classes;
public class Celular {
private String nome;
private String IMEI;
public Celular(String nome, String IMEI) {
this.nome = nome;
this.IMEI = IMEI;
}
/*
Reflexivo = x.equals(x) tem que ser true para tudo que for diferente de null
Simetrico para xe y diferentes de null, se x.equals(y) == true logo y.equals(x) tem que ser true
Transitividade para x, y, z diferentes de null, se x.equals(y) == true, logo y.equals(x) == true e x.equals(z) == true logo y.equals(z) também tem que ser true
Consistente x.equals(y) deve sempre retornar o mesmo valor
para x diferente de null x.equals(null) tem que retornar false;
Para hashcode
Se x.equals(y) == true y.hashCode() == x.hashCode();
y.hashCode() == x.hashCode() não necessariamente o equals deverá retornar true
x.equals(y) == false
y.hashCode() != x.hashCode() x.equals(y) deverá ser false
*/
@Override
public int hashCode() {
//return super.hashCode();
return IMEI != null ? IMEI.hashCode() : 1;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (this == obj) return true;
if (this.getClass() != obj.getClass()) return false;
Celular outroCelular = (Celular) obj;
return IMEI != null && IMEI.equals(outroCelular.getIMEI());
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getIMEI() {
return IMEI;
}
public void setIMEI(String IMEI) {
this.IMEI = IMEI;
}
}
https://www.youtube.com/watch?v=7_ZnhlYj_tc&index=119&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
https://www.javacodegeeks.com/2011/04/simple-big-o-notation-post.html
package com.devdojo.javacore.z.colecoes.teste;
import java.util.ArrayList;
import java.util.List;
public class ListTest {
public static void main(String[] args) {
List<String> nomes = new ArrayList<>();
List<String> nomes2 = new ArrayList<>();
nomes.add("José");
nomes.add("Malcher");
nomes2.add("José 2");
nomes2.add("Malcher 2");
System.out.println("size: " + nomes.size());
System.out.println(nomes.remove("Malcher")); //boolean
System.out.println("size: " + nomes.size());
nomes.addAll(nomes2); //união de duas coleções
int size = nomes.size();
for(int i = 0 ; i < size ; i++){
System.out.println(nomes.get(i));
}
List<Integer> numeros = new ArrayList<>();
numeros.add(10); //wrapper
numeros.add(20);
for(Integer num : numeros){
System.out.println(num);
}
}
}
https://www.youtube.com/watch?v=Q-jntahna8c&index=121&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.z.colecoes.teste;
import com.devdojo.javacore.z.colecoes.classes.Celular;
import java.util.ArrayList;
import java.util.List;
public class ListCelularTest {
public static void main(String[] args) {
Celular celular1 = new Celular("Galaxy S2","123456");
Celular celular2 = new Celular("Galaxy S7","123111");
Celular celular3 = new Celular("Mogo G","123444");
List<Celular> celularList = new ArrayList<>();
celularList.add(celular1);
celularList.add(celular2);
celularList.add(celular3);
for (Celular celular : celularList) {
System.out.println(celular);
}
Celular celular4 = new Celular("Mogo Play 3","123000");
System.out.println(celularList.contains(celular4)); //false
}
}
Celular{nome='Galaxy S2', IMEI='123456'}
Celular{nome='Galaxy S7', IMEI='123111'}
Celular{nome='Mogo G', IMEI='123444'}
false
https://www.youtube.com/watch?v=K6RMeKMl-VQ&index=122&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL
package com.devdojo.javacore.z.colecoes.teste;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SortListTest {
public static void main(String[] args) {
List<String> nomes = new ArrayList<>();
nomes.add("José");
nomes.add("Malcher");
nomes.add("DevDojo");
nomes.add("Maria");
nomes.add("Luciana");
nomes.add(0, "Carolina");
Collections.sort(nomes);
List<Double> numeros = new ArrayList<>();
numeros.add(1.5);
numeros.add(1.3);
numeros.add(1.9);
numeros.add(2d);
Collections.sort(numeros);
for (String nome : nomes) {
System.out.println(nome);
}
for (Double numero : numeros) {
System.out.println(numero);
}
}
}
package com.devdojo.javacore.z.colecoes.classes;
public class Produto implements Comparable<Produto> {
private String serialNumber;
private String nome;
private Double preco;
private int quantidade;
public Produto(String serialNumber, String nome, double preco) {
this.serialNumber = serialNumber;
this.nome = nome;
this.preco = preco;
}
public Produto(String serialNumber, String nome, Double preco, int quantidade) {
this.serialNumber = serialNumber;
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Produto produto = (Produto) o;
return serialNumber != null ? serialNumber.equals(produto.serialNumber) : produto.serialNumber == null;
}
@Override
public int hashCode() {
return serialNumber != null ? serialNumber.hashCode() : 0;
}
@Override
public String toString() {
return "Produto{" +
"serialNumber='" + serialNumber + '\'' +
", nome='" + nome + '\'' +
", preco=" + preco +
", quantidade=" + quantidade +
'}';
}
public void setPreco(Double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
@Override
public int compareTo(Produto outroObjeto) {
// negativo se o thisObject < outroObjeto
// Zero se thisObject == outroObjeto
// Positivo se thisObject > outroObjeto
Double d = preco;
return d.compareTo(outroObjeto.getPreco());
}
}
package com.devdojo.javacore.z.colecoes.teste;
import com.devdojo.javacore.z.colecoes.classes.Produto;
import java.util.*;
class SortProdutoTest {
public static void main(String[] args) {
List<Produto> produtos = new ArrayList<>();
Produto produto1 = new Produto("123", "Laptop Lenovo", 2000.0);
Produto produto2 = new Produto("321", "Picanha", 26.4);
Produto produto3 = new Produto("879", "Teclado Razer", 1000.0);
Produto produto4 = new Produto("012", "Samsung galaxy S7 64Gb", 3250.5);
produtos.add(produto1);
produtos.add(produto2);
produtos.add(produto3);
produtos.add(produto4);
Collections.sort(produtos);
for (Produto produto : produtos) {
System.out.println(produto);
}
}
}
https://www.youtube.com/watch?v=oK-3v2LVqzo&list=PL62G310vn6nHrMr1tFLNOYP_c73m6nAzL&index=123&t=2s
package com.devdojo.javacore.z.colecoes.teste;
import com.devdojo.javacore.z.colecoes.classes.Produto;
import java.util.*;
class ProdutoNomeComparator implements Comparator<Produto>{
@Override
public int compare(Produto o1, Produto o2) {
return o1.getNome().compareTo(o2.getNome());
}
}
class SortProdutoTest {
public static void main(String[] args) {
List<Produto> produtos = new ArrayList<>();
Produto[] produtoArray = new Produto[4];
Produto produto1 = new Produto("123", "Laptop Lenovo", 2000.0);
Produto produto2 = new Produto("321", "Picanha", 26.4);
Produto produto3 = new Produto("879", "Teclado Razer", 1000.0);
Produto produto4 = new Produto("012", "Samsung galaxy S7 64Gb", 3250.5);
produtos.add(produto1);
produtos.add(produto2);
produtos.add(produto3);
produtos.add(produto4);
//Collections.sort(produtos);
/*
Produto{serialNumber='321', nome='Picanha', preco=26.4, quantidade=0}
Produto{serialNumber='879', nome='Teclado Razer', preco=1000.0, quantidade=0}
Produto{serialNumber='123', nome='Laptop Lenovo', preco=2000.0, quantidade=0}
Produto{serialNumber='012', nome='Samsung galaxy S7 64Gb', preco=3250.5, quantidade=0}
*/
Collections.sort(produtos, new ProdutoNomeComparator());
/*
Produto{serialNumber='123', nome='Laptop Lenovo', preco=2000.0, quantidade=0}
Produto{serialNumber='321', nome='Picanha', preco=26.4, quantidade=0}
Produto{serialNumber='012', nome='Samsung galaxy S7 64Gb', preco=3250.5, quantidade=0}
Produto{serialNumber='879', nome='Teclado Razer', preco=1000.0, quantidade=0}
*/
/*for (Produto produto : produtos) {
System.out.println(produto);
}*/
produtoArray[0] = produto1;
produtoArray[1] = produto2;
produtoArray[2] = produto3;
produtoArray[3] = produto4;
Arrays.sort(produtoArray, new ProdutoNomeComparator());
for (Produto produto : produtoArray) {
System.out.println(produto);
}
}
}