mini curso java day(eliane raquel)

Post on 13-Jan-2015

3.904 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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/

top related