Você está na página 1de 35

Fabiano Souza

Ads - Sem 6

WEB-AULA 1
Tpicos Especiais em Desenvolvimento de Sistemas A SINTAXE JAVA1
String incio = VAMOS COMEAR?;

Isso porque o programa roda sobre uma camada de software chamada JVM Java Virtual Machine (Mquina Virtual Java)!

A JVM prov as formas e meios de o aplicativo conversar com o sistema operacional, gerenciando os aplicativos escritos em Java. Para saber mais sobre a JVM

acesse http://www.infowester.com/jvm.php acessado em 29/09/2010. Um tutorial bsico sobre Orientao a Objetos

Java: http://javafree.uol.com.br/artigo/871497/ OK? Agora vamos conhecer alguns detalhes da linguagem:

PROGRAMAR ou pRoGrAmAr?
A linguagem Java case-sensitive, ou seja, ela diferencia entre letras maisculas e minsculas. Exemplo, exemplo e eXemplO so palavras distintas ao compilador Java. Sendo assim, tome cuidado na hora de escrever seu cdigo! Existem algumas convenes que so adotadas pela linguagem: Convenes: Existem algumas convenes que so adotadas na linguagem: CONSTANTES Constantes no cdigo escritos todo em maisculo. variveis Toda varivel comea com minsculo. Classes Toda Classe comeando com letra maiscula. meuPrograma Palavras compostas so divididas apenas por uma letra maiscula. Comentrios: Para inserir comentrios ao programa Java que sero

ignorados pelo compilador existe duas maneiras: // esta uma linha comentada /* estas so vrias

linhas comentadas */ Boa prtica de programao: Nunca deixe de comentar seu cdigo para facilitar o entendimento deste no futuro. Palavras Reservadas: Existem algumas palavras que so reservadas no Java, ou seja, no podem ser utilizadas no programa: tipos primitivos, instrues, modificadores de acesso, etc.

Tratando-se de linguagem de programao, uma palavra reservada uma palavra utilizada como um identificador por ser reservada para uso da gramtica da linguagem.

Exemplos de palavras reservadas: byte - short - int - long - char - boolean - double - float - public - private - protected - static - abstract - final - strictfp - transient - synchronized - native - void - class - interface - implements extends - if - else - do - default - switch - case - break - continue - assert const - goto - throws - throw - new - catch - try - finally - return - this package - import - instaceof - while - for - volatile super. Obs: Identificadores null, true e false tambm so reservados.

Tipos primitivos: A linguagem Java oferece diversos tipos primitivos de dados com os quais podemos trabalhar:

Definindo uma varivel com um tipo, estamos restringindo esta varivel s operaes descritas a este tipo. Exemplo: No se aplica operaes de multiplicao a um caractere. Operadores bsicos

Ns veremos como utilizar estes operadores na unidade 2 deste material

Modificadores de acesso: A linguagem Java define alguns acesso s modificadores Classes, seus de acesso ou

que permitem ou restringem o

mtodos

atributos. Dentre estes modificadores os principais: public - deixa visvel a classe ou membro para todas as outras classes, subclasses e pacotes do projeto Java. private deixa visvel o atributo apenas para a classe em que este atributo se encontra. protect deixa visvel o atributo para todas as outras classes e subclasses que pertencem ao mesmo pacote.

Desenvolvendo Programas
Classe

Uma classe um tipo definido pelo usurio que contm o molde, a especificao para os objetos. Uma classe constituda por caractersticas e comportamentos. As caractersticas so os seus atributos (campos) e os comportamentos so os mtodos ou operaes que um objeto dessa classe pode realizar). Ex.: Atributos (cdigo, nome, cpf). Ex.: Mtodos (incluir, pesquisar, alterar, excluir); Exemplo: um programa de controle de notas dos alunos muito provavelmente teria uma classe Notas com variveis nota1, nota2, etc.

Quanto aos mtodos, muito provavelmente haveria um mtodo calculaMedia para anlise do desempenho do aluno durante um perodo de tempo.

Um programa Java possui pelo menos uma classe.

Como declarar uma classe Java: <modificador de acesso> class <nomeDaClasse>{} modificador de acesso: public. class: especificando que se trata de uma classe nome: identificador da classe Exemplo: public class MinhaClasse { [dados e mtodos] }

Mtodo Construtor Quando deseja-se que o objeto de uma determinada classe possua um determinado comportamento no momento de sua instanciao, este comportamento dever ser descrito dentro do

mtodo

construtordesta classe.
O mtodo construtor poder exigir argumentos para a instanciao desta classe. O mtodo construtor dever ter o mesmo nome da sua classe. Exemplo:

No exemplo acima, para se criar uma instncia de MinhaClasse deve -se passar dois inteiros como parmetros ao mtodo construtor que, automaticamente efetuar a operao de soma e atribuir o resultado varivel de classe soma. Exemplo de criao do objeto de MinhaClasse: MinhaClasse mc = new MinhaClasse(3, 4);

Observao: podemos criar diversos e construtores com

parmetros

diferentes

comportamentos

diferentes em uma nica classe.

RESUMINDO: se queremos que o nosso objeto receba alguma parmetro ou execute alguma atividade NO MOMENTO DE SUA CRIAO, ns definimos isto dentro do mtodo construtor. Variveis: Uma varivel um espao de memria que serve para armazenar um valor qualquer. Para se criar uma varivel, ns devemos definir um tipo para ela (int, float, etc.) e um nome para ela. A partir da ela poder receber os seus valores. Obs: o valor atribudo varivel dever ser do mesmo tipo o qual ela foi declarada.

Como declarar variveis: <tipo> <nome da varivel> = <valor inicial> ;

Exemplo1:

int meuNumero = 3; // esta varivel do tipo inteiro, de nome meuNmero e iniciada com // valor 3.

Exemplo 2: Int meuNumero; // esta varivel igual a de cima no entanto sem valor inicial atribudo a // ela.

Exemplo 3: String str = new String(); // minha varivel str um objeto da classe String e possui todos os mtodos // definidos nesta classe.

variveis declaradas no corpo da classe so variveis de classe, ou seja, so vistas por

dos os mtodos desta classe. As variveis declaradas dentro dos mtodos sero vistas

enas por este mtodo que as declara.

Observao: Cada instruo Java termina com um ponto-e-vrgula ;

Metodos Os mtodos so parte do corpo de uma classe que definem o comportamento dos objetos desta classe. So o equivalente a funes ou procedimentos de outras linguagens de programao. Quando mtodos. definimos um objeto num programa orientado a objetos,

implementamos todo o comportamento desse objeto em um ou mais

Um mtodo obrigatoriamente deve estarDENTRO de uma classe!

Um mtodo entra em ao no momento em que chamado.

Mtodo main Existe main um mtodo chamado que

(principal)

chamado pelo interpretador Java para dar incio execuo do programa.

A sintaxe para construo de um mtodo a seguinte:

Modificador de acesso: Public, protect ou private.

Tipo de retorno: opcional e definido por um tipo primitivo ou um objeto que ser

retornado pelo mtodo aps a sua execuo. Identificador: o nome dado ao mtodo. Parmetros: opcional e define o nmero e tipo de argumentos esperados pelo mtodo.

Relembrando: As variveis definidas no corpo dos mtodos so variveis locais, elas s existem para os mtodos que as define.

Em Java, voc pode usar especificadores de acesso para proteger tanto as variveis quanto os mtodos de uma classe quando voc os declara. A linguagem Java suporta quatro nveis de acesso distintos para variveis e mtodos membros: private,protected, public e, se deixar sem especificao, package-access (acessveis pelas classes do mesmo pacote)

Aplicao de operadores bsicos: x=3 x+y x-y x*y x/y x%y x>y x >= y x <= y x == y x != y x && y x || y Atribuio do valor 3 ao x Soma x e y Subtrao de x por y Multiplicao de x e y Diviso de x por y Resto da diviso de x por y x maior do que y x maior ou igual a y x menor ou igual a y x igual a y x diferente de y xEy x OU y

Estruturas bsicas de controle


if :

Se a condio for verdadeira, executa-se o bloco de instrues.

if-else:

Se a condio for verdadeira, executa-se o primeiro bloco de instrues, caso seja falso executa o segundo bloco apenas.

for:

Exemplo:

O cdigo acima imprimir na tela os nmeros de 0 a 9 em cada linha.

while:

Exemplo:

O cdigo acima imprimir na tela os nmeros de 0 a 9 em cada linha.

Analogia for e while para um maratonista: for: d trs voltas na pista; while: d voltas na pista at comear a chover;

switch:

A estrutura verifica se o valor da varivel minhaVar igual a alguma das possibilidades, caso positivo executa o cdigo dentro do bloco relacionado e caso s houver possibilidades diferentes executar o bloco de default. Parabns! Voc j conhece o contedo bsico para a criao de programas simples em Java. Existe ainda uma vasta coleo de bibliotecas da linguagem com operaes pr-estabelecidas para suporte programao Desktop, Web ou mvel. Mas isto ser assunto para outra Web Aula!

WEB-AULA 1
A INTERFACE DE DESENVOLVIMENTO NETBEANS1

Vamos Comear

Netbeans uma IDE - Interface de Desenvolvimento Integrado, gratuito e de cdigo aberto, para desenvolvedores de software. Ele oferece as ferramentas necessrias para a criao de aplicaes profissionais para ambientes empresariais, desktop, ou mveis baseadas na plataforma Java, C/C++, JavaScript, Groovy e Ruby.

Download

A IDE pode ser baixada gratuitamente do site oficial: http://netbeans.org/ Para a instalao necessrio ter instalado em sua mquina o JDK (Java Development Kit Kit de desenvolvimento Java) que pode ser encontrado em:http://www.oracle.com/technetwork/java/javase/downlo ads/index.html Obs: Existem outros locais para download da IDE ou de instaladores que j possuem o JDK, mas importante que saibamos se esse local confivel!

Obs: Existem outros locais para download da IDE ou de instaladores que j possuem o JDK, mas importante que saibamos se esse local confivel!

1) Configurando um Projeto
Passo 1: criando um projeto para dispositivo mvel: No IDE, escolha Arquivo > Novo projeto (Ctrl-Shift-N), como mostrado na figura abaixo:

No assistente Novo projeto, expanda a categoria:

Java ME para aplicaes mveis (Nosso Caso) e selecione Aplicativo Mvel, como mostrado na figura abaixo. Em seguida, clique em Prximo

No assistente Novo Aplicativo Mvel, preencha um novo nome para o projeto (aqui eu chamei de MinhaPrimeiraAplicaoMvel), defina o local para o projeto, o diretrio e mantenha selecionado Configurar como projeto principal apenas. Clique em prximo. Observaes: 1. O nome do projeto por conveno no possui espaos. 2. O local define onde sero armazenados todos os arquivos necessrios ao projeto. 3. O Netbeans permite o desenvolvimento simultneo de diversas aplicaes, portanto devemos definir aquela que ser compilada ou executadaautomaticamente pela IDE quando eu requisitar. 4. Criar MIDlet ol apenas um exemplo para quem desejar ver um projeto simples funcionando.

No assistente Seleo da Plataforma Padro:

1. A seleo da plataforma do emulador (a verso mais atualizada a SDK 3.0) 2. A escolha do dispositivo emulado para testes. 3. A configurao de dispositivo: CLDC Configurao de dispositivo Conectado Limitado significa que o dispositivo para o qual estamos desenvolvendo tem restries severas de energia. Os padres 1.0 e 1.1 definem as limitaes de memria para executar o Java, memria para a aplicao, interface com o usurio, poder de processamento e conectividade de rede. 4. O perfil do dispositivo: define as APIs (Interfaces de Programao de Aplicaes) para componentes de entrada e tratamento de eventos de interface com o usurio, armazenamento persistente, interligao em rede, levando em considerao as limitaes de tela e memria dos dispositivos.

Tambm posso baixar umSDK de um fabricante especfico para usar os recursos e testar a funcionalidade do meu software diretamente no emulador deste.

Na prxima janela posso utilizar configuraes alternativas salvas para este projeto como por exemplo um emulador da Nokia.

Clicando em finalizar, o meu projeto est criado!

Clicando com o boto direito sobre o nome do projeto, selecionando o campo Novo, abre-se uma janela com diversas opes:

Entre elas as principais: MIDlet: Cria uma nova classe que estende Midlet que implementa os mtodos startapp() para iniciar a aplicao, pauseapp() para pausar a aplicao sem fechar e destroyapp() para encerrar o aplicativo. Classe Java: Cria uma nova classe geral. MIDlet Visual: permite a voc criar aplicaes mveis usando componentes de arrastar e soltar. Por fim, escolhendo-se a MIDlet abre-se a janela abaixo onde preenche-se um nome para a MIDlet e finaliza-se.

Segue um exemplo bsico de cdigo, utilizando-se a classes Display e Form.

import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.midlet.*; public class eeMidlet extends MIDlet { Display display; Form form; public void startApp() { display = Display.getDisplay(this); form = new Form("Minha Primeira MIDlet"); form.append("Viva o Java!!"); display.setCurrent(form); } public void pauseApp() {

} public void destroyApp(boolean unconditional) { } }

Editado a classe basta agora utilizar os dois atalhos para construir o projeto e executar:

Construir: o Netbeans criar os .class (arquivos compilados em bytecode) e o .jar (arquivo executvel java) Executar: o Netbeans abrir o emulador de dispositivo e colocar a aplicao para rodar. Ao executar temos a sada abaixo!

Informao importante: para descobrir onde esto os arquivos do seu projeto, basta clicar com o boto direito em cima do projeto, selecionar propriedades e ver o path (caminho) na aba geral!

Essa etapa terminou! J podemos construir um pequeno MIDlet no Netbeans.

Web Aula 2
PERSISTNCIA DE DADOS EM J2ME

Persistncia com RMS

O RMS Record Management System oferece um mecanismo para que as MIDlets possam armazenar dados persistentemente e depois recuper-los. O armazenamento de dados (banco de dados) chamado de Record Store. O Record Store criado pelo MIDlet e utiliza nomes para identificar cada registro. Caso o MIDlet seja removido do dispositivo, os Record Stores so removidos tambm. Fonte : http://www.guj.com.br/articles/39 Cada Record Store dependente de plataforma, armazenado em memria no voltil, que no fica diretamente exposta aos MIDlets. As classes RMS devero fazer chamadas especficas ao gerenciador de dados padro do dispositivo para poder acessar os dados.

Retirado de http://www.ibm.com/developerworks/library/wi-rms/

Para perfis CLDC (Connected Limited Device Configuration) no existe a implementao de banco de dados baseados em tabelas, colunas, linhas gerenciadas por um SGBD (Sistema Gerenciador de Banco de Dados). Para resolver isso, aplicao deve converter os dados para array de bytes para poderem ser armazenados. Para ler os dados o processo inverso deve ser feito.
Cada registro identificado por um Record ID (identificador nico de gravao) que um inteiro.

Cada registro formado por um array de bytes e um inteiro!

Cada Record store pode ser visto como uma coleo de gravaes que permanecem persistentes atravs de mltiplas chamadas da MIDlet. A plataforma do dispositivo fica responsvel por manter a integridade os arquivos das MIDlets durante o uso normal do dispositivo, incluindo desligamentos, troca de baterias, etc

Principais Mtodos do Record Store: openrecordstore(String nome, boolean criarCasoNaoExista): abre ou cria um Record Store. A funo tenta abrir o Record Store de nome informado no primeiro parmetro. Caso este no exista ele verifica o segundo parmetro, se for true cria o Record Store, se for false s permite abri-lo e no cri-lo. Exemplo:

1. 2.

try { rs = RecordStore.openRecordStore("Agenda", true);

3. 4.

} catch (RecordStoreException ex) { ex.printStackTrace();

Caso o registro Agenda exista, a o mtodo abrir o registro, caso no exista, criar um novo registro Agenda. closerecordstore(): fecha um Record Store que est aberto. Exemplo: rs.closeRecordStore(); Com esta linha, o registro instanciado em RS fechado deleterecordstore(String nomeDoRecordStore): apaga o Record Store com o nome informado. Para que um Record Store possa ser apagado necessrio este estar fechado. Exemplo: RecordStore.deleteRecordStore(arquivo); int addrecord(byte [] dados, int offset, int numbytes): adiciona um registro. byte [] dados: so os dados que deseja armazenar. int offset: o primeiro ndice do array de bytes que deve ser lido. int numbytes: tamanho do array de bytes do dado que se quer armazenar. Exemplo: int id = rs.addRecord(dados, 0, dados.length); Todos os bytes dentro do array dados sero armazenados, comeando na posio 0 do array at o tamanho total dele e retorna o id do registro onde os dados foram colocados. setrecord(int id, byte [] novosdados, int offset, int numbytes): faz a atualizao de um registro.

int id: identificador do registro que se deseja atualizar. byte [] dados: so os dados que deseja armazenar. int offset: o primeiro ndice do array de bytes que deve ser lido. int numbytes: tamanho do array de bytes do dado que se quer armazenar. Exemplo: setRecord(10 , newData, 0, newData.length) A nova informao em newData ser armazenada no arquivo com identificador 10, iniciando na posio 0 at o final dos bytes de newData.. delederecord(int id): apaga o registro informado pelo parmetro id. Exemplo: deleteRecord(12) Apaga o registro com id 12 byte [] getrecord(int id): recupera um determinado registro. O mtodo devolve o dado, armazenado no array de bytes, referente ao id passado por parmetro. Exemplo: String aux = getRecord(i); O mtodo getRecord retorna um String do endereo i int getnumrecords(): obtm a quantidade de registros que tem em um Record Store. Exemplo: rs.getNumRecords() O total de registros retornado nesse mtodo.

Filtragem de registros A classe MIDlet implementa a interface RecordFilter, definindo filtros que examinam um registro para ver se ele atende os critrios definidos pelaaplicao. A aplicao deve implementar o mtodo match() de RecordFilter: Public boolean matches(byte[] candidate) { String s1 = new String(candidate); If (s1.equals("XX")) Returns true; Else Returns false; }

Onde candidate o Record analisado e XX o String que serve de base para a filtragem! Estes so os principais mtodos RMS utilizados no gerenciamento de informaes persistentes em dispositivos mveis. Estas tcnicas podem ser teis em um jogo de celular para armazenar o status do jogo, records, perfis de usurios, etc.

Um exemplo MIDlet para agenda utilizando o RMS para persistncia dos dados: http://www.guj.com.br/articles/39
Agora colocar a mo na massa! ISSO!