An open API service indexing awesome lists of open source software.

https://github.com/kauefraga/learning-java

☕ Sim, sim, sim... Aqui estou eu, aprendendo a linguagem de programação Java :)
https://github.com/kauefraga/learning-java

brazil brazilian-portuguese core java learn learning

Last synced: 6 months ago
JSON representation

☕ Sim, sim, sim... Aqui estou eu, aprendendo a linguagem de programação Java :)

Awesome Lists containing this project

README

          

# `Learning Java` (:brazil:)

> ☕ Aprendendo a linguagem Java. Decidi aprender Java devido ao queridinho, Minecraft. Quero fazer uns mods e umas traquinagens no jogo hehe. É uma linguagem madura com um ecossistema interessante.

## 📚 O que aprendi

Você pode encontrar os arquivos `.java` dentro da pasta [`aulas`](aulas/src).

- [x] Linguagem de programação Java
- O que é?
- Por que aprender Java?
- Diferença entre JDK, JRE e JVM.
- Como instalar?
- [x] Comentários - Uma linha e múltiplas linhas
- [x] Variáveis
- O que são?
- Como declarar? Existe mais de uma forma?
- Quais tipos existem? Inteiro, ponto-flutuante, *double*, *string*, *char*, *booleans*, etc.
- Diferença entre tipo primitivo e derivado.
- [x] Entrada do usuário (com `Scanner`)
- [x] Expressões aritméticas
- `x + y; x--; y *= x`
- [x] Introdução a GUI (com `JOptionPane`)
- [x] Calcular hipotenusa utilizando o teorema de Pitágoras
- [x] Como gerar vários valores pseudo-aleatórios (com `Random`)
- [x] Expressões if, else-if e else
- [x] Expressões switch, case, break e default
- [x] For, while/do-while and nested loops
- [x] Arrays and 2d arrays
- [x] Métodos de string
- [x] Wrapper classes
- [x] ArrayList e ArrayList bidimensional
- [x] For each/enhanced for loop
- [x] Métodos
- Diferença entre parâmetro e argumento
- Overloaded methods
- [x] Printf
- Flags, precisão, tamanho/espaços e conversion character
- [x] Final (constante ou variável imutável)
- Convenção: NOME_EM_LETRAS_MAIÚSCULAS
- [x] Introdução a programação orientada a objetos
- Objeto, instância de uma classe
- Propriedade/atributo, propriedade/coisa que uma classe tem
- Construtor, método chamado quando uma classe é instanciada
- Escopo local e global
- `Static`, método que pode ser utilizado sem uma instância da classe
- Herança ou *inheritance* (super class/parent -> child class)
- Method Overriding, quando uma child class implementa um método herdado (mesmo nome)
- Overloaded constructor
- `Super`, chama o construtor da classe super/pai
- `abstract`, impossível instanciar uma classe abstrata
- Private, public e protected
- Encapsulation
- Polimorfismo e polimorfismo dinâmico
- Controle de exceção (*exception handling*) utilizando `try/catch`
- File, file writer e file reader
- Audio

## ⬇ Instalando este projeto

1. Clonar o repositório
2. Abrir no IntelliJ IDEA (ainda não aprendi a fazer uma configuração mais genérica para qualquer editor de texto/IDE)
3. Abra um arquivo dentro da pasta `aulas/` e execute

```bash
# (1)
git clone https://github.com/kauefraga/learning-java.git
```

## 🧻 Recursos

Lista de conteúdos que consumi para escrever este projeto:

- [IntelliJ IDEA](https://www.jetbrains.com/pt-br/idea/download)
- [Onde baixar o JDK](https://www.oracle.com/java/technologies/downloads)
- [Javinha](https://www.java.com/pt-BR/download)
- [Por que Java 8?](https://www.java.com/pt-BR/download/why-java-8-recommended.html)
- [Javinha em 12 horas - Bro Code](https://youtu.be/xk4_1vDrzzo)
- [Java GUI em 5 horas - Bro Code](https://youtu.be/Kmgo00avvEw)
- [Incluir `.idea` ou não?](https://stackoverflow.com/questions/3041154/intellij-idea-9-10-what-folders-to-check-into-or-not-check-into-source-contro)

## 📜 To do

- Conclui o curso de 12 horas do Canal Bro Code.
- Documentar instalação do IntelliJ community, Java, JDK, como compilar para .jar, como o java é multi plataforma, como configurar um bom ambiente de desenvolvimento Java com Gradle

## 📝 Licença

Este projeto está sob licença do MIT - Veja a [LICENÇA](https://github.com/kauefraga/learning-java/blob/main/LICENSE) para mais informações.