0% acharam este documento útil (0 voto)
2 visualizações56 páginas

Treinamento Java Básico: Fundamentos e Práticas

O documento apresenta um treinamento básico de Java, ministrado por Hiromiti Nakagawa, com uma agenda que inclui fundamentos da linguagem, ambiente de desenvolvimento e exercícios práticos. O curso aborda conceitos como a estrutura de classes, tipos de dados, operadores, controle de fluxo e boas práticas de programação. Além disso, o treinamento enfatiza a importância do conhecimento técnico e fluência em inglês para oportunidades na área de desenvolvimento.

Enviado por

jbarbosa
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações56 páginas

Treinamento Java Básico: Fundamentos e Práticas

O documento apresenta um treinamento básico de Java, ministrado por Hiromiti Nakagawa, com uma agenda que inclui fundamentos da linguagem, ambiente de desenvolvimento e exercícios práticos. O curso aborda conceitos como a estrutura de classes, tipos de dados, operadores, controle de fluxo e boas práticas de programação. Além disso, o treinamento enfatiza a importância do conhecimento técnico e fluência em inglês para oportunidades na área de desenvolvimento.

Enviado por

jbarbosa
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd

Hiromiti Nakagawa – Treinamento Java Básico

Julho, 2013

Java Básico

© 2009 IBM Corporation


Treinamento Java Básico

Agenda

Apresentações
Ambiente de Desenvolvimento
Fundamentos
Exercícios
Controle de fluxo
Exercícios

2 © 2009 IBM Corporation


Apresentações

 Hiromiti Nakagawa
– Formado em Engenharia da Computação – UFSCar/2005
– Mestre em Ciências da Computação – UFSCar/2012
– Ago/2005: Estágio na IBM
– Dez/2005: contratado como desenvolvedor Java
– Projetos Java EE da conta IGA
– Certificações
– Parcerias acadêmicas
 Alunos

3 © 2009 IBM Corporation


Apresentações

 Curso Java Básico: 20 horas


 Cronograma:
– 13/07 08:00 ~ 13:00
– 20/07 08:00 ~ 13:00
– 27/07 08:00 ~ 13:00
– 03/08 08:00 ~ 13:00
 Esquema de trabalho
– O que esperar e o que não esperar do treinamento
– Porta para a carreira de desenvolvedor
– Outro fatores relevantes
 Oportunidades IBM
 Brasil – Falta de profissionais na área
– Conhecimento técnico + fluência em inglês

4 © 2009 IBM Corporation


Treinamento Java Básico

Agenda

Apresentações
Ambiente de Desenvolvimento
Fundamentos
Exercícios
Controle de fluxo
Exercícios

5 © 2009 IBM Corporation


Ambiente de Desenvolvimento

 Plataforma Java:
– JDK 7 ([Link])
– Eclipse 4.3 ([Link])

– JDK – Java Development Kit


• É um super pacote que tem uma JRE e contém tudo o que é necessário para se
desenvolver um aplicativo Java, incluindo as APIs Java e ferramentas, como
compiladores e debuggers

– JRE – Java Runtime Environment (VM and API)


• Provê blibliotecas e componentes para se desenvolver e executar um programa
escrito em Java

6 © 2009 IBM Corporation


Treinamento Java Básico

Agenda

Apresentações
Ambiente de Desenvolvimento
Fundamentos
Exercícios
Controle de fluxo
Exercícios

7 © 2009 IBM Corporation


Fundamentos

 Java é uma plataforma de desenvolvimento composta por:


– Linguagem de programação Orientada a Objetos
– Runtime Environment (JVM – Java Virtual Machine)

– JSE – Java Standard Edition


• Aplicações desktop (Swing, SWT, RCP)
• Pacotes (bibliotecas)
– JEE –Java Enterprise Edition
• Aplicações corporativas (web, JSP, Servlet, EJB, JPA)
• Servidor de aplicação
– Java Embedded
• Dispositivos embarcados (smartcards)
– Java Mobile (JME)
• Android

8 © 2009 IBM Corporation


Fundamentos

 Conceitos JVM
– java: comando para executar código java
– javac: comando para compilar código java

9 © 2009 IBM Corporation


Fundamentos

 Conceitos JVM

1 © 2009 IBM Corporation


0
Fundamentos

 O primeiro componente da arquitetura da JVM é o class loader, utilizado para ler


arquivos .class. O Class Loader Object carrega os arquivos .class definidos pelo usuário
juntamente com seus pacotes definidos e o 'boot strap class loader' carrega arquivos .class
da API do JAVA em tempo de execução.
 Os arquivos .class carregados são direcionados ao Execution Engine. Que traduzirá os byte
codes dos .class em código nativo da plataforma onde está se rodando este código.
 O Execution engine não irá compilar todo o bytecode de uma vez só. O mesmo passará
pelo JIT(Just in Time Compiler) se ele estiver habilitado ou pelo interpretador da JVM. O JIT
transformará os bytecodes em linguagem de máquina aos blocos, sendo mais rápido que o
JVM Interpreter que interpreta os bytecodes em tempo de execução.
 Quando o código utiliza outras linguagens(ou biblioteca das mesmas), também conhecidas
como código nativo(.dll, .cab) para Java, o mesmo é processado pelo tradutor de código
nativo da JVM.
 JVM aloca memória para os tipos de dados da linguagem java em tempo de execução e
não compilação. A JVM inicialmente necessita alocar entre 2MB a 64MB para iniciar a rodar
uma aplicação.

1 © 2009 IBM Corporation


1
Fundamentos

 Estrutura de uma classe Java


Definição do pacote
Imports de pacotes
Declaração da classe {
Declaração de variáveis
de instância
Declaração de métodos
}

1 © 2009 IBM Corporation


2
Fundamentos

 Palavras Reservadas em Java:


– Interpretadas pelo compilador como comandos próprios da linguagem

1 © 2009 IBM Corporation


3
Fundamentos

 Tipos Primitivos
– byte
– short
– int
– long

– float
– double

– char

– boolean

1 © 2009 IBM Corporation


4
Fundamentos

 Variaveis em Java
– Nome pode:
• Ser formado por números, letras, $, e _
• Ter qualquer tamanho
• Ter o estilo CamelCase
– Nome da viariável NÃO pode:
• Ser uma palavra reservada
• Começar com um número
• Ter espaços
– Nome da variável DEVE:
• Começar com uma letra ou $ ou _
• Levar em consideração o CASE (Classes/Métodos e Variáveis)
• Ser auto-explicativo

 Declaração de variáveis:
<type> <name1>;
<type> <name1> = initial_value;
<type> <name1>, <name2>, <name3>;
<type> <name1> = initial_value, <name2> = initial_value;

1 © 2009 IBM Corporation


5
Fundamentos

 Exemplo: Declaração de variáveis de tipo primitivo

1 © 2009 IBM Corporation


6
Fundamentos

 Constantes
– Servem para variáveis que que possuem um valor constante, ou que não mudam nunca
– O valor não vai mudar depois que a variável for inicializada
– A palavra chave final é usada:
final <tipo> <VARIABLE_NAME> = value;
final String SONHO_DE_CONSUMO ”;
– Recomenda-se que o nome da variável esteja em letras maiúsculas e seja usado _ para
separar as palavras

1 © 2009 IBM Corporation


7
Fundamentos

 Operadores
– Modificam os valores armazenados nas variáveis

– Atribuição: =; +=, -=, *=, /=; ++, --

1 © 2009 IBM Corporation


8
Fundamentos

 Operadores
– Aritméticos: +, -, *, /, % (mod – resto da divisão inteira)
• Div – quociente da divisão inteira?
• Divisão fracionária?

1 © 2009 IBM Corporation


9
Fundamentos

 Operadores
– Relacionais ou de comparação: <, <=, >, >=, ==, !=

2 © 2009 IBM Corporation


0
Fundamentos

 Operadores
– Lógicos: &, |, ^, !, &&, ||
– Condicional ou ternário: ? :

2 © 2009 IBM Corporation


1
Fundamentos

 Operadores
– Operadores Unários:
• + indica valor positivo
• - indica valor negativo
• ! inverte o valor de uma variável booleana
– instanceof operator

2 © 2009 IBM Corporation


2
Fundamentos

 Diretivas, Blocos e Escopo


– Statements: diretivas ou instruções
• Exemplos:
int result = 0;
int[] anArray = new int[3];
anArray[0] = result;
[Link]("Element 1 at index 0: " + anArray[0]);
result = 1 + 2; // result is now 3
• São separadas com ;
• Podem ocupar a mesma linha ou linhas distintas
– Blocos
• É um conjunto de zero, uma ou mais instruções ou diretivas
• Pode ser utilizado em qualquer lugar
• { Inicia um bloco
• } Termina um bloco
• Não são finalizados com ';'
• São tratados como uma única diretiva composta com N diretivas

2 © 2009 IBM Corporation


3
Fundamentos

 Diretivas, Blocos e Escopo


– Escopo
• Regiões que delimitam acesso a variáveis e métodos que foram declarados
• Blocos ajudam a definir escopos dentro do código
• Um escopo pode ter N outros escopos
• O escopo mais “interno” tem acesso as variáveis e métodos dos escopos mais
externos

2 © 2009 IBM Corporation


4
Fundamentos

 Exemplo

2 © 2009 IBM Corporation


5
Fundamentos

 Arrays
– Tamanho fixo
– Mesmo tipo de dado
– Para acessar: indexador começa sempre no 0

– Declarando um array de primitivos


int[] key; // colchetes antes do nome (recomendado)
int key []; // colchetes depois do nome (OK, dificulta entender)

– Criando, Inicializando, a Acessando um Array


int[] anArray = new int[10]; // create an array of 10 integers
anArray[0] = 100; // initialize first element
anArray[1] = 200; // initialize second element
anArray[2] = 300; // etc.
[Link]("Element 1 at index 0: " + anArray[0]);

int[] anArray = {100, 200, 300, 400, 500, 600, 700,800, 900, 1000};

2 © 2009 IBM Corporation


6
Fundamentos

 Array de Array (Matriz)


– Array em que cada elemento é um outro Array
int[][] matriz = new int[3][2];
matriz[0][0] = 1;
matriz[0][1] = 1;
matriz[1][0] = 2; matriz[2][0] = 3;
matriz[1][1] = 2; matriz[2][1] = 3;
[Link]("Element at index [0][0]: " + matriz[0][0]);

int[][] matriz = { {1, 1}, {2, 2} {3,3} };

int[][] matriz = new int[3][2];


for(int i = 0; i < [Link]; i++){
for(int j = 0; j < matriz[i].length; j++){
matriz[i][j] = i+1;
[Link](matriz[i][j]);
}
}
2 © 2009 IBM Corporation
7
Fundamentos

 Exemplo

2 © 2009 IBM Corporation


8
Fundamentos

 Strings
String sample = "Sample Text!";

– Compare Strings utilizando o método equals();


[Link](otherString); //right!

myString == otherString; //wrong!

![Link](otherString); //right!

myString != otherString; //wrong!

– Cuidado com Performance


• Array de char
– A cada alteração/concatenação de uma string, um novo objeto String é criado
String s = new String(“Teste”)
s = “Novo valor”
 StringBuffer
– Reusa o mesmo objeto (concatenação e alterações são feitas no próprio objeto)

2 © 2009 IBM Corporation


9
Fundamentos

 Exemplo

3 © 2009 IBM Corporation


0
Fundamentos

 Best Practices
– Identar o código adequadamente
– Adotar padrões para formatação do código
– Sempre usar {..} em ifs, switches, for, etc
– Utilizar camelCase para nomear variáveis, métodos, classes
– Escolher nomes representativos
– Comentar o código
– Manter o código simples e enxuto
– Criar métodos para trechos de código que são usados para executar uma função
específica ou que podem ser reusados

3 © 2009 IBM Corporation


1
Treinamento Java Básico

Agenda

Apresentações
Ambiente de Desenvolvimento
Fundamentos
Exercícios
Controle de fluxo
Exercícios

3 © 2009 IBM Corporation


2
Exercícios

 Instalar JDK
 Abrir o Eclipse, selecionar a perspectiva Java
 Criar um projeto Java
 Criar uma classe
 Criar o main()
 Compilar
 Executar
 Escrever um Hello World Java
 Escrever um código que calcula o menor número de notas necessárias para formar um
valor que refere-se à quantia a ser sacada de um caixa eletrônico. As notas que este caixa
possui são de R$50,00, R$20,00, R$10, R$5,00 e R$1,00

3 © 2009 IBM Corporation


3
Exercícios

 Solução

3 © 2009 IBM Corporation


4
Treinamento Java Básico

Agenda

Apresentações
Ambiente de Desenvolvimento
Fundamentos
Exercícios
Controle de fluxo
Exercícios

3 © 2009 IBM Corporation


5
Controle de fluxo

 Estruturas para controlar e/ou alterar o fluxo de execução segundo:


– Condições: if. if-else, switch
– Repetições: while, for, do-while

 if-else
– else é opcional
– Pode ser aninhado

if (condition) { if (condition1) {
… …
} } else if (codition2) {

if (condition) { } else {
… …
} else { }
… }
}

3 © 2009 IBM Corporation


6
Controle de fluxo

 Exemplo

3 © 2009 IBM Corporation


7
Controle de fluxo

 switch
– Testa uma variável em relação a uma lista de opções
– Compara pela igualdade (não funciona com <, <=, >, >=, !=)
– “break” é essencial ser usado
– Apenas tipos primitivos inteiros (byte, short, int, long), char e enumpodem ser usados
– Strings não eram permitidas até a versão 7
– Objetos como Dog, Customers não são permitidos
– Linhas de código depois do case são executados até encontrar o comando break
– Sintaxe:
switch (variable){
case value1:

break;
case value2:

break;
default:

}

3 © 2009 IBM Corporation


8
Controle de fluxo

 Exemplo

3 © 2009 IBM Corporation


9
Controle de fluxo

 while
– Loop
– Enquanto a condição for satisfeita, executa o bloco de código
– Executa 0 ou mais vezes
– Sintaxe:
while( condition ){

}

4 © 2009 IBM Corporation


0
Controle de fluxo

 do-while
– Loop
– Executa o bloco de código enquanto a condição for satisfeita
– Executa 1 ou mais vezes
– Sintaxe:
do

} while ( condition );

4 © 2009 IBM Corporation


1
Controle de fluxo

 for (tradicional)
– Syntax:
for ((1)int i = 0; (2)i < 10; (4)i++){
(3)…
}

(1) Faz a declaração/inicialização da variável de controle da iteração


(2) Condição para continuação do loop
(3) Código a ser executada a cada iteração
(4) Incremento da variáveld e controle valor e repete 2-3-4.
Quando (2) avalia como falso, a iteração para

– Todos os elementos são opcionais. Se (2) não estiver presente, a condição sempre é
“true”

4 © 2009 IBM Corporation


2
Controle de fluxo

 Exemplo – for (tradicional)

4 © 2009 IBM Corporation


3
Controle de fluxo

 Enhanced for
– Iteração do tipo “for each”
– Pode ser usado com qualquer array ou Collection
– Sintaxe:
for (declaration : array) {

}

– Exemplo:
int[] numberArray = {10, 20, 30, 40, 50};
for (int number : numberArray) {
[Link](number);
}

– O indíce atual não é mantido em nenhum lugar

4 © 2009 IBM Corporation


4
Controle de fluxo

 Exemplo – enhanced for

4 © 2009 IBM Corporation


5
4 © 2009 IBM Corporation
6
Controle de fluxo

 Branching statements
– break
• Interrompe o fluxo de execução
• Pode ser usado fora de um switch para:
Terminar um loop (for, while, do-while), “quebrando o laço”;
Modificar o fluxo de controle dentro de uma estrutura condicional (if, if-else, switch);
• Duas formas: labeled e unlabeled
Unlabeled
for (… ;… ;…) {
…;
if (condition)
break;
…;
}

Labeled
label:
for (…;…;…) { // 1st for
for(…;…;…) {// 2nd for

if (condition)
break label; // breaks to 1st for

}

}

4 © 2009 IBM Corporation


7
Controle de fluxo

 continue
– Passa a iteração seguinte de
um for, while ou do while,
“continuando o laço”

– Pode ser labeled ou não

4 © 2009 IBM Corporation


8
Controle de fluxo

 return
– Indica saída de um método ou controle de fluxo
– Permite retornar um valor como resultado do método invocado
– Espera um valor se o tipo do retorno do método não for void.
– Finaliza a execução de um método, e por isso geralmente é a última instrução a ser
chamado em um laço ou método

4 © 2009 IBM Corporation


9
Treinamento Java Básico

Agenda

Apresentações
Ambiente de Desenvolvimento
Fundamentos
Exercícios
Controle de fluxo
Exercícios

5 © 2009 IBM Corporation


0
Exercícios

 Criar um código para ordernar um array em ordem crescente


– 13, 31, 17, 3, 1, 5, 17, 11, 7, 23, 19, 29, 1
 Ordernar e remover os repetidos
 Crie um código que faça a transposição de uma matriz, ou seja, elementos de uma linha
devem ser colocados na coluna da nova matriz transposta.

5 © 2009 IBM Corporation


1
Exercícios

 Solução

5 © 2009 IBM Corporation


2
Exercícios

5 © 2009 IBM Corporation


3
Exercícios

5 © 2009 IBM Corporation


4
Exercícios

5 © 2009 IBM Corporation


5
Backup slides

 Executando Código no Eclipse


– Botão direito na classe que se deseja executar.
– Run As > Java Application.

– Notas: Se Java Application não estiver disponível a você, as chances de você ter criado
um método main () dentro de sua classe com algum tipo de Typo ou erro é muito
grande. O método deve seguir o padrão passado:

– O mesmo pode ser declarado com um VARG nos argumentos do método no lugar de
um Array de Strings. Exemplo: String ...args .

5 © 2009 IBM Corporation


6

Você também pode gostar