mini curso java day(eliane raquel)
DESCRIPTION
TRANSCRIPT
Mini-Curso de Mini-Curso de Java Básico Java Básico
Quem vos fala...Quem vos fala...
Eliane CraveiroEliane Craveiro Estudante do curso
de Análise e Desenvolvimento de Sistemas
Trabalha com Java no projeto SIEP, da SETEC/MEC
Desenvolve com Java desde 2007
Raquel CarsiRaquel Carsi Concluinte do curso
de Análise e Desenvolvimento de Sistemas
Trabalha com Java no projeto SIEP, da SETEC/MEC
Desenvolve com Java desde 2006
Weblog: raquelcarsi.wordpress.com
Sobre o mini-cursoSobre o mini-curso
Apresentar os principais conceitos de Java
Apresentar conceitos básicos de Orientação a Objetos
Elaborar práticas
Em apenas 3 horas !!!
...um detalhe...um detalhe
Perguntas, dúvidas, sugestões são SEMPRE bem vindos, a sua participação no minicurso é fundamental.
AgendaAgenda
O que é Java?Instalando ...Criando o primeiro programaVariáveis primitivasTipo PrimitivosControle de FluxoOrientação a ObjetosArrayModificadores de AcessoHerança e polimorfismoClasses AbstratasInterface
O que é Java? O que é Java?
Características;Características;
Máquina Virtual;Máquina Virtual;
Java Lento;Java Lento;
JVM? JRE? JDK?JVM? JRE? JDK?
JavaJava
O que é Java?O que é Java?
Linguagem de Programação;
Criada em 1991;
James Gosling;
Oak ( Carvalho );
Características...Características...
Simples;Orientada a Objetos;Familiar;Robusta;Segura;Portável (independente de plataforma);
JVM – Java Virtual MachineJVM – Java Virtual Machine
Fases de um ProgramaFases de um Programa
JVM? JVM?
Máquina virtual imaginária;
Portabilidade do Java;
Diversidade de JVMs.
JVM: Coletor de Lixo – Garbage JVM: Coletor de Lixo – Garbage CollectionCollection
Write once, run anywhere!!
JDK? JRE?JDK? JRE?
JDK ◦ O Java Development Kit é composto pelo JRE e
um conjunto de ferramentas úteis ao desenvolvedor Java;
◦ Onde baixar:
JRE◦ O Java Runtime Environment contém tudo
aquilo que um usuário comum precisa para executar uma aplicação Java (JVM e bibliotecas), como o próprio nome diz é o “Ambiente de execução Java”.
DesvantagensDesvantagens
Java lento???
Instalando o JavaInstalando o Java
Criando e Executando o Primeiro Criando e Executando o Primeiro Programa (Hello Word)Programa (Hello Word)
...na linha de comando....na linha de comando.
No bloco de notas:
public class HelloWord{
public static void main (String[] args){
System.out.println ("Ola mundo");
}}
Gerar o Bytecode usando Gerar o Bytecode usando javacjavac
Se tudo ocorrer bem....Se tudo ocorrer bem....
...usando o eclipse:...usando o eclipse:
Apresentando o EclipseApresentando o Eclipse
Objetivo de uma IDE: ◦ Auxiliar no
desenvolvimento;◦ Outra IDE open source:
Netbeans
VariáveisVariáveis
Declarando variáveisDeclarando variáveis
Faça assim:
TipoDaVariavel nomeDaVariavel;
Exemplo:
int idade;
Uma idade do tipo int que guarda um número inteiro
A partir de agora você pode usá-la!
Usando variáveisUsando variáveis
Você pode atribuir valores!
idade=15;
Quer dizer que idade agora vale 15
Você pode usar esse valor!
System.out.println(idade);
O valor da idade será mostrado na tela.
Usando variáveisUsando variáveis
Você pode declarar uma outra variável e usar o valor da variável idade!
int idadeNoAnoQueVem;idadeNoAnoQueVem = idade + 1;
Idade agora vale 16
Usando variáveisUsando variáveis
Quando você declara, você já pode atribuir um valor!
Exemplo:
int idade = 15;
Você pode usar os operadores +,-,/, * e o %.
int quatro = 2 + 2;int seis = 3 * 2;int um = 5%2;
5 dividido por 2 dá 2 e tem resto 1. Esse operador % pega o resto da divisão inteira.
Usando variáveisUsando variáveis
Para armazenar valores reais use double!
double pi = 3,14;
O boolean armazena valor verdadeiro ou falso!
boolean verdade = true;boolean mentira = false;
O tipo char guarda apenas um caractere! Você deve usar aspas simples!
char letra = 'a';
Nomes de VariáveisNomes de Variáveis
Podem conter caracteres, dígitos, _ e $ Devem começar com caractere, _ ou $ Não podem conter espaços Maiúsculas diferentes de minúsculas
Exemplos
nota ; x ; y ; raio ; mediaTotal media_total ; media$total ; media1 media2 ; media_1 ; media$1 nomePai ; NomePai ; nome_mãe
Tipos PrimitivosTipos Primitivos
Tipos PrimitivosTipos Primitivos
Representam valores fundamentais
Tipos:
boolean char byte short int long float double
Tipo PrimitivosTipo Primitivos
Tipos PrimitivosTipos Primitivos
Palavra Descrição Tamanho/formatoInteiros
short Inteiro pequenoInteiroLongo
Números ReaisPonto flutuante de precisão simplesPonto flutuante de precisão dupla
Outros tiposUm caractereUm valor lógico
byte Inteiro de 1 byte 8 bits16 bits
int 32 bitslong 64 bits
float 32 bitsdouble 64 bits
char 16 bits-Unicodeboolean true ou false
ExemplosExemplos
int x;x = 234;byte b = 89;
boolean isPermitido = true;double d = 1235.56;boolean isAcessado;isAcessado = false;
char c = ‘R’;int z = x;float f = 72.5f;
boolean ligado;ligado = isPermitido;long big = 3456789;
OperadoresOperadores
OperadoresOperadores
Operador de Java Operador Descrição
[ ] Array índice
() Método chamada
. Membro acesso
++ Prefixo ou incremento postfix
-- Prefixo ou decrementar postfix
+ - Unário plus, minus
~ NÃO bitwise
! Booleano (lógico) NÃO
new Objeto criação
* / % Multiplicação, divisão, resto
+ - Adição, subtração
+ Seqüência concatenação
<< Assinado bit shift esquerda para a direita
>> Assinado bit shift direita para a esquerda
>>> Unsigned bit shift direita para a esquerda
Operador de Java Operador Descrição
< <= Inferior, igual ou inferior a
> >= Superior, superior ou igual a
instanceof Referência teste
== Igual a
!= Não é igual a
& Bitwise AND
& Booleano (lógico) E
^ Bitwise XOR
^ Booleano (lógico) XOR
| Bitwise OR
| Booleano (lógico) OU
&& Booleano (lógico) E
|| Booleano (lógico) OU
? : Condicional
= Atribuição
Estruturas de Controle de FluxoEstruturas de Controle de Fluxo
Estruturas de Controle de FluxoEstruturas de Controle de Fluxo
Executa blocos de código delimitados por chaves {...}
Estruturas de Controle de FluxoEstruturas de Controle de Fluxo
if
if/else
while
do
for
switch
ifif
CondicaoBooleanaCondicaoBooleana é uma expressão Que retorna true ou false. Você pode usar os operadores <, >, <=, >= e outros.
if (condicaoBooleanacondicaoBooleana) { instruções;}
int idade = 15;if (idade < 18idade < 18) { System.out.println("Não pode entrar");}
Exemplos:
String nome = “Raquel”;If (nome.equals(“Eliane”)){ System.out.println(“O nome é Eliane”);}
Sintaxe:
If / elseIf / else
Indica o comportamento que deve ser executado no caso da expressão booleana ser falsa!
if (condicaoBooleanacondicaoBooleana) { instruções;} else if (condicaoBooleanacondicaoBooleana) { instruções;} else { instruções;}
int idade = 15;ifif (idade < 18) { System.out.println("Não pode entrar");}elseelse { System.out.println("Pode entrar");}
Exemplo:
Sintaxe:
WhileWhile
Comando usado para fazer um laço(loop).
while (condição) {} comando;
int idade = 15;while(idade < 18) { System.out.println(idade); idade = idade + 1;}
Exemplo:
Sintaxe:
forfor
for (inicializacao; condicao; incremento) { codigo;}
Sintaxe:
int soma = 0;for (int i = 0 ; i < 10 ; i++)
f
soma+=i;System.out.println(“A soma é “+soma);
forfor
switchswitch
switch(letra)
s
{ case 'A' : System.out.println("A"); break; case 'B' : System.out.println("B"); break; default: System.out.println("?");}
switch(seletor_inteiro)
s
{ case valor_inteiro_1 : instruções; break; case valor_inteiro_2 : instruções; break; default: instruções; }
Controle de loop – break e Controle de loop – break e continuecontinue
Palavras ReservadasPalavras Reservadas
Palavras reservadas no JavaPalavras reservadas no Java
Orientação a ObjetosOrientação a Objetos
Porque OO ??Porque OO ??
Sistemas são complexos Muito difícil um único indivíduo entender todo o sistema. Podemos gerenciar a complexidade, não podemos eliminá-la. É necessário pensar na evolução do sistema
Porque OO ??Porque OO ??
Modelagem OO O ser humano conhece o mundo e gerencia sua complexidade através de objetos É como desenvolvemos nossa cognição.Desenvolvemos o conceito de OBJETOOBJETO
Exemplos de objetosbola, carro, camisa, luz, casa, calça,
música, conta bancária, poema, etc
ObjetosObjetos
Abstrações de dados do mundo real;Possuem: Características(Atributos); Comportamento(Métodos).
Objeto Características
ComportamentoPessoa Nome, idade Falar, andar
Cachorro Nome, raça Latir, correr
Conta Bancaria Saldo, agência Creditar, DebitarCarro Cor, marca Acelerar, frear
Classe e objetosClasse e objetos
Classe Classe é onde conceituamos o objeto É a essência do objeto Define os atributosatributos e métodosmétodos
Objeto Objeto é uma instânciainstância de uma classe Objetos semelhantes pertencem a mesma classe
“Pode parecer óbvio, mas a dificuldade inicial do paradigma da orientação a
objetos é justo saber distinguir o que é classe e o que é objeto.
É comum o iniciante utilizar, obviamente de forma errada, essas duas palavras
como sinônimos.”
ObjetoQualquer entidade que possui características e comportamento
ClasseDescreve um tipo de objeto Define atributos e métodos
AtributoDefine características do objeto
MétodoOperações que o objeto pode realizar
Criando um tipoCriando um tipo
Considere um programa para um Banco
Uma entidade importante é a conta
Toda conta tem:
número, nome do cliente, saldo, limite
Toda conta faz ou o que gostaríamos de “pedir a conta”:
sacar, depositar, imprimir o nome do dono da conta, ver o saldo atual, transferir dinheiro
Criando um tipoCriando um tipo
O projeto da conta, isto é, a definição da conta, é a classeclasse.
O que podemos construir a partir dessa classe, as contas de verdade, são os objetosobjetos.
Mas para acessar todos esses dados, precisamos construir uma conta, ou melhor, criar uma instânciainstância da classe.
Classes e Objetos em JavaClasses e Objetos em Java
class Conta { int numero; String nome; double saldo; double limite; // ..}
AtributosAtributoscaracterísticas do objeto
MétodosMétodosOperações que oobjeto pode realizar
class Conta { // ..atributos void sacar(double quantia){..} boolean depositar(double quantia, Conta conta){..}}
Classe em JavaClasse em Java
class nomeClasse{ //Atributos //Métodos}
Sintaxe Básica:
Classe = Atributos + Métodos1 classe => 1 arquivo
Criando e usando um objetoCriando e usando um objeto
Para criar (construir, instanciar) uma Conta, basta usar a palavra chave newnew ...
Para acessar o objeto é preciso referenciar esse objeto. É necessário uma variável!
Conta minhaConta; minhaConta = new Conta();
Criando e usando um objetoCriando e usando um objeto
Agora, podemos acessar o objeto recém criado para alterar seu nome, seusaldo etc:
Conta minhaConta; minhaConta = new Conta();
minhaConta.nome = "Duke"; minhaConta.saldo = 1000.0;
System.out.println("Saldo atual: " + minhaConta.saldo);
Agora, minhaConta pertence ao Duke, e tem saldo de mil reais.
MétodosMétodos
MétodosMétodos
De que maneira uma que uma conta saca dinheiro?
Os métodos representam o que cada conta faz e como isso é feito – os seus comportamentos
MétodosMétodos
void sacar(double quantidade) { double novoSaldo = this.saldo - quantidade; this.saldo = novoSaldo;}
void = nenhuma informação de retorno
Quanto você quer sacar? Esse valor é o parâmetro do método que está entre parênteses. Essa variável é temporária, ou seja, local.
this mostra que é um atributo (é opcional)
t
MétodosMétodos
Para invocar o método usamos o ponto!
// saca 200 reais minhaConta.saca(200);
// deposita 500 reais minhaConta.deposita(500);
System.out.println(minhaConta.saldo);
Qual o valor do saldo impresso na tela?
Métodos com retornoMétodos com retorno
Retorna um valor Retorna um valor para o código que o chamou.
No método sacar podemos retornar um valor booleano indicando se a operação foi bem sucedida ou não.
boolean saca(double valor) { if (this.saldo < valor) { return false; } else { this.saldo = this.saldo - valor; return true; }}
Métodos com retornoMétodos com retorno
minhaConta.saldo = 1000;boolean consegui = minhaConta.saca(2000);if(consegui){ System.out.println("Consegui sacar");}else{ System.out.println("Não consegui sacar");}
Array (Vetor)Array (Vetor)
São objetos que armazenam diversas variáveis do mesmo tipo;
Cada item em um array é chamado de elemento, e cada elemento é acessado pela posição numérica.
ExemploExemplo
class ArrayDemo { public static void main(String[] args) { int[] meuArray; // declara um array de inteiros meuArray = new int[10]; // aloca a memória para 10
inteiros meuArray[0] = 100; // inicializa o primeiro elemento
meuArray[1] = 200; // inicializa o segundo elemento meuArray[2] = 300; // etc. meuArray[3] = 400; meuArray[4] = 500; meuArray[5] = 600; meuArray[6] = 700; meuArray[7] = 800; meuArray[8] = 900; meuArray[9] = 1000;
...continuação do exemplo...continuação do exemplo
System.out.println("Elemento na posicao 0: " + meuArray[0]); System.out.println("Elemento na posicao 1: " + meuArray[1]); System.out.println("Elemento na posicao 2: " + meuArray[2]); System.out.println("Elemento na posicao 3: " + meuArray[3]); System.out.println("Elemento na posicao 4: " + meuArray[4]); System.out.println("Elemento na posicao 5: " + meuArray[5]); System.out.println("Elemento na posicao 6: " + meuArray[6]); System.out.println("Elemento na posicao 7: " + meuArray[7]); System.out.println("Elemento na posicao 8: " + meuArray[8]); System.out.println("Elemento na posicao 9: " + meuArray[9]); }}
... A saída desse programa é:... A saída desse programa é:
Elemento na posição 0: 100Elemento na posição 1: 200Elemento na posição 2: 300Elemento na posição 3: 400Elemento na posição 4: 500Elemento na posição 5: 600Elemento na posição 6: 700Elemento na posição 7: 800Elemento na posição 8: 900Elemento na posição 9: 1000
Declarando um arrayDeclarando um array
O programa declarou meuArray com a seguinte linha de código:
int[] meuArray; // declara um array de inteiros
Você também pode colocar os colchetes após o nome do array:
float meuArrayDeFloats[]; //forma menos utilizada
◦ Essa forma é menos utilizada, pois com os colchetes antes do nome do array fica mais fácil entender de que se trata de um array.
ArrayArray
Do mesmo modo você pode declarar arrays de outros tipos:
byte[] meuArrayDeBytes;short[] meuArrayDeShorts;long[] meuArrayDeLongs;float[] meuArrayDeFloats;double[] meuArrayDeDoubles;boolean[] meuArrayDeBooleans;char[] meuArrayDeChars;String[] meuArrayDeStrings;
Criando, Inicializando e Acessando Criando, Inicializando e Acessando um Arrayum Array
Criar◦ Utilizando o operador new;meuArray = new int[10]; // cria um array de inteiros
As próximas linhas atribuem valores para cada elemento do array:
meuArray[0] = 100; // inicializa o primeiro elementomeuArray[1] = 200; // inicializa o segundo elementomeuArray[2] = 300; // etc.
ContinuaçãoContinuação
Cada elemento do array é acessado por seu índice numérico:
System.out.println("Elemento na posicao 0: " + meuArray[0]);
System.out.println("Elemento na posicao 1: " + meuArray[1]);
System.out.println("Elemento na posicao 2: " + meuArray[2]);
...ou...ou
Alternativamente, você pode usar atalhos de sintaxe para criar e inicializar um array: int[] meuArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
o tamanho do array é determinado pelo número de valores informados entre {e}.
Modificadores de Acesso e Modificadores de Acesso e EncapsulamentoEncapsulamento
Encapsulamento refere-se ao isolamento entre as partes do programa.
◦ Private;◦ Protected;◦ Public;◦ Static;◦ Abstract;◦ Final.
Getters e SettersGetters e Setters
Getters: Método que retorna o atributoget[nome do atributo].
Ex: getIdade(), getSalario().
Setters: Método que atribui/modifica o valor de um atributo
set[nome do atributo] Ex: setIdade(Integer idade),
setSalario(Double salario).
Herança, Reescrita e Herança, Reescrita e PolimordismoPolimordismo
HerançaHerança
ReescritaReescrita
Conceito;Diferença.
PolimorfismoPolimorfismo
Conceito;Exemplos.
Classes Abstratas Classes Abstratas
Classe abstrataClasse abstrata
Não podem ser instanciadas;Não pode utilizar operador new.
Criada para Herança e Polimorfismo;Palavra chave: abstract.
public abstract class Animal { public void roam() { }}
public abstract class Canine extends Animal { public void roam() {implementação }}
InterfaceInterface
Classe abstrataClasse abstrata
Não podem ser instanciadas;Não pode utilizar operador new.
Criada para Herança e Polimorfismo;Palavra chave: abstract.
public abstract class Animal { public void roam() { }}
public abstract class Canine extends Animal { public void roam() {implementação }}
InterfaceInterface
É como uma classe abstrata, mas só tem: Métodos abstratos, públicos Campos finais estáticos, públicos
Na prática representa: Um comportamento compartilhado por várias classes onde cada classe deve implementar os métodos da interface Uma alternativa à herança múltipla
public interface Pet { ... }class Dog implements Pet { ... }
InterfaceInterface
Define um contratocontrato a ser cumprido!
Todos os métodos são:Públicosabstratos
Todos os atributos são: públicos estáticos finais
Classe deve implementar TODOS os métodos definidos na interface.
Ao implementar uma interface a classe está assinando um contrato definido
InterfaceInterface
public class Dog extends Canine implements Pet { public void beFriendly(){ ... } public void play(){ ... } public void roam(){ ... } public void eat(){ ... }}
public interface Pet { public abstract void beFriendly(); public abstract void play();}
Exercitando o que já vimos...Exercitando o que já vimos...
Diagrama UMLDiagrama UML
Quero saber mais....Quero saber mais....Como faço???Como faço???
Quero saber mais !!Quero saber mais !!
Não se esqueça - o google é seu amigo ;)Participe das listas de discussão, blogs,
fóruns .. Interaja !!!Existem bons livros na área.Dicas:
◦ GUJ - www.guj.com.br/◦ JavaRN - javarn.dev.java.net/