You are on page 1of 111

Mini-Curso de Java Bsico

Quem vos fala...

Eliane

Craveiro Estudante do curso de Anlise e Desenvolvimento de Sistemas Trabalha com Java no projeto SIEP, da SETEC/MEC Desenvolve com Java desde 2007

Raquel

Carsi Concluinte do curso de Anlise e Desenvolvimento de Sistemas Trabalha com Java no projeto SIEP, da SETEC/MEC Desenvolve com Java desde 2006 Weblog:
raquelcarsi.wordpress.co m

Sobre o mini-curso

Apresentar Apresentar

os principais conceitos de Java

conceitos bsicos de Orientao a Objetos prticas

Elaborar Em

apenas 3 horas !!!

Perguntas,

dvidas, sugestes so SEMPRE bem vindos, a sua participao no minicurso fundamental.

...um detalhe

Agenda

que Java? Instalando ... Criando o primeiro programa Variveis primitivas Tipo Primitivos Controle de Fluxo Orientao a Objetos Array Modificadores de Acesso Herana e polimorfismo Classes Abstratas Interface

que Java?

Caractersticas; Mquina Java

Virtual;

Lento; JRE? JDK?

JVM?

Java

Linguagem Criada James Oak

de Programao;

em 1991; Gosling;

( Carvalho );

O que Java?

Simples; Orientada Familiar; Robusta; Segura; Portvel

a Objetos;

(independente de plataforma);

Caractersticas...

JVM Java Virtual Machine

Fases de um Programa

Mquina

virtual imaginria; do Java;

Portabilidade Diversidade

de JVMs.

JVM?

JVM: Coletor de Lixo Garbage Collection

Write once, run anywhere!!

JDK

O Java Development Kit composto pelo JRE e um conjunto de ferramentas teis ao desenvolvedor Java; Onde baixar:
JRE

O Java Runtime Environment contm tudo aquilo que um usurio comum precisa para executar uma aplicao Java (JVM e bibliotecas), como o prprio nome diz o Ambiente de execuo Java.

JDK? JRE?

Java

lento???

Desvantagens

Instalando o Java

Criando e Executando o Primeiro Programa (Hello Word)

...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 javac

Se tudo ocorrer bem....

...usando o eclipse:

Objetivo

de uma IDE:

Auxiliar no desenvolvimento; Outra IDE open source: Netbeans

Apresentando o Eclipse

Variveis

Faa assim:
TipoDaVariavel nomeDaVariavel;

Exemplo:
int idade;

Uma idade do tipo int que guarda um nmero inteiro

A partir de agora voc pode us-la!

Declarando variveis

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 variveis

Voc pode declarar uma outra varivel e usar o valor da varivel idade!

int idadeNoAnoQueVem; idadeNoAnoQueVem = idade + 1;

Idade agora vale 16

Usando variveis

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 diviso inteira.

Usando variveis

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';

Usando variveis

Podem conter caracteres, dgitos, _ e $ Devem comear com caractere, _ ou $ No podem conter espaos Maisculas diferentes de minsculas

Exemplos
nota ; x ; y ; raio ; mediaTotal media_total ; media$total ; media1 media2 ; media_1 ; media$1 nomePai ; NomePai ; nome_me

Nomes de Variveis

Tipos Primitivos

Representam valores fundamentais Tipos:

boolean int

char long

byte short float double

Tipos Primitivos

Tipo Primitivos

Palavra byte short int long

Descrio Inteiros Inteiro de 1 byte Inteiro pequeno Inteiro Longo

Tamanho/formato 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits 16 bits-Unicode true ou false

Nmeros Reais float Ponto flutuante de preciso simples double Ponto flutuante de preciso dupla Outros tipos char Um caractere boolean Um valor lgico

Tipos Primitivos

int x; x = 234; byte b = 89;

boolean isPermitido = true; double d = 1235.56; boolean isAcessado; isAcessado = false;

boolean ligado; ligado = isPermitido; long big = 3456789;

char c = R; int z = x; float f = 72.5f;

Exemplos

Operadores

Operador de Java [] () . ++ -+~ ! new */% ++ << >> >>>

Operador Descrio Array ndice Mtodo chamada Membro acesso Prefixo ou incremento postfix Prefixo ou decrementar postfix Unrio plus, minus NO bitwise Booleano (lgico) NO Objeto criao Multiplicao, diviso, resto Adio, subtrao Seqncia concatenao Assinado bit shift esquerda para a direita Assinado bit shift direita para a esquerda Unsigned bit shift direita para a esquerda

Operador de Java < <= > >= instanceof == != & & ^ ^ | | && || ?: =

Operador Descrio Inferior, igual ou inferior a Superior, superior ou igual a Referncia teste Igual a No igual a Bitwise AND Booleano (lgico) E Bitwise XOR Booleano (lgico) XOR Bitwise OR Booleano (lgico) OU Booleano (lgico) E Booleano (lgico) OU Condicional Atribuio

Operadores

Estruturas de Controle de Fluxo

Executa blocos de cdigo delimitados por chaves {...}

Estruturas de Controle de Fluxo

if if/else while do for switch

Estruturas de Controle de Fluxo

Sintaxe:
if (condicaoBooleana) { instrues; } CondicaoBooleana uma expresso Que retorna true ou false. Voc pode usar os operadores <, >, <=, >= e outros.

Exemplos:
int idade = 15; String nome = Raquel; if (idade < 18) { If (nome.equals(Eliane)){ System.out.println("No pode entrar"); System.out.println(O nome Eliane); } }

if

Sintaxe:
if (condicaoBooleana) { instrues; } else if (condicaoBooleana) { instrues; } else { instrues; } Indica o comportamento que deve ser executado no caso da expresso booleana ser falsa!

Exemplo:

int idade = 15; if (idade < 18) { System.out.println("No pode entrar"); } else { System.out.println("Pode entrar"); }

If / else

Sintaxe:
while (condio) { } comando; Comando usado para fazer um lao(loop).

Exemplo:
int idade = 15; while(idade < 18) { System.out.println(idade); idade = idade + 1; }

While

Sintaxe:

for (inicializacao; condicao; incremento) { codigo; } int soma = 0; for (int i = 0 ; i < 10 ; i++) soma+=i; System.out.println(A soma +soma);

for

for

switch(seletor_inteiro) { case valor_inteiro_1 : instrues; break; case valor_inteiro_2 : instrues; break; default: instrues; }

switch(letra) { case 'A' : System.out.println("A"); break; case 'B' : System.out.println("B"); break; default: System.out.println("?"); }

switch

Controle de loop break e continue

Palavras Reservadas

Palavras reservadas no Java

Orientao a Objetos

Sistemas

so complexos Muito difcil um nico indivduo entender todo o sistema. Podemos gerenciar a complexidade, no podemos elimin-la. necessrio pensar na evoluo do sistema

Porque OO ??

Modelagem OO
O ser humano conhece o mundo e gerencia sua complexidade atravs de objetos como desenvolvemos nossa cognio. Desenvolvemos o conceito de OBJETO

Exemplos de objetos bola, carro, camisa, luz, casa, cala, msica, conta bancria, poema, etc

Porque OO ??

Abstraes de dados do mundo real; Possuem: Caractersticas(Atributos); Comportamento(Mtodos).


Objeto Pessoa Cachorro Conta Bancaria Carro Caracterstica Comportame s nto Nome, idade Falar, andar Nome, raa Saldo, agncia Cor, marca Latir, correr Creditar, Debitar Acelerar, frear

Objetos

Classe

Classe onde conceituamos o objeto a essncia do objeto Define os atributos e mtodos

Objeto

Objeto uma instncia de uma classe Objetos semelhantes pertencem a mesma classe

Classe e objetos

Pode parecer bvio, mas a dificuldade inicial do paradigma da orientao a objetos justo saber distinguir o que classe e o que objeto. comum o iniciante utilizar, obviamente de forma errada, essas duas palavras como sinnimos.

Objeto

Qualquer entidade que possui caractersticas e


comportamento

Classe

Descreve um tipo de objeto Define atributos e mtodos Define caractersticas do objeto Operaes que o objeto pode realizar

Atributo Mtodo

Considere Uma Toda

um programa para um Banco

entidade importante a conta conta tem:


nmero, nome do cliente, saldo, limite

Toda

conta faz ou o que gostaramos de pedir a conta:


sacar, depositar, imprimir o nome do dono da conta, ver o saldo atual, transferir dinheiro

Criando um tipo

O projeto da conta, isto , a definio da conta, a classe.

O que podemos construir a partir dessa classe, as contas de verdade, so os objetos.

Mas para acessar todos esses dados, precisamos construir uma conta, ou melhor, criar uma instncia da classe.

Criando um tipo

Classes e Objetos em Java

class Conta { int numero; String nome; double saldo; double limite; // .. }

Atributos
caractersticas do objeto

Mtodos
Operaes que o objeto pode realizar

class Conta { // ..atributos void sacar(double quantia){..} boolean depositar(double quantia, Conta conta){..} }

Sintaxe Bsica: class nomeClasse{ //Atributos //Mtodos }


Classe = Atributos + Mtodos 1 classe => 1 arquivo

Classe em Java

Para criar (construir, instanciar) uma Conta, basta usar a palavra chave new ...

Para acessar o objeto preciso referenciar esse objeto. necessrio uma varivel!

Conta minhaConta; minhaConta = new Conta();

Criando e usando um objeto

Agora, podemos acessar o objeto recm criado para alterar seu nome, seu saldo 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.

Criando e usando um objeto

Mtodos

De que maneira uma que uma conta saca dinheiro?

Os mtodos representam o que cada conta faz e como isso feito os seus comportamentos

Mtodos

void sacar(double quantidade) { double novoSaldo = this.saldo - quantidade; this.saldo = novoSaldo; }

void = nenhuma informao de retorno

Quanto voc quer sacar? Esse valor o parmetro do mtodo que est entre parnteses. Essa varivel temporria, ou seja, local.

this mostra que um atributo ( opcional)

Mtodos

Para invocar o mtodo 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?

Mtodos

Retorna No

um valor para o cdigo que o chamou.

mtodo sacar podemos retornar um valor booleano indicando se a operao foi bem sucedida ou no.
boolean saca(double valor) { if (this.saldo < valor) { return false; } else { this.saldo = this.saldo - valor; return true; }

Mtodos com retorno

minhaConta.saldo = 1000; boolean consegui = minhaConta.saca(2000); if(consegui){ System.out.println("Consegui sacar"); }else{ System.out.println("No consegui sacar"); }

Mtodos com retorno

Array (Vetor)

So

objetos que armazenam diversas variveis do mesmo tipo; Cada item em um array chamado de elemento, e cada elemento acessado pela posio numrica.

class ArrayDemo { public static void main(String[] args) { int[] meuArray; // declara um array de inteiros meuArray = new int[10]; // aloca a memria 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;

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]);

...continuao do exemplo

Elemento Elemento Elemento Elemento Elemento Elemento Elemento Elemento Elemento Elemento

na na na na na na na na na na

posio posio posio posio posio posio posio posio posio posio

0: 1: 2: 3: 4: 5: 6: 7: 8: 9:

100 200 300 400 500 600 700 800 900 1000

... A sada desse programa :

programa declarou meuArray com a seguinte linha de cdigo:


int[] meuArray; // declara um array de inteiros

Voc

tambm pode colocar os colchetes aps o nome do array:


float meuArrayDeFloats[]; //forma menos utilizada
Essa forma menos utilizada, pois com os colchetes antes do nome do array fica mais fcil entender de que se trata de um array.

Declarando um array

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;

Array

Criar

Utilizando o operador new;


meuArray = new int[10]; // cria um array de inteiros

As

prximas linhas atribuem valores para cada elemento do array:

meuArray[0] = 100; // inicializa o primeiro elemento meuArray[1] = 200; // inicializa o segundo elemento meuArray[2] = 300; // etc.

Criando, Inicializando e Acessando um Array

Cada

elemento do array acessado por seu ndice numrico:


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]);

Continuao

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};

tamanho do array determinado pelo nmero de valores informados entre {e}.

...ou

Modificadores de Acesso e Encapsulamento

Encapsulamento

refere-se ao isolamento entre as partes do programa.


Private; Protected; Public; Static; Abstract; Final.

Getters:

Mtodo que retorna o atributo get[nome do atributo]. Ex: getIdade(), getSalario().


Setters:

Mtodo que atribui/modifica o valor de um atributo set[nome do atributo] Ex: setIdade(Integer idade), setSalario(Double salario).

Getters e Setters

Herana, Reescrita e Polimordismo

Herana

Conceito; Diferena.

Reescrita

Conceito; Exemplos.

Polimorfismo

Classes Abstratas

No

podem ser instanciadas;


pode utilizar operador new.

No

Criada

para Herana e Polimorfismo; Palavra chave: abstract.


public abstract class Animal { public void roam() { } } public abstract class Canine extends Animal { public void roam() {implementao } }

Classe abstrata

Interface

No

podem ser instanciadas;


pode utilizar operador new.

No

Criada

para Herana e Polimorfismo; Palavra chave: abstract.


public abstract class Animal { public void roam() { } } public abstract class Canine extends Animal { public void roam() {implementao } }

Classe abstrata

como uma classe abstrata, mas s tem:


Mtodos abstratos, pblicos Campos finais estticos, pblicos

public interface Pet { ... } class Dog implements Pet { ... }


Na

Um comportamento compartilhado por vrias classes onde cada classe deve implementar os mtodos da interface Uma alternativa herana mltipla

prtica representa:

Interface

Define um contrato a ser cumprido!


Pblicos abstratos

Todos os mtodos so: Todos os atributos so:


pblicos estticos finais

Classe deve implementar TODOS os mtodos definidos na interface.

Ao implementar uma interface a classe est assinando um contrato definido

Interface

public interface Pet { public abstract void beFriendly(); public abstract void play(); } public class Dog extends Canine implements Pet { public void beFriendly(){ ... } public void play(){ ... } public void roam(){ ... } public void eat(){ ... } }

Interface

Exercitando o que j vimos...

Diagrama UML

Quero saber mais....


Como fao???

No

se esquea - o google seu amigo ;) Participe das listas de discusso, blogs, fruns .. Interaja !!! Existem bons livros na rea. Dicas:
GUJ - www.guj.com.br/ JavaRN - javarn.dev.java.net/

Quero saber mais !!

You might also like