2. UM POUCO SOBRE MIM.
▸ Desenvolvedor de software com alguns anos de mercado.
▸ Com o tempo acabei me tornando um especialista em
Android.
▸ Sou maluco pro desenvolvimento de software.
▸ E doido por novas linguagens.
▸ Atualmente trabalhando no Instituto atlântico.
4. JAVA. UMA LINGUAGEM ANTI ERROS.
‣ TIPAGEM FORTE E ESTATICA.
‣ ORIENTAÇÃO A OBJETOS.
‣ GARBAGE COLLECTOR.
‣ EXCEPTIONS OBRIGATORIAMENTE TRATADAS.
‣ ERROS TRATADOS EM TEMPO DE COMPILAÇÃO.
8. INTELLIJ. UMA IDE SIMPLES E COMPLETA PARA PROGRAMAR.
‣ IDE ADOTADA PELO GOOGLE PARA
DESENVOLVIMENTO ANDROID.
‣ SIMPLES DE CONFIGURAR.
‣ GRATIS PARA JAVA E ANDROID.
‣ GRANDES FERRAMENTAS DE AJUDA NA HORA DE
PROGRAMAR.
10. CLASSE MAIN. TUDO TEM UM INÍCIO.
‣ É O PONTO DE ENTRADA PARA QUALQUER
APLICAÇÃO JAVA DESKTOP.
‣
public class Main {
public static void main(String[] args) {
// write your code here
}
‣
}
12. DECLARANDO VARIÁVEIS. TUDO VARIA, MENOS O TIPO…
‣ VARIÁVEIS SEMPRE TEM UM TIPO.
‣ O TIPO DE UMA VARIÁVEL NUNCA MUDA.
‣ ESSA É UMA DAS MAIORES ARMAS DO JAVA
CONTRAS OS ERROS DE ESCRITA DE CÓDIGO.
13. TIPOS PRIMITIVOS E OUTROS TIPOS.
‣ TIPOS PRIMITIVOS SÃO OS ÚNICOS TIPOS NÃO
OBJETOS DO JAVA.
‣ INT, LONG, FLOAT, DOUBLE, BOOLEAN, CHAR,
SHORT E BYTE.
‣ ESSES CARAS EXISTEM APENAS POR LEGADO DE
ANTIGAS VERSÕES.
14. TIPOS
‣ INTEGER, DOUBLE, LONG, FLOAT, STRING E
BOOLEAN.
public static void main(String[] args) {
int a; Integer a1;
char b; String b1;
double c; Double c1;
long d; Long d1;
float e; Float e1;
boolean f; Boolean f1;
}
17. MÉTODOS. A CHAVE DO REUSO DE CÓDIGO.
‣ MÉTODO É UM BLOCO DE CÓDIGO QUE PODE SER
CHAMADO REPETIDAS VEZES.
‣ NORMALMENTE CRIADO PARA REALIZAR UMA
AÇÃO/VERBO.
public class MinhaClasse {
private Integer meuNumero = 5;
public void qualMeuNumero() {
System.out.println("Meu numero é " + meuNumero);
}
}
18. PARAMETROS DE MÉTODOS
‣ MÉTODOS PODEM REALIZAR AÇÕES DE ACORDO
COM PARÂMETROS PASSADOS NA CAMADA.
‣ CADA CHAMADA AGIRÁ DIFERENTE, DE ACORDO
COM O PARÂMETRO PASSADO.
public class MinhaClasse {
public void qualMeuNumero(Integer meuNumero) {
System.out.println("Meu numero é " + meuNumero);
}
}
19. RETORNO DE MÉTODO.
‣ MÉTODOS PODEM RETORNAR UM VALOR PARA O
SEU INVOCADOR.
‣ UM MÉTODO PODE CALCULAR UM VALOR DE
ACORDO COM O PARÂMETRO PASSADO E RETORNAR
ESSE VALOR.
public class MinhaClasse {
public Integer meuNumeroAoQuadrado(Integer meuNumero) {
return meuNumero * meuNumero;
}
}
22. TAVA NO FLUXO
‣ CONTROLE DE FLUXO DE CÓDIGO É O PRINCIPAL
CONCEITO DE QUALQUER LINGUAGEM DE
PROGRAMAÇÃO.
‣ NEM TODAS AS LINHAS DE CÓDIGO DEVEM SER
EXECUTADAS. IF E ELSE RESOLVEM ESSE
PROBLEMA.
‣ IF E ELSE PRECISAM DE UM BOOLEAN PARA
FUNCIONAR.
23.
24. IF E ELSE. É OU NÃO É.
‣ OS COMPARADORES: >, <, >=, <=, == E !=
GERAL BOOLEANS QUE PODEM SER USADOS EM
IF/ELSE.
public class MinhaClasse {
public boolean numeroENegativo(Integer meuNumero) {
if (meuNumero < 0) {
return true;
} else {
return false;
}
}
}
27. FOR E WHILE. REPETIÇÃO É VIDA.
‣ LAÇOS DE REPETIÇÃO IRÃO EXECUTAR
CONTINUAMENTE ATÉ QUE UMA CONDIÇÃO SEJA
ATENDIDA.
‣ É EXTREMAMENTE USADO PARA ITERAÇÃO COM
LISTAS.
30. TIME IS MONEY
‣ COMO TEMOS POUCO TEMPO. VAMOS NOS
CONCENTRAR APENAS NOS ARRAYS.
‣ PODEMOS CRIAR UM ARRAY DE QUALQUER TIPO
COM ESSAS SINTAXES.
public static void main(String[] args) {
Integer[] meusNumeros = new Integer[8];
}
public static void main(String[] args) {
Integer[] meusNumeros = {2, 4, 5, 7, 1, 9};
}
33. VOLTANDO AO WHILE
‣ UM LAÇO DE WHILE IRA EXECUTAR ATÉ QUE SUA
CONDIÇÃO SEJA ATENDIDA.
public static void main(String[] args) {
Integer meuNumero = 0;
while(meuNumero < 5) {
System.out.println(meuNumero);
meuNumero = meuNumero + 1;
}
}
34. VOLTANDO AO FOR
‣ FOR É UMA LAÇO ESPECIALIZADO EM
TRABALHAR COM LISTAS.
public static void main(String[] args) {
Integer[] meusNumeros = {1, 3, 5, 7, 9, 20};
for (int x = 0; x < meusNumeros.length; x++) {
Integer meuNumero = meusNumeros[x];
System.out.println(meuNumero);
}
}
35. FOREACH
‣ FOREACH É UMA ESPECIALIZAÇÃO DO FOR QUE
DEVE SER USADA SEMPRE QUE FOR PRECISO
ITERAR SOBRE TODA A LISTA.
public static void main(String[] args) {
Integer[] meusNumeros = {1, 3, 5, 7, 9, 20};
for (Integer meuNumero : meusNumeros) {
System.out.println(meuNumero);
}
}
40. UM POUCO SOBRE MIM.
▸ Desenvolvedor de software com alguns anos de mercado.
▸ Com o tempo acabei me tornando um especialista em
Android.
▸ Sou maluco pro desenvolvimento de software.
▸ E doido por novas linguagens.
▸ Atualmente trabalhando no Instituto atlântico.
47. CLASSE. OU VOCÊ TEM OU VOCÊ NÃO TEM.
‣ CLASSE É A DESCRIÇÃO DE UM TIPO DE UMA
VARIÁVEL.
‣ DESCREVE TODOS OS COMPORTAMENTOS QUE
UM OBJETO TERÁ.
‣ É A BASE PARA A ORIENTAÇÃO A OBJETOS.
51. OBJETOS TEM CLASSE
‣ OBJETOS SÃO A INSTANCIA/CONSTRUÇÃO DE
UMA CLASSE.
‣ E TEM TODOS OS COMPORTAMENTOS DESCRITOS
NA MESMA.
public static void main(String[] args) {
MinhaClasse minhaClasse = new MinhaClasse();
}
57. PRIVADO OU PUBLICO. MUDANDO O ACESSO.
‣ VARIÁVEIS E MÉTODOS DE CLASSE PODEM TER
UM MODIFICADOR DE ACESSO.
‣ PUBLIC SIGNIFICA QUE QUALQUER UM PODE
ACESSAR A VARIÁVEL A PARTIR DO OBJETO.
‣ PRIVATE INDICA QUE NINGUÉM ALÉM DO
PRÓPRIO OBJETO PODE TER ACESSO A VARIÁVEL.
58. SEGUINDO O PADRÃO JAVA. FAZER O QUE…..
‣ O PADRÃO JAVA DEFINE QUE NUNCA DEVEMOS
TER UMA VARIÁVEL PUBLIC EM UMA CLASSE.
‣ TODAS AS VARIÁVEIS DEVEM SER PRIVATE.
public class MinhaClasse {
public String naoPode = "Não faça isso jovem";
private String pode = "Faça isso jovem";
}
59.
60. public static void main(String[] args) {
MinhaClasse minhaClasse = new MinhaClasse();
System.out.println(minhaClasse.pode);
//Isso não compila pois a variável pode tem o modificador private
}
‣ O PADRÃO JAVA EXIGE QUE AS VARIÁVEIS SEJAM
ACESSADAS POR MÉTODOS DE GET E SET.
‣ O PADRÃO GET E SET ESTÃO PRESENTES EM
TODAS AS APIS JAVA.
61. GET E SET
‣ ADEQUANDO NOSSO CÓDIGO AO PADRÃO…
public class MinhaClasse {
private String pode = "Faça isso jovem";
public String getPode() {
return pode;
}
public void setPode(String pode) {
this.pode = pode;
}
}
public static void main(String[] args) {
MinhaClasse minhaClasse = new MinhaClasse();
System.out.println(minhaClasse.getPode());
}
64. EXCEPTIONS. ERROS SÃO SEMPRE ESPERADOS NO MUNDO JAVA.
‣ DURANTE A EXECUÇÃO DE UM MÉTODO, UM
ERRO PODE ACONTECER.
‣ DEVEMOS SER SEMPRE CAPAZES DE TRATAR
ESSES ERROS.
‣ EM JAVA MÉTODOS PODEM EXPLICITAMENTE
INFORMAR QUE PODEM LANÇAR UMA EXCEÇÃO.
66. EXCEPTIONS.
‣ DECLARAR UMA EXCEÇÃO SIGNIFICA INFORMAR
QUE UM MÉTODO PODE CAUSAR UM ERRO E
EXIGIR QUE ESSE ERRO SEJA EXPLICITAMENTE
TRATADO.
public void deuRuim(Integer number) throws Exception {
if (number == 5) {
System.out.println("Sucesso!!!!!");
} else {
throw new Exception("Erro na execução do método");
}
}
67. EXCEPTIONS.
‣ TODOS QUE EVOCAREM O MÉTODO PRECISAM
TRATAR A EXCEÇÃO.
public static void main(String[] args) {
MinhaClasse minhaClasse = new MinhaClasse();
minhaClasse.deuRuim(4);
}
‣ O CÓDIGO ACIMA NÃO COMPILA. OCORRE UM
ERRO DE COMPILAÇÃO DEVIDO A EXISTÊNCIA DE
UMA EXCEÇÃO NÃO TRATADA.
68. TRY CATCH. TENTA EXECUTAR PARA MIM.
‣ PARA COMPILAR O CÓDIGO É NECESSÁRIO
TRATAR A EXCEÇÃO.
public static void main(String[] args) {
MinhaClasse minhaClasse = new MinhaClasse();
try {
minhaClasse.deuRuim(4);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
‣ CASO O MÉTODO JOGUE UMA EXCEÇÃO, O BLOCO
CATCH SERÁ CHAMADO.
71. BIBLIOTECAS DE TERCEIROS
‣ SÃO CÓDIGOS FEITOS POR OUTRAS PESSOAS E
DISPONIBILIZADOS PARA USO LIVRE OU NÃO.
‣ NORMALMENTE CHAMADOS DE FRAMEWORKS.
‣ TEM O INTUITO DE FACILITAR/POSSIBILITAR A
EXECUÇÃO DE TAREFAS COMPLEXAS.
75. TEXTO
DESAFIO
▸ Quero acessar uma pagina da internet.
▸ Vamos fazer uma requisição HTTP a um site publico.
▸ Vamos exibir o conteúdo textual desse site.
78. TEXTO
‣ COM A ADIÇÃO DESSA BIBLIOTECA TEMOS ACESSO
A NOVAS CLASSES E MÉTODOS.
‣ E PODEMOS CRIAR UM MÉTODO EM NOSSA CLASSE
QUE FAZ REQUISIÇÕES A INTERNET.
public class MinhaClasse {
public String request(String url) throws IOException {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Response response = okHttpClient.newCall(request).execute();
return response.body().string();
}
}
79. TEXTO
E PODEMOS CHAMAR ESSE MÉTODO EM NOSSA CLASSE MAIN.
public static void main(String[] args) {
try {
MinhaClasse minhaClasse = new MinhaClasse();
String resultado = minhaClasse.request("http://square.github.io/okhttp/");
System.out.println(resultado);
} catch (IOException e) {
System.out.println(e.getMessage());
}
}