Anda di halaman 1dari 193

Curso Java Bsico

Instrutora: Katia Cristina Lage dos Santos Regional Belo Horizonte

19/11/2007 a 30/11/2007

Curso Java Bsico


Ttulo da Apresentao

Viso geral
O nome Java usado para referir-se : uma linguagem de programao orientada a objetos; uma coleo de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicaes multiplataforma; um ambiente de execuo presente em navegadores, mainframes, sistemas operacionais, celulares, palmtops, cartes inteligentes, eletrodomsticos Java foi lanada pela Sun Microsystems em 1995 write once, run everywhere; programe uma nica vez, execute em qualquer lugar; o projeto controlado pela Sun (http://java.sun.com/) e pela comunidade de usurios JPC (Java Community Process http://jcp.org/en/home/index).

Curso Java Bsico


Ttulo da Apresentao

Viso geral
Um programa escrito para a plataforma Java necessita de dois componentes para ser executado: a mquina virtual Java (Java Virtual Machine - JVM); um conjunto de bibliotecas de classe que disponibilizam um srie de servios para esse programa. O pacote de software que contm a mquina virtual e esta biblioteca de classes conhecido como JRE (Java Runtime Environment).

JRE
JVM

Bibliotecas de Classe

Curso Java Bsico


Mquina Virtual
A mquina virtual Java, ou simplesmente JVM: um dos principais componentes da plataforma Java; permite que o mesmo cdigo possa ser executado em vrias plataformas sem a necessidade de recompilao. Mas COMO? a JVM emula uma mquina real possuindo um conjunto de instrues prprio e atua em reas de gerenciamento de memria; a JVM possui uma especificao que pode ser implementada nas diversas arquiteturas. Essa especificao visa no atender a nenhum tipo de tecnologia em especfico, seja de hardware ou de sistema operacional; os ambientes de execuo e de desenvolvimento so fornecidos por fabricantes de hadware e software (MacOS, Linux, etc).
Ttulo da Apresentao

Curso Java Bsico


Mquina Virtual
A mquina virtual no trabalha diretamente com a linguagem de programao Java, mas sim com o arquivo de formato class. Esse tipo de arquivo contm os bytecodes, que so as instrues para a mquina virtual e uma tabela de smbolos.
Ambiente de Desenvolvimento
CDIGO JAVA COMPILADOR

Distribuio
VM Windows SO Windows

Byte Code Java

VM Linux SO Linux

VM Celular SO Celular

Ambiente de Execuo Ttulo da Apresentao

Curso Java Bsico


Mquina Virtual
O cdigo Java compilado, gerando o conjunto de instrues chamado de byte-code; Esse byte-code aplicado Mquina Virtual Java (JVM) que se encarrega de interpretar os comandos para o sistema operacional onde o programa est rodando. Ou seja, a mquina virtual traduz as instrues do cdigo Java para instrues vlidas no sistema operacional em que est rodando; Esse byte-code poder ento ser interpretado por qualquer mquina virtual Java, rodando em Linux, Windows, Palm OS, Solaris ou qualquer outro sistema operacional que possua uma mquina virtual Java implementada.

Compile once, run anywhere.


Ttulo da Apresentao

Curso Java Bsico


Mquina Virtual
Um programa Java s executado caso o seu byte-code passe pela verificao de segurana da JVM, que consiste em: o programa foi escrito utilizando a sintaxe e semntica da linguagem; no existem violaes de reas restritas de memria no cdigo; o cdigo no gera Stack Overflow; os tipos de parmetros dos mtodos so corretos; no existe nenhuma converso ilegal entre dados do programa o acesso a objetos est corretamente declarado. Caso alguma das condies acima no seja satisfeita, a mquina virtual Java causar um erro de execuo (runtime error). A JVM no permite que um programa Java acesse recursos de hardware diretamente, protegendo o computador de operaes perigosas.
Ttulo da Apresentao

Curso Java Bsico


Mquina Virtual
Uma JVM possui definies concretas para a implementao dos seguintes itens: conjunto de instrues (equivalentes s instrues da CPU), conjunto de registradores, formato padro de classes, pilha de memria, pilha de objetos coletados pelo garbage-collector e rea de memria. Compilador JIT (just-in-time) desde a verso 1.2 da JRE, a implementao da Sun da JVM inclui um compilador just-in-time (JIT); com este compilador todo o bytecode de um programa transformado em instrues nativas e carregado na mquina virtual em uma s operao, permitindo um ganho de desempenho muito grande em comparao com a implementao anterior, onde as instrues em bytecode eram interpretadas uma por vez.
Ttulo da Apresentao

Curso Java Bsico


Bibliotecas de Classes
Na maioria dos sistemas operacionais modernos, um corpo formado por cdigo reusvel organizado e disponibilizado para simplificar o trabalho do programador; Este cdigo encontra-se, normalmente, na forma de bibliotecas dinmicas que a aplicao utiliza durante a sua execuo. Como a plataforma Java no dependente de qualquer sistema operacional, as aplicaes no podem depender das bibliotecas destes sistemas. Por isso, a plataforma Java disponibiliza um grande conjunto padronizado de bibliotecas de classe, que contm praticamente o mesmo nmero de funes encontradas nos sistemas operacionais modernos.

Ttulo da Apresentao

Curso Java Bsico


Bibliotecas de Classes
Uma classe de biblioteca Java serve a trs propsitos dentro da plataforma Java: disponibilizam ao programador um conjunto de funes bem conhecidas que realizam tarefas comuns, como a manuteno de listas de elementos ou manipulao de strings; contm uma interface para tarefas que dependem do hardware e do sistema operacional (exemplo, acesso a rede e manipulao de arquivos); se alguma plataforma no suportar alguma funo que uma aplicao Java necessita, as bibliotecas implementam esta funcionalidade usando os recursos disponveis, ou disponibilizam um meio consistente para que a aplicao verifique a presena de determinada funcionalidade.
Ttulo da Apresentao

Curso Java Bsico


Gerenciamento de Memria
Durante a execuo de um programa de computador, ocorre a alocao e liberao dinmica de memria RAM. Dados so escritos e lidos da memria do computador satisfazendo os requisitos de cada programa. Em linguagens tradicionais como Pascal, Basic e C/C++, o programador responsvel por controlar essa alocao, impedindo o estouro de memria (stack overflow) e outros problemas, como o acesso indevido a reas reservadas de memria. Para facilitar a vida dos programadores, e evitar os erros comuns associados alocao de memria, a linguagem Java introduziu o conceito de garbage-collection.

Ttulo da Apresentao

Curso Java Bsico


Gerenciamento de Memria
Garbage-collection um mecanismo de controle automtico de alocao e liberao de memria. Quando uma varivel declarada em um cdigo de computador, a JVM cria um ponteiro para uma rea de memria equivalente ao tamanho do tipo de dado utilizado por essa varivel. public class Pessoa{ int intIdade; String strNome (...) public static void main(){ Pessoa pessoa1 = new Pessoa(); } } MEMRIA
pessoa1

Pessoa

Ttulo da Apresentao

Curso Java Bsico


Gerenciamento de Memria
Garbage-collection Quando essa varivel associada a outra regio de memria, a JVM coloca o espao alocado anteriormente em uma pilha de objetos em desuso. MEMRIA (...) pessoa1 public static void main(){ Pessoa pessoa1 = new Pessoa(); Pessoa pessoa2 = new Pessoa(); Pessoa pessoa1 = pessoa2; pessoa2 } Caso o computador fique com pouca memria disponvel, a JVM remove objetos dessa pilha, permitindo que esse espao de memria seja re-alocado.
Ttulo da Apresentao

Curso Java Bsico


Gerenciamento de Memria
O processo de garbage-collection ocorre automaticamente durante a execuo de um programa Java. possvel sugerir ao JVM que execute a coleta de lixo; no entanto no haver garantias de que todos os objetos no utilizados sero realmente removidos da memria; chamadas possveis:Runtime.getRuntime() ou System.gc(); O programador no precisa se preocupar com aritmtica de ponteiros (grande dificuldade em linguagens como C e Pascal.

Exemplo 1
Ttulo da Apresentao

Curso Java Bsico


Plataforma Java
A plataforma Java se divide http://www.javafree.org/wiki/Java Java Standard Edition (JavaSE); Java Mobile Edition (JavaME); Java Enterprise Edition (JavaEE). em trs grandes edies.

Curso Java Bsico


Plataforma Java
Java Standard Edition (JavaSE) a tecnologia Java para computadores pessoais, notebooks e arquiteturas com poder de processamento e memria considerveis. Vrias APIs acompanham esta verso e tantas outras podem ser baixadas opcionalmente no site da Sun. com elas que a maioria das aplicaes so construdas e executadas. O J2SE possui duas divises: Java Development Kit (JDK) ou Standard Development Kit (SDK): um conjunto para desenvolvimento em Java: compilador (javac), depurador, gerador de documentao (javadoc), empacotador de componentes (jar); Java Runtime Edition (JRE): uma verso mais leve da JDK pois preparada para o ambiente de execuo. Ttulo da Apresentao

Curso Java Bsico


Plataforma Java
Java Mobile Edition (JavaME) a tecnologia Java para dispositivos mveis com limitaes de memria ou processamento. Possui APIs bem simples e leves para economizar espao, memria e processamento. So utilizadas para sistemas em celulares, palm tops, pocket pcs, smartphones, javacards e demais dispositivos. O J2ME se divide em dois grupos de bibliotecas. dividida em dois grupos: Connected Limited Device Configuration (CLDC): para celulares e smartphones, que so mais limitados; Connected Device Configuration (CDC): para Palmtops e Pocket pcs e alguns dispositvos mais poderosos.
Ttulo da Apresentao

Curso Java Bsico


Plataforma Java
Java Enterprise Edition (JavaEE) a tecnologia Java para aplicaes corporativas que podem estar na internet ou no. Possui um grande nmero de APIs onde a segurana a principal preocupao. ideal para a construo de servidores de aplicao, integrao de sistemas ou distribuio de servios para terceiros. A plataforma Java EE no um produto, mas sim de uma especificao definida pela Sun. A Java EE simplifica as aplicaes empresariais e multi-camadas, baseada em componentes padronizados, modulares e reusveis, e oferece um conjunto completo de servios para estes componentes.
Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
O Eclipse um ambiente de desenvolvimento integrado (IDE Integrated Development Environment) Contm um conjunto de funcionalidades embutidas, cuja finalidade prover um modo mais fcil e interativo de construir e manipular seus programas. Dentre essas funcionalidades, destacam-se: um editor de texto com facilidades especialmente desenhadas para a linguagem; um compilador e um interpretador, interpretadas, dentre elas o Java; para muitas linguagens

um editor grfico, com facilidades para criao e edio da interface grfica do programa a ser desenvolvido;
Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
uma ferramenta, denominada debugger, que possibilita um monitoramento mais elegante do funcionamento do seu programa, facilitando a deteco e remoo dos erros de lgica do cdigo. Alm das funcionalidades inerentes ao conceito de IDE, importante ressaltar que o Eclipse tido como meta-ambiente de desenvolvimento de software, um ambiente para construo de ambientes. Em outras palavras, um framework para integrao de diferentes tipos de aplicao.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Funcionalidades do ambiente Eclipse ao iniciar o Eclipse pela primeira vez, ser solicitada a indicao de um diretrio onde ser armazenado o cdigo a ser desenvolvido workspace; possvel existir mais de um workspace na mesma mdia de armazenamento. Entretanto, cada workspace poder ser utilizado por somente uma instncia do Eclipse em execuo no momento. na janela de definio do workspace possvel defin-lo como o diretrio padro (default) onde os projetos a serem desenvolvidos por aquela instncia do Eclipse sero armazenados.

Curso Java Bsico


O ambiente Eclipse
Funcionalidades do ambiente Eclipse aps a definio do workspace, ser exibida uma janela de boasvindas(welcome). aps fech-la, ser exibido o layout do ambiente sob a denominada perspectiva Java Perspective;

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Funcionalidades do ambiente Eclipse o Eclipse destaca-se dentre as demais IDEs, pelo fato de possuir a funcionalidade de customizao do ambiente de trabalho. trata-se de um programa open-source, originalmente escrito para ser uma IDE verstil e possvel de ser adaptada para qualquer propsito relacionado ao desenvolvimento de software, desde a produo de plug-ins para ele mesmo e/ou outros programas, passando pela integrao de ferramentas ao ambiente Eclipse e culminando no desenvolvimento do software final em si. Esta adaptabilidade j comea pela esttica do ambiente.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Package Explorer (1) um visualizador simples e elegante dos seus projetos; um projeto representa toda a estrutura do seu programa, armazenando os arquivos-fonte (.java), os bytecodes (.class), as configuraes gerais do ambiente para o projeto, eventuais arquivos de backup e outros arquivos inerentes ao escopo do programa (por exemplo, quaisquer possveis imagens relacionadas ao projeto); a navegao semelhante do Windows Explorer, bastante intuitiva e respeitando a hierarquia do projeto, com a qual ficaremos mais familiarizados com a prtica, ao longo do desenvolvimento do projeto.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Editor de Textos (2) o editor de textos do Eclipse denota as palavras-chave de Java em letras destacadas para facilitar a leitura do cdigo; esta uma das funcionalidades mais utilizadas nesta ferramenta, possuindo um nmero expressivo de facilidades, ilustradas nas situaes seguintes.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Editor de Textos (2) Funo Autocompletar Suponha que estejamos escrevendo o mtodo transferir de uma classe Conta este mtodo composto de uma chamada ao mtodo debitar e outra chamada ao mtodo creditar, como podemos na definio abaixo:

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Editor de Textos (2) durante a implementao deste mtodo, quando digitarmos o nome de alguma varivel que denote um objeto e o ponto para chamada de mtodo, o editor de textos do Eclipse nos mostrar uma janela com uma relao completa de todos os mtodos e atributos que este objeto pode acessar em seu contexto, e a medida em que escrevermos as letras, ele filtrar tudo o que puder ir sendo descartado, como ilustra a imagem abaixo.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Editor de Textos (2) Deteco de erros de sintaxe uma grande funcionalidade das principais IDEs atuais a deteco de erros de compilao em tempo de implementao; o editor de textos do Eclipse, ao perceber um erro de sintaxe (e at alguns poucos erros de lgica), imediatamente destaca o trecho que ele supe estar errado, alm de indicar as possveis causas do erro e sugerir algumas solues; como podemos ver na figura seguinte, ele sublinha o trecho e errado e marca as linhas que apresentam problema de sintaxe no lado direito da janela:

Curso Java Bsico


O ambiente Eclipse

Curso Java Bsico


O ambiente Eclipse
Editor de Textos (2) Indicao de Escopo de Blocos de Cdigo O editor tambm separa os trechos de cdigo contido entre chaves, no lado esquerdo da janela, em azul. Podemos clicar nos tringulos azuis para exibir/esconder trechos entre chaves, facilitando a visualizao do arquivo e sua navegao. Por ltimo, o editor do eclipse nos poupa bastante tempo de pesquisa em documentao de classes nas APIs das mesmas com um recurso muito simples e interessante. Ao mantermos o mouse por cima de nomes de classe ou mtodos, uma caixa de texto aparecer na tela com toda a documentao da classe / mtodo em questo. A figura seguinte exemplifica essa funcionalidade.
Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Console (3) o Eclipse oferece um terminal de console para a entrada de dados do teclado pela stream de entrada padro e a sada de dados que o programa escreve na stream de sada padro. Outline (4) a janela Outline funciona semelhantemente ao Package Explorer, sendo que voltada para a estrutura interna do seu arquivo .java frequentemente a sua classe; existem cones diferentes para cada parte do arquivo.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando um projeto primeiramente clique em File > New > Project; um wizard de criao de projetos aparecer;

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando um projeto em seguida, selecione a opo Java > Java Project; clique em Next. A seguinte tela ir aparecer:

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando um projeto digite um nome para o seu projeto; se voc quiser criar o projeto em um diretrio diferente do workspace: marque a opo "Create project at external location"; especifique o diretrio onde o projeto ser ser armazenado; marque tambm a opo Create separate source and output folders na caixa Project Layout. Essa opo permite que voc no misture os arquivos que contm o cdigo-fonte(source) com os arquivos gerados pelo compilador(output ou sada) , criando pastas diferentes para cada um desses tipos de arquivos; clique em Next.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando um projeto agora voc ter a oportunidade de escolher os diretrios do source e de sada; para deixar os valores default clique em Finish, ou ento altere os valores de acordo com sua convenincia. possvelmente aparecer uma janela pedindo para confirmar uma mudana de perspectiva. Se aparecer, clique em "Yes".

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando uma classe agora, seu projeto j est criado, mas ainda no possui nenhuma classe; para criar uma classe, clique em File > New > Class a seguinte tela aparecer:

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando uma classe a parte superior da janela d algumas indicaes sobre o preenchimento - como campos obrigatrios, a sugesto de usar inicial maiscula para nomes de classes, etc; em "Source Folder", determine de que projeto sua classe far parte e a localizao do arquivo .java; selecione o nome da sua classe no campo "Name"; opcionalmente voc pode pr-determinar os modificadores de acesso da sua classe e deixar prontos os esqueletos de alguns mtodos, no campo Modifiers e nos campos abaixo de Which method stubs would you like to create? escolha "public static void main(String[] args)" o mtodo principal j ser defido na classe;
Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Criando uma classe clique em Finish. sua classe ser criada e aparecer como a imagem seguinte.

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Utilizao de bibliotecas para adicionar uma biblioteca externa ao projeto: clique com o boto direito sobre a pasta do projeto no Package Explorer; selecione a opo Properties. a seguinte janela surgir:

Ttulo da Apresentao

Curso Java Bsico


O ambiente Eclipse
Utilizao de bibliotecas no menu da esquerda, selecione a opo Java Build Path (como est selecionado na figura). A parte da direita mudar para mostrar o que est na figura; selecione a aba Libraries para visualizar as bibliotecas utilizadas pelo seu projeto. Provavelmente voc poder ver a biblioteca JRE System Library, que a biblioteca padro que vem com o JDK instalado na sua mquina, e que praticamente todo projeto Java deve utilizar; para adicionar mais bibliotecas, clique no boto Add External JARs (Java ARchives ou, extra-oficialmente, Java Application Resources, o ltimo menos usado); por ltimo, selecione o caminho da biblioteca a ser adicionada e clique em Open.

Exemplo 2 Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Todos os programas Java possuem quatro elementos bsicos: Pacotes; Classes; Mtodos; Variveis.

Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Pacotes as classes que compem o ncleo de funcionalidades Java esto organizadas em pacotes; um package Java um mecanismo para agrupar classes de finalidades afins ou de uma mesma aplicao; alm de facilitar a organizao conceitual das classes, o mecanismo de pacotes permite localizar cada classe necessria durante a execuo da aplicao; no entanto, a principal funcionalidade de um pacote Java evitar a exploso do espao de nome, ou seja, classes com o mesmo nome em pacotes diferentes podem ser diferenciadas pelo nome completo, pacote.classe.

Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Entre os principais pacotes oferecidos como parte do ncleo Java esto: java.lang; java.util; java.io; java.net. Pacotes contm classes e duas outras entidades de Java que veremos posteriormente: excees e interfaces; Um package uma coleo de classes e interfaces relacionadas fornecendo proteo de acesso e gerenciamento de nomes de diretrios. Usamos a declarao import para acessar essas classes. Se a declarao import no for utilizada e desejarmos utilizar alguma classe externa, ser necessrio colocar o caminho da classe a cada acesso.
Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Exemplo: import java.lang.*; O asterisco no final diz ao compilador para importar todas as classes do pacote java.lang. Esse um dos vrios pacotes includos na API. O compilador Java define implicitamente um pacote para as classes no diretrio atual e o importa implicitamente. Esse o motivo porque no precisamos colocar explicitamente as classes que escrevemos em um pacote. Para colocarmos uma classe em um pacote, deve-se inserir a diretiva package com o nome do pacote no incio da classe.
Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Estrutura de um cdigo Java
Como todas linguagem de programao, Java possui um formato bsico para a escrita de cdigos. Tal formato demonstrado abaixo:

1 // Duas barras significam comentrio 2 /* comentrios tambm podem seguir o formato de C++ */ 3 4 public class NomeDoPrograma 5 { 6 // O mtodo main indica que o cdigo Java pode ser executado 7 static public void main(String[] args) 8 { 9 // aqui viro os comandos 10 } 11 }
Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Compreendendo o cdigo Java linhas 1 e 2: representam comentrios. Um comentrio pode conter qualquer informao relevante ao comportamento do programa, autor, verso, etc; linha 3: est em branco, pois Java permite linhas em branco entre os comandos; linha 4: a declarao do "nome do programa", que case-sensitive (existe diferena entre maisculas e minsculas). O arquivo que contm o cdigo Java deve ser salvo com o mesmo nome que aparece aps a declarao public class e mais a extenso .java (o exemplo acima deveria ser salvo como NomeDoPrograma.java).

Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Compreendendo o cdigo Java linhas 5 e 8: a abertura de chave { indica incio de bloco; linha 8: essa linha indica Java Virtual Machine que o programa ser executado. Os demais programas no contero o mtodo main(); Quando um programa Java executado, o interpretador da JVM executa os comandos que estiverem dentro do bloco indicado pelo mtodo "static public void main(String)". linha 9: aqui seria escrito o cdigo propriamente dito; linhas 10 e 11: o fechamento de chave } indica fim de bloco.

Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Compilando e Executando a seguir, apresentaremos um exemplo de criao, compilao e execuo de um programa Java, sem o uso de uma IDE, utilizando apenas os programas da JSDK. 1- Crie o arquivo HelloWorld.java em um diretrio qualquer com o seguinte contedo: public class HelloWorld { public static void main (String args[]) { System.out.println("Hello World!"); } } Configurar variveis de ambiente referncia artigo http://www.guj.com.br/java.tutorial.artigo.12.1.guj

Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Compilando e Executando 2 - Chame o compilador Java para este arquivo: $ javac HelloWorld.Java

3- Seu diretrio deve ter recebido um novo arquivo aps essa compilao: HelloWorld.class

Ttulo da Apresentao

Curso Java Bsico


Caractersticas da linguagem
Compilando e Executando 4 - Chame o interpretador Java para este arquivo (omita a extenso .class do arquivo): $ j ava HelloWorld

5- Observe o resultado na tela: Hello World!

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comentrios Qualquer informao especificada entre os caracteres de comentrio ser ignorada pelo compilador; Os comentrios em Java podem ser por linha ou em bloco: por linha: // isto um comentrio e inicia com duas barras. int valor; // e pode estar no final da linha em bloco: /* */ Comentrio em bloco Aceita mltiplas linhas No utilize comentrios aninhados
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comentrios As regras que tratam dos comentrios em Java so: comentrios no podem ser aninhados; no podem ocorrer dentro de strings ou literais; as notaes /* e */ no tem significado dentro dos comentrios //; a notao // no tem significado dentro dos comentrios /* e /**.

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comentrios javadoc tipo especial de comentrio, utilizado para gerar documentao da API do cdigo Java.

/** isto um comentrio para gerao de javadoc */

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Identificadores Identificadores so usados para determinar nomes de variveis, atributos de classe ou de instncia, parmetros e mtodos; Os identificadores em Java iniciam com: uma letra; um sublinhado (_ ); ou um sinal de dlar "$"; Podem possuir nmeros aps o primeiro caractere da palavra; Pela premissa de ser case-sensitive existe uma diferenciao entre letras maisculas e minsculas.

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Convenes para Identificadores
na linguagem Java utilizada a seguinte conveno para formao de identificadores: constantes com todas as letras em maisculo: CONSTANTE variveis e mtodos comeam com letra minscula: varivel classes e interfaces comeam com letra maiscula: Classe se o identificador for um nome composto por mais de uma palavra, cada nova palavra comea com letra maiscula: exemplo: varivelComNomeComposto

Curso Java Bsico


Estrutura da linguagem
Tipos Primitivos no Java, todos os objetos necessitam ter seu tipo especificado. existem 8 tipos primitivos em Java; seis deles so numricos, um o caractere e o outro o booleano; os tipos Array e String no so tipos primitivos, so Classes e sero tratados a seguir.

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Tipos Numricos Inteiros os tipos inteiros guardam valores numricos sem parte fracionria.
Tipo int short byte long Tamanho 4 bytes 2 bytes 1 byte 8 bytes Faixa de Valores -2.147.483.648 at 2.147.483.647 -32.768 at 32.767 -128 at 127 -9.223.372.036.854.775.808 at 9.223.373.036.854.775.807

na maioria das ocasies, o tipo int suficiente; no se pode esquecer que como Java portvel, esses valores so os mesmos para qualquer plataforma de hardware.
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Tipos Numricos de Ponto Flutuante os tipos primitivos que representam valores numricos com ponto flutuante:
Tipo float Tamanho 4 bytes Faixa de Valores +/- 3.40282347E+38F (aproximandamente 7 dgitos significativos) +/- 1.79769313486231570E+308 (15 dgitos significativos)

double

8 bytes

normalmente utilizamos o double na maioria das situaes onde necessria a representao desse tipo de nmero, pois sua preciso maior; nmeros do tipo float aparecem com um sufixo F. (3.04F). se o nmero aparecer sem o F, ele considerado double. da Apresentao Ttulo

Curso Java Bsico


Estrutura da linguagem
Tipo caractere O tipo char serve para representar apenas uma letra ou nmero.
Tipo char Tamanho 2 bytes Faixa de Valores 0 at 65536

Esse tipo serve para representar caracteres usando a tabela Unicode; Dessa tabela faz parte a tabela ASCII e mais alguns caracteres especiais. O tipo char sempre representado por aspas simples (h). Caracteres representados por aspas duplas (h) na verdade so Strings.

Curso Java Bsico


Estrutura da linguagem
Tipo booleano o tipo booleano pode assumir apenas dois valores, true ou false. Esse tipo usado apenas para testes lgicos.

Tipo boolean

Tamanho 1 bit

Faixa de Valores true ou false

Curso Java Bsico


Estrutura da linguagem
Valores Padro abaixo segue uma lista com os valores padres de todos os tipos primitivos, sendo que no necessrio inicializar as variveis com esses valores, a mquina virtual cuidar desse trabalho.
Tipo byte short int long float double boolean char Valor 0 0 0 0 0.0 0.0 false \u0000

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
String String uma classe que manipula cadeias de caracteres; includa no pacote java.util; possui mtodos para essas manipulaes; a representao de um String feita por um conjunto de caracteres entre aspas. Exemplo: String str = Isto uma String do Java; String str = ; //uma string vazia Concatenao de Strings String uniao = use o sinal de + para + concatenar Strings;

Exemplo 3 Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Mtodos da Classe java.lang.String a classe java.lang.String possui muitos mtodos; abaixo apresentamos os mais significativos: charAt(int indice) retorna o caractere na posio especificada int compareTo(String outraString) retorna um valor negativo se a string vier antes de outraString na ordem do dicionrio, um valor positivo se outraString vier antes e 0 (zero) caso forem iguais boolean endsWith(String sufixo) retorna true se a string terminar com sufixo
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Mtodos da Classe java.lang.String boolean equals(String outra) retorna true se a string for igual outra boolean equalsIgnoreCase(String outra) retorna true se a string for igual outra, ignorando maisculas e minsculas String toLowerCase() retorna uma nova string convertendo maisculas para minsculas

Curso Java Bsico


Estrutura da linguagem
Mtodos da Classe java.lang.String String toUpperCase() retorna uma nova string convertendo minsculas para maisculas String trim() elimina espaos iniciais e finais

Exemplos 4 e 5
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
StringTokenizer Quando voc l uma frase, sua mente divide a frase em palavras individuais ou tokens... Deitel&Deitel Tokens so separados entre si por delimitadores (espaos em branco, tabulao, nova linha e retorno de carro); Pertence ao pacote java.util;

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
StringTokenizer H trs construtores possveis: o construtor que aceita um argumento String, utilizar o string delimitador padro \n\t\r; aquele que aceita dois argumentos String: o segundo String o String delimitador; a verso que aceita trs argumentos, o segundo String o string delimitador e o terceiro argumento (um boolean) determina se os delimitadores tambm so retornados como tokens (somente se o argumento for true).

Exemplo 6
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Array um array tipo de dados utilizado para armazenar um grupo de informaes semelhantes; arrays so tipos indexados de dados que permitem a representao de agrupamento de dados como vetores e matrizes; todos os itens de um array devem ser do mesmo tipo em tempo de compilao. o cdigo para declarar o array : int nums[10];

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Array arrays so inicializados com o uso do operador new; pense em cada elemento do array como um objeto distinto; o tipo mais simples de array um array de dimenso de um tipo primitivo, por exemplo, um int.; o cdigo para criar e inicializar o array : int nums[ ] = new int [5]; os colchetes depois do identificador nums, dizem ao compilador que nums um array; o operador new instancia o array e chama o construtor para cada elemento; o construtor do tipo int e pode conter cinco elementos.
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Array arrays podem ser multimensionais; durante a instanciao, um array multidimensional deve ter pelo menos uma de suas dimenses especificadas; a seguir, exemplos de como criar um array bidimensional: int [ ][ ] numlist = new int [2][]; int lista[ ][ ] = new int[5][5];

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Array arrays podem ser inicializados na hora da criao, colocando-se os valores inicias desejados entre chaves {}; no necessrio especificar o tamanho Java ir inicializar o array com o nmero de elementos especificados. Exemplo: int nums[ ] = {1, 2, 3, 4, 5}; int nums[ ][ ] = {(1,1), (2,2), (3,3), (4,4), (5,5)};

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Array os arrays podem ser indexados por um valor byte, short, int ou char; no se pode indexar arrays com um valor long, ponto flutuante ou booleano; se precisar usar um desses tipos deve-se fazer uma converso explcita; os arrays so indexados de zero at o comprimento do array menos um.

Exemplo 7
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Operador de Atribuio a atribuio feita atravs do operador =: <identificador> = <valor>; Exemplos: (na declarao da varivel) float umFloat = 0.5; char caracter = i; Exemplos: (aps declarao da varivel) idade = 18; existe = true;

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Operadores Aritmticos operadores aritmticos so aqueles que efetuam operaes aritmticas em um ou mais tipos primitivos.

Operador + * / %

Nome Adio Subtrao Multiplicao Diviso Mdulo

Exemplo 23+29 29-23 0.5 * salario 100/42 57%5

Exemplo 8

Curso Java Bsico


Estrutura da linguagem
Operadores Relacionais os operadores relacionais utilizados para formar expresses condicionais, utilizados em testes e condies de entrada em um fluxo do programa.

Operador == != < > >= <=

Nome Igual Diferente Menor Maior Maior ou igual Menor ou igual

Exemplo 10 == 10 3 != 2 4 < 10 10 > 6 3 >= 3 5 <= 6

Exemplo 9
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Operadores Lgicos os operadores lgicos, assim como os relacionais, so utilizados para formar expresses condicionais, utilizados em testes e condies de entrada em um fluxo do programa.

Operador && || ! ^ ?:

Nome AND OR NOT XOR Condicional

Exemplo (0 < 2) && ( 10 > 5) ( 10 >11 ) || (10 < 12 ) !( 1= = 4 ) ( 1!= 0) ^ ( 3< 2 ) 3>2? (comando): (comando)

Exemplo 10
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Atribuio Composta para facilitar a programao, Java oferece um tipo de atribuio chamada atribuio composta, que pode ser formada com operadores aritmticos ou lgicos; Exemplos: a += b; a *= 3; // Equivalente a: a = a + b; // Equivalente a: a = a * 3;

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Incremento e Decremento o incremento dado pelo operador ++ e o decremento pelo operador --.; este decremento ou incremento pode ser feito antes ou depois da utilizao da varivel; colocandose antes (++var), ser realizado o incremento ou decremento e depois o valor da varivel ser utilizado; ao contrrio (var++), o operador aps a varivel, faz com que o valor da varivel seja utilizado primeiro e o incremento ou decremento seja feito depois. Exemplos: i++; --i; //Equivalente a: //Equivalente a: i = i +1; i = i -1;

Exemplo 11
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Precedncia dos Operadores a tabela abaixo apresenta os operadores em ordem decrescente de precedncia, isto , o que est mais acima ocorre antes:
++ -- ! + <> <= >= == != ^ && || = *= /= %= += -=
Ttulo da Apresentao

* / %

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo a maioria dos programas tomam decises que afetam seu fluxo; as declaraes que tomam essas decises so chamadas de comandos de controle de fluxo.

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso if...else executa, condicionalmente, um bloco de comandos, dependendo do valor de uma expresso; Sintaxe: if (condio) {bloco de comandos} [else {bloco de comandos} ] Exemplo: if ( fim == true ) System.out.println(Trmino!); else System.out.println(Continuando...);

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso if...else para mais de um comando ser executado depois da declarao, utiliza-se o conceito de blocos, delimitados por { }; Exemplo: if ( fim == true ){ cont = 0; System.out.println(Trmino!); } else { cont = cont +1; System.out.println(Continuando...); }

Exemplo 12
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso Operador Condicional ?: uma alternativa para o comando if...else a utilizao do operador condicional ?:; ele o nico operador ternrio do Java; sintaxe: (expresso lgica) ? expresso 1 : expresso 2; caso a expresso booleana retorne um valor verdadeiro (true), a expresso 1 executada; caso retorne um valor falso (false), a expresso 2 executada.

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso Operador Condicional ?: Exemplo: int total = (salario < 1000) ? salario : salario desconto; no exemplo acima, se a varivel salario for menor que 1000, atribudo o valor de salario a varivel total, mas se a varivel salrio for maior ou igual a que 1000, a varivel total recebera o valor da varivel salrio menos a varivel desconto.

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso switch a instruo switch utilizada quando precisamos selecionar uma ao dentro de um nmero de possibilidades; switch executa um, de vrios grupos de comandos, dependendo de uma expresso inteira; a expresso de comparao do switch deve ser um char, um byte, um short ou um int; no permitido outro tipo primitivo ou objeto; o valor resultante da expresso inteira comparado com cada um dos itens constantes nas clusulas case; a ordem em que as clusulas aparecem importante, visto que a comparao feita seqencialmente; uma clusula opcional default pode aparecer no final do comando.
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso switch sintaxe: switch ( expresso_teste ) { [case expresso constante 1: comandos] ... [default: comandos;] }

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso switch Exemplo:
switch ( diaSemana ){ case 1: System.out.println(Hoje segunda-feira); break; case 2: System.out.println(Hoje tera-feira ); break; ...

case 7: System.out.println(Hoje domingo); break; default: System.out.println(Opo invlida!); }

Exemplo 13
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso while executa um bloco de comandos enquanto uma condio for verdadeira; a mais simples das estruturas de repetio (ou loop), onde a expresso de comparao avaliada antes que o lao seja executado; utilizada quando no se quer que o corpo do lao seja necessariamente executado; Sintaxe: while (expresso booleana) { bloco de comandos; } Exemplo:
while ( i != 0 ){ salario = salario * 0.5; i--; }

Exemplo 14

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso do...while executa um bloco de comandos enquanto uma condio for verdadeira; a expresso de comparao avaliada depois que o lao for executado; utilizada quando se quer que o corpo do lao seja necessariamente executado;

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso do...while Sintaxe: do { bloco de comandos; } while (expresso booleana); Exemplo: do { salario = salario * 0.5; i--; } while ( i != 0 );

Exemplo 15
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso for repete um grupo de comandos em um nmero especfico de vezes; fornece uma expresso para inicializar as variveis, seguida por uma expresso de comparao e depois um lugar para incrementar ou decrementar as variveis de lao; a declarao pode ser um comando simples ou um bloco de comandos; Sintaxe: for (inicializao; terminao; incremento) { bloco de comandos; } Exemplo: for (i = 0; i < 20; i ++) salario = salario * 0.5;
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso for a seo de inicializao executada uma nica vez, quando se entra no lao; a inicializao pode ser vazia se a varivel da condio j tiver sido inicializada antes do lao; a seo de terminao uma expresso lgica que verificada no incio de cada uma das iteraes do lao; a terminao tambm pode ser vazio, caso onde precisaramos de uma instruo break para sair do lao; a seo de incremento uma expresso (ou expresses separadas por vrgula) que executada em cada iterao do lao; no obrigatrio que essa expresso esteja relacionada com o controle do lao; o incremento tambm pode ser vazio.
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso for na verso 5, o java ampliou a utilizao do comando for, agora com sintaxe simplifica e normalmente chamado de "for estendido" Exemplo: ... int[] mat = { 3, 4, 5, 6 }; for( int x:mat ) { System.out.println( x ); } o lao estendido cria a varivel de controle interna para percorrer um conjunto (vetor ou Colees, que veremos adiante) a cada iterao um valor do conjunto passado para a varivel x e executado o bloco de instrues.

Exemplo 16

Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso break o comando break desvia o fluxo de execuo de um programa para o fim de um lao ou de uma instruo switch; utilizada para sair de um lao antes do normal; o lao ir encerrar independentemente de seu valor de comparao e a declarao aps o lao ser executada. Exemplo: int i = 0; while (true) { System.out.println(i); i++; if ( i > 10 ) break; }

Exemplo 17
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso continue o comando continue desvia o fluxo de execuo de um lao para o prxima iterao, abandonando a iterao em que se encontra; Exemplo: for (int i = -10; i<10; i++) { if ( i == 0 ) continue; System.out.println(1/i); }

Exemplo 18
Ttulo da Apresentao

Curso Java Bsico


Estrutura da linguagem
Comandos de Fluxo: Comandos de Deciso return comando utilizado para transferir controle entre mtodos; retorna informaes de mtodos, encerrando a execuo e retornando para o local de onde o mtodo foi chamado; Sintaxe: return valor; exemplo: class Teste{ public int Potencia ( int base, int n){ int result = base; for ( int i = 0; i < n-1; i ++ ) result = result * base; return result; } Exemplo 19 }

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
O desenvolvimento de aplicaes Java sempre feito atravs de classes. Uma aplicao Java sempre ter a seguinte estrutura: class NomedaClasse { // Atributos // Mtodos public static void main( String args[] ) { //corpo principal do programa } }

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Uma aplicao em Java caracterizada por possuir o mtodo main(); O mtodo main o mtodo chamado pelo interpretador Java quando executado; A declarao do mtodo main deve ser: public static void main( String args[] ) ou public static void main(String... args) (desde 1.5) define um mtodo de acesso pblico (public), sem retorno (void), que recebe como parmetro um array de strings de tamanho indefinido representado pela varivel args (onde so passados os argumentos da linha de comando para a aplicao) a nica alterao que pode ser feita no nome do array (args).

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Classes e Objetos classe uma descrio de algo existente no domnio do problema (aplicao); usada na criao de mltiplos objetos; a descrio dos dados (atributos) e do comportamento (mtodos) de um objeto; um objeto uma instncia particular de um tipo de dado especfico (classe); objeto uma instncia de uma classe; instanciar um objeto criar seu espao de memria e repassar um ponteiro para ele;

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Classes e Objetos quando um objeto criado ele precisa ser inicializado, precisa ser carregado com a referncia (o endereo) de um espao de memria alocado para o seu armazenamento para uma nica classe podemos ter vrios objetos durante a execuo de um programa. em um programa orientado a objetos temos muitos objetos se relacionando entre si; a interao entre objetos feita atravs de mensagens; um objeto chama os mtodos de outro, passando parmetros quando necessrio; a esta interao entre objetos chama-se troca de mensagens.

Exemplo 20
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Classes e Objetos Exerccio 1 Implemente o relacionamento "uma empresa possui vrios endereos" (um de cada filial). Os dados da empresa so: Nome, CNPJ e nome do dono. Os dados de cada um de seus endereos so: tipo de logradouro (AVENIDA, RUA, BECO), NMERO e CEP.

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos Um mtodo descreve o comportamento de uma classe; Um mtodo de uma classe tem a seguinte estrutura genrica: <visibilidade> <static> <tipo_retorno> <nome_mtodo> (<parmetros>) { // corpo ou escopo do mtodo }

Curso Java Bsico


Classes em Java
Mtodos <visibilidade> - o modificador de acesso para o mtodo, podendo ser: public o mtodo poder ser acessado por qualquer classe. private - o mtodo s poder ser acessado dentro da mesma classe. default (package) o mtodo s poder ser acessado dentro da prpria classe ou por classes do mesmo pacote. Modificador utilizado por default, caso no seja especificado. protected o mtodo s poder ser acessado por classes do mesmo pacote ou por subclasses (veremos isto em herana). <static> - modificador que define se o mtodo de classe (com static) ou de instncia (sem static). Mtodos de classe podem ser chamado sem a especificao de um objeto.
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos <tipo_retorno> - declarao do tipo de retorno do mtodo, que pode ser qualquer um dos tipos primitivos, qualquer objeto ou o tipo void, que significa que o mtodo no retorna valor algum. (<parmetros>) um mtodo pode ter zero ou mais argumentos, tambm chamados parmetros; cada argumento indicar um pedao da informao que deve ser passada ao mtodo no momento de sua chamada; quando houver mais de um argumento, eles devem ser separados por vrgulas; caso o mtodo no receba argumentos, os parnteses devem ser deixados vazios.
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos Em Java todos os argumentos so passados por valor; No existe passagem por referncia; Se o parmetro for uma varivel de tipo primitivo o valor da varivel passada no parmetro e pode ser alterada dentro do mtodo que no ser refletido na varivel externa; Com objetos o efeito diferente, j que o valor passado no parmetro do mtodo a referncia para o objeto, ou seja, se um objeto for alterado dentro do mtodo, o objeto externo tambm ser alterado;

Exemplo 21

Curso Java Bsico


Classes em Java
Mtodos No Java 5 foi introduzido o conceito de varargs, que permite a passagem de um nmero varivel de argumentos a um mtodo; Dentro do mtodo os argumentos variveis so tratados como arrays do tipo que foi definido; No caso dos exemplos abaixo, um array de int (int[ ]) ou de String. Exemplo: ... void metodo( int... args ) { for( int i : args ) { System.out.println( i ); } } ... metodo( 1 ); metodo( 1, 2, 3 );

Curso Java Bsico


Classes em Java
Mtodos Esta funcionalidade alivia o trabalho de o desenvolvedor ter que criar arrays com valores e passar aos mtodos. Algumas regras aplicadas aos mtodos:

Exemplo 22

mtodos retornam, no mximo, um valor, podendo ser uma varivel ou um objeto; se o tipo de retorno do mtodo no for void, o corpo do mtodo tem de ter um comando return; a passagem de parmetros com tipo diferente dos parmetros recebidos (assinatura do mtodo) gera erro de sintaxe; um mtodo no pode ser definido dentro de outro mtodo; mtodos devem ter sua funo bem definida, para promover a reutilizao de cdigo.
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos Exerccio 2 A partir das classes criadas no Exerccio 1, declare dois mtodo para impresso dos dados de um objeto empresa, sendo este passado como parmetro para o mtodo. Cada um dos mtodos realiza a impresso em uma forma distinta de sada: pelo console e por meio de uma caixa de mensagem.

Curso Java Bsico


Classes em Java
Sobrecarga Mtodos Exemplo: public class Empregado { ... public void defineCampo(int valor) { idade = valor; } public void defineCampo(String valor) { nome = valor; } public void defineCampo(int valor1, String valor2) { idade = valor1; nome = valo2; } ... }

Curso Java Bsico


Classes em Java
Sobrecarga Mtodos Na hora da chamada de um dos mtodos, o compilador Java escolhe o mtodo correto baseado nos parmetros fornecidos. Exemplo: ... Empregado emp = new Empregado(); emp.defineCampo(20); emp.defineCampo(Maria); ...

Exemplo 23

Curso Java Bsico


Classes em Java
Sobrecarga Mtodos Exerccio 3 Crie uma classe que sobrecarregue um mtodo que retorna o triplo de um nmero, sendo este um inteiro(int) ou um nmero fracionrio (double ou float).

Curso Java Bsico


Classes em Java
Variveis Variveis so usadas em linguagens em geral para armazenar valores; Valores so passados para variveis atravs de operaes de atribuio atribuio de valores feita atravs de literais Ex: int intQuantidadeAlunos = 14; atribuio de referncias (endereos para valores) feita atravs de operaes de construo de objetos e, em dois casos, pode ser feita atravs de literais Ex: Conta contaClientePreferencial = new Conta(); String s = "abcde"; No so tipos primitivos, int[] v = {1, 2, 3};

s e v so referncias.

Curso Java Bsico


Classes em Java
Escopo de Variveis Atributos de dados (declarados no bloco da classe): podem ser usados em qualquer lugar (qualquer bloco) da classe uso em outras classes depende de modificadores de acesso (public, private, etc); existem enquanto o objeto existir( ou enquanto a classe existir, se declarados static). Variveis locais (declaradas dentro de blocos de procedimentos) existem enquanto o procedimento (mtodo, bloco de controle de execuo) estiver sendo executado; no pode ser usado fora do bloco; no pode ter modificadores de acesso (private, public, etc).

Curso Java Bsico


Classes em Java

Curso Java Bsico


Classes em Java
Atributos

modificadores

tipo

nome

private static String numero; private static final double LIMMITE_MAXIMO; double saldo; Private int numEstoque = 8;

Curso Java Bsico


Classes em Java
Atributos Modificadores de Acesso Atributos public podem ser acessados (lidos, alterados) por objetos de qualquer classe. Atributos private s podem ser acessados (lidos, alterados) dentro da prpria classe onde foi declarado. Atributos protected podem ser acessados (lidos ou alterados) de qualquer classe dentro do mesmo pacote ou qualquer sub-classe. Se um atributo no tem modificador de acesso associado ento ele considerado friendly. S visvel para objetos de classes dentro do mesmo pacote. Atributos final, torna o atributo constante; Atributo no pode ser alterado depois de inicializado; Atributo static: variveis de classe vs variveis de objeto
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Atributos de Objeto
class Conta { String strNome; String strCpf; double dblSaldo; double dblSaldoMinimo; public Conta(double dblValorSaldoMinimo){ dblSaldoMinimo = dblValorSaldoMinimo; } public static void main(){ Conta a = new Conta(100.00); Conta b = new Conta(200.00); } }

No utiliza o modificador static

Curso Java Bsico


Classes em Java
Atributos de Classe
class Conta{ String strNome; String strCpf; double dblSaldo; static double dblSaldoMinimo; } class Banco { public Banco(){ Conta c = new Conta(); Conta d = new Conta();} } new Banco();

Uso do modificador static

Curso Java Bsico


Classes em Java
Mtodos construtores Mtodos construtores so mtodos especiais definidos com o mesmo nome da classe; Construtores so chamados automaticamente toda vez que um objeto da classe criado; Os mtodos construtores servem para inicializar as variveis de instncia de seus objetos e no possuem nenhum valor de retorno.

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos construtores Exemplo: // Classe com dois construtores public class Enmpregado{ // Construtor padro, sem parmetros public Empregado() { } // Construtor para classe receber um inteiro e um String public Empregado(int valor1, String valor2) { int idade = valor1; String nome = new String; nome = valor2; } ... }
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos construtores Toda e qualquer classe do Java possui um construtor padro, que no faz nada nem recebe parmetros, e que s ser chamado se nenhum construtor for definido. Quando uma classe possui mais de um mtodo com o mesmo, mas com parmetros diferentes diz-se que houve um sobrecarga de mtodos.

Exemplo 24
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Mtodos construtores Exerccio 4 Altere o Exerccio 2, de forma que: Seja possvel criar um objeto do tipo Empresa, j inicializando os atributos de um objeto desse tipo ou sem inicializar qualquer um desses atributos com valores especificados. Neste ltimo caso, faa as modificaes necessrias para que os atributos sejam inicializados de forma que as strings sejam inicializadas com a sentea Campo no informado".

Curso Java Bsico


Classes em Java
Referncia this Os mtodos de instncia de uma classe Java possuem um parmetro implcito que se refere ao objeto atual sobre o qual o mtodo foi chamado; Este parmetro referenciado pela palavra chave this, e utilizado quando necessrio enviar a prpria referncia do objeto para uma rotina.

Exemplo 25
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Modificadores de Classe Modificadores de acesso public Classes public podem ser instanciadas por qualquer objeto livremente.
public class NomeClasse

default (pacote) Classes sem modificador de acesso explcito, denomiado default, s podem ser instanciadas dentro da prpria classe ou por classes do mesmo pacote.
class NomeClasse

Curso Java Bsico


Classes em Java
Modificadores de classe Outros Modificadores final Classes final so classes que no permitem que voc crie subclasses por herana delas.
public final class NomeClasse

abstract Classes abstract so classes que no permitem que um objeto as instancie, ou seja, serve para definir superclasses genricas.
public abstract class NomeClasse

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Herana e Polimorfismo Conceitos Bsicos de Herana Herana a possibilidade de criar objetos a partir de outros j existentes. Herana uma caracterstica da programao orientada a objetos que permite que classes herdem e estendam as funcionalidades e as caractersticas de outras classes. Uma subclasse uma especializao da sua superclasse. Subclasse tambm chamada de classe derivada, classe descendente ou classe filha; superclasse tambm chamada de classe pai.

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Herana e Polimorfismo Conceitos Bsicos de Herana Em Java, a herana obtida atravs da palavra reservada extends seguida do nome da classe que est sendo estendida; Atravs da herana cria-se uma hierarquia de classes; Toda classe, por padro, estende a classe java.lang.Object; Todos os mtodos e atributos (public e protected) so herdados pela subclasse; Os construtores no so herdados; A palavra reservada super identifica mtodos e atributos da superclasse; Em Java no permitida herana mltipla, isto , uma classe s pode estender uma e somente uma outra classe.
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Herana e Polimorfismo Conceitos Bsicos de Herana public class Primata { public Primata() { // mtodo construtor } String nomeCientifico; public void setNomeCientifico(String nomeCientifico) { ... } }

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Herana e Polimorfismo Conceitos Bsicos de Herana public class Humano extends Primata{ public Humano() { // mtodo construtor } String nome; int idade; int numeroIdentidade; public void setNome(String nome) { ... } public void setIdade(int idade) { ... }
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Herana e Polimorfismo Conceitos Bsicos de Herana
public void setNumeroIdentidade(int numeroIdentidade) { ... } ... } public class Homem extends Humano { public Homem() { // mtodo construtor } String certMilitar; public void setCertMilitar(String certMilitar) { ... } ... } Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Herana e Polimorfismo Conceitos Bsicos de Herana
public class Mulher extends Humano { public Mulher() {// mtodo construtor } ... }

No exemplo acima, a classe Homem (subclasse de Humano) possui todos os atributos e mtodos da classe Humano (sua superclasse) e os atributos da classe Primata, superclasse da classe Homem.

Exemplo 26 Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Sobrescrita de Mtodos Uma classe derivada (subclasse) recebe, atravs do mecanismo de herana, todos os mtodos definidos na classe pai; Sobrescrever um mtodo consiste em definir, na classe derivada, um mtodo com a mesma assinatura (mesmos argumentos e tipo de retorno) de uma classe ascendente (classe pai em qualquer nvel de herana); Esta funcionalidade permite que uma classe derivada altere um comportamento de um mtodo herdado, sobrescrevendo-o; Com o sobrescrita, o mtodo da superclasse fica escondido da subclasse podendo ser executado com a referncia super;

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Sobrescrita de Mtodos Ateno para no confundir os conceitos de sobrescrita de mtodos e sobrecarga de mtodos; na sobrecarga tem-se mtodos dentro da mesma classe que possuem o mesmo nome, mas com parmetros diferentes; na sobrescrita tem-se mtodos de classes da mesma hierarquia de derivao com o mesmo nome, mesmos parmetros e mesmo tipo de retorno.

Exemplo 27
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Sobrescrita de Mtodos Exerccio 5 Implemente a seguinte hierarquia:

As Classes Forma, FormaBidimensional e as classes que herdam desta, tm um mtodo sobrescrito para obter a rea da forma correspondente. Inclua na definio de cada mtodo a impresso da sentea Calculando a rea da forma X, onde X o nome da classe; De forma similar, cada FormaTridimensional deve ter mtodos sobrescritos obterArea e obterVolume para calcular a rea da base e a superfcie, respectivamente, da forma tridimensional. Inclua na definio de cada mtodo a impresso da sentea Calculando a rea/volume da forma X, onde X o nome da classe;
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Polimorfismo Um objeto polimrfico um objeto que pode ter formas diferentes, funcionalidades diferentes mas continua a pertencer a uma nica classe; Java, permite que um objeto seja referido com uma varivel que do tipo de uma classe ascendeste (superclasses) , e a deteminao do comportamento do objeto (mtodos a serem executados) ser determinada em tempo de execuo, dependendo do tipo de objeto instanciado; Isto possvel porque quando criamos uma referncia a um tipo abstrato de dados, uma classe, o compilador Java considera que o objeto atribudo a essa referncia ser do tipo declarado e no do tipo usado para criar o objeto.

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Polimorfismo Exemplo: class Forma { public void desenhar() { System.out.println("Forma"); } } class Circulo extends Forma { public void desenhar() { System.out.println("Crculo"); } }
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Polimorfismo
public class ExemploPolimorfismo { private static void desenha(Forma[] fs) { for (int i = 0; i < fs.length; i++) fs[i].desenhar(); } public static void main(String[] args) { Forma[] formas = new Forma[] { new Circulo(), new Forma(), new Quadrado(), new Triangulo() }; desenha(formas); } }
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
O operador instanceof O operador instanceof um mecanismo para determinar, em tempo de execuo, se a classe de um objeto referenciado por uma varivel compatvel com um determinado tipo de referncia conhecido. a sintaxe do operador instanceof a seguinte:
varivelDoTipoReferencia instanceof NomeDaClasseConhecida;

Exemplo 28
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
O operador instanceof Ao executar o cdigo do Exemplo 28, a sada ser: objForma compatvel com o tipo Forma objCirculo compatvel com o tipo Forma objCirculo compatvel com o tipo Circulo objQuadrado compatvel com o tipo Forma objQuadrado compatvel com o tipo Quadrado Observe que o operador instanceof identifica a compatibilidade de tipos no que se refere ao mesmo tipo do objeto referenciado (compatibilidade identificada quando comparado o objCirculo com a classe Circulo, por exemplo) e na herana de classes e interfaces (compatibilidade identificada quando comparado o objCirculo com a classe Forma, supertipo de Circulo, por exemplo).
Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Interfaces Interfaces foram concebidas para criar um modelo de implementao de baixo acoplamento entre determinadas partes de um software; Uma interface semelhante a uma classe, e descreve um aspecto de comportamento que vrias classes podem possuir; Uma interface no possui atributos de instncia nem mtodos com implementao, mas pode possuir atributos de estticos (finais de classe) e cabealhos de mtodos (mtodos abstratos) que devero ser desenvolvidos nas classes que implementaro a interface; Para criar uma interface utilizamos a palavra reservada interface. Seus mtodos no precisam ser declarados public abstratct, j que assim sero considerados por estar em uma interface.

Curso Java Bsico


Classes em Java
Interfaces public class Pessoa { String nome; String end; char sexo; int idade; public Pessoa ( String nm, String ed, char sx, int id ){ nome = nm; end = ed; sexo = sx; idade = id; }

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Interfaces
public String AlterarCadastro ( ) { .... }

public interface Aluno { boolean CadastrarAluno( int num_matricula, int cod_curso ); void InserirNotas( int num_matricula ); } class Universitario extends Pessoa implements Aluno { public boolean CadastrarAluno( int num_matricula, int cod_curso ) { ... }

Ttulo da Apresentao

Curso Java Bsico


Classes em Java
Interfaces
public void InserirNotas( int num_matricula ){ ... } }

Para implementar uma interface, usa-se a palavra-chave implements seguida do nome da interface, ou interfaces, visto que no h limite para quantidade de classes em implementao.

Exemplo 29

Curso Java Bsico


Classes em Java
Interfaces Exerccio 6 Crie uma interface Conta e declare nesta os mtodos necessrios para realizar as seguintes operaes comuns a um tipo qualquer de conta: Obter o saldo atual da conta; Atualizar o saldo atual da conta; Obter a data da ltima alterao (no se preocupe com formatao dessa informao); Definir a data da atualizao realizada; Obter nome do proprietrio da conta; Definir o nome do proprietario da conta; Obter CPF do proprietrio da conta; Definir CPF do proprietrio da conta; Verificar validao do nmero de algarismos do CPF do proprietrio da conta (se tem 11 algarismos);

Curso Java Bsico


Classes em Java
Interfaces Exerccio 6 (continuao) Crie ainda duas classes (concretas) para representa uma Conta Corrente e uma Conta Poupana, de forma que ambas as classes implementem a interface Conta, criada anteriormente; Acrescente na classe conta corrente um atributo e dois mtodos para obteno e atualizao da informao sobre o nmero de cheques emitidos; Na classe que representa a conta poupana acrescente um atributo e dois mtodos para obteno e atualizao da taxa de reajuste (valor fracionrio); Crie uma classe Banco de forma que sejam possam ser armazenados e recuperados os seguintes dados: Nome do Banco, CNPJ e dois arranjos, com 100 posies cada, para incluir dados de contas correntes e contas poupana dos clientes com conta no banco; Acrescente um mtodo para listagem de todos os dados do banco.

Curso Java Bsico


Exerccio Completo 1
Utilize os conceitos de herana, modificadores de acesso e as demais classes da API apresentadas para representar o seguinte diagrama de classes:

Curso Java Bsico


Exerccio Completo 1 - continuao
Adicione sua soluo uma classe de Validao e declare nesta os seguintes mtodos: a chave de acesso deve conter 14 caracteres; UF deve corresponder a um dos seguintes valores: BA, SP, MG, GO ou RJ; o campo Situao deve conter um dos seguintes valores: Autorizada, Cancelada, Denegada ou Inutilizada; o cdigo do medicamento deve atender a seguinte expresso regular {001, 002, 003}01. Imprima na tela um objeto do tipo NFeMedicamento e outro NFeArmamento em formato XML .Veja o exemplo 2 com o uso da biblioteca Xstream. Em caso de dvida, consulte a API.

Curso Java Bsico


Converso e Cast
Converses entre Tipos Primitivos de Dados A linguagem Java no suporta atribuies arbitrrias entre variveis de tipos diferentes. Existem duas maneiras de fazer converses de tipos: converso implcita: quando o tamanho de uma varivel maior que o tamanho da varivel ou o valor que est sendo atribudo. Exemplo: int y = 10; long x = y;

Ttulo da Apresentao

Curso Java Bsico


Converso e Cast
Converses entre Tipos Primitivos de Dados converso explcita: necessria quando o tamanho de uma varivel menor que o tamanho da varivel ou o valor que est sendo atribudo. Exemplo: long y = 10L; int x = (int) y; o tamanho de long maior que o de int, portanto necessita indicar uma converso. esta indicativa feita pelo tipo da varivel, que ir receber o valor, entre parnteses: (int). Se esta informao no for colocada, ocorreria um erro de compilao indicando tipos incompatveis. Outra forma usar as constantes de identificao de tipos para fazer uma converso explcita, como em: long y = 10L; Para um processo de converso explcito, utilizamos um mecanismo chamado de casting. Para sinalizar um casting coloca-se o nome do tipo para o qual se quer converter entre parnteses.
Ttulo da Apresentao

Curso Java Bsico


Converso e Cast
Converses entre Tipos Primitivos de Dados
Tipo Original byte short int long float double char boolean Tipo Destino byte short A C, P C, P C, P C, P C, P C, P C, P C, P C, P C, P C X X int A A C, P C, P C, P C X long A A A C, P C, P C X float A A A C, P C, P C X double A A A C A C X char C C C, P C, P C, P C, P X boolean X X X X X X X

A Converso automtica C Utilizar cast explcito P Perda de magnitude ou preciso X Java no permite converso
Ttulo da Apresentao

Curso Java Bsico


Converso e Cast
Converses entre Objetos O cast ou a converso de objetos em java realizada de duas maneiras, de acordo com a converso de tipos primitivos: implcito e explcito. Primeiramente, toda classe filha pode ser associada a uma declarao de classe ou interface pai. Esta a forma implcita, pois no necessita de nenhum recurso para ser efetuado, como no exemplo abaixo: Exemplo: ... Pai objeto = new Filho(); ... No exemplo, o objeto da classe Filho declarado como uma instncia da classe Pai.

Curso Java Bsico


Converso e Cast
Converses entre Objetos O inverso deste caso ocorre quando tem-se um objeto pai e sabe-se que ele uma instncia de determinada classe Filho. Esta forma a explcita, pois necessrio informar ao compilador, qual a classe que deseja-se fazer o cast. Exemplo: ... Pai objeto = new Filho(); Filho objFilho = (Filho)objeto; ... No exemplo, o objeto declarado como sendo instncia da classe Pai, mas criado uma instncia da classe Filho. Na linha seguinte, associado a uma varivel declarada como Filho o valor do objeto, que foi declarado como Pai mas possvel saber que ele um Filho.
Ttulo da Apresentao

Curso Java Bsico


Converso e Cast
Classes Wrappers Tambm conhecidas como classes de embrulhamento; Utilizadas, em especial, para converso de tipo ou empacotamento em si de um valor em um objeto; Pertencentes ao pacote java.lang; Principais classes wrappers: Integer; Double; Float; Boolean. Converso de String para Inteiro, Double etc e vice-versa;

Exemplo 30

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.lang O pacote java.lang contm as classes que constituem recursos bsicos da linguagem, necessrios execuo de qualquer programa Java. Entre as classes desse pacote destacam-se: Object a classe base do Java, que serve de superclasse para todas as classes existentes em Java. toda classe subclasse de Object, e com isso herda alguns mtodos automaticamente. ela possui mtodos como wait( ), notify( ) e notifyAll( ), que suportam controle de threads, alm dos mtodos equals(), toString() e getClass(). Class e ClassLoader representa classes Java e o mecanismo para carreg-las dinamicamente (veremos um exemplo de uso quando virmos conexo com banco de dados); Ttulo da Apresentao

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.lang Math Classe que possui um conjunto de mtodos e 2 constantes para suportar computao matemtica; A classe final e no pode ser estendida; O construtor private, portanto no pode ser instanciado; Constantes: Math.PI e Math.E Possui mtodo para clculo de: valor absoluto, arredondamento para cima e para baixo, comparao do maior e menor valor, nmero aleatrio, arredondamento, seno, coseno, tangente e raiz quadrada. Boolean, Character, Byte, Short, Integer, Long, Float, Double So classes wrappers, e todos tipo primitivo em Java possui uma classe wrapper, encapsulando o tipo primitivo e permitindo a manipulao de seus valores como se fossem objetos;
Ttulo da Apresentao

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.lang System, Runtime e Process So classes que permitem interao da aplicao com o ambiente de execuo; Thread, Runnable, ThreadGroup So classes que do suporte execuo de threads, mltiplas linhas de execuo; Throwable, Error e Exception So classes que permitem a definio e manipulao de situaes de erros e condies inesperadas de execuo, tais como OutOfMemoryError, ArithmeticException (por exemplo, diviso inteira por zero) e ArrayIndexOutOfBoundsException (acesso a elemento do array alm da ltima posio ou antes da primeira posio).
Ttulo da Apresentao

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.lang String Classe que guarda uma String imutvel e possui diversos mtodos para manipular a String. StringBuffer Classe que representa uma String que pode ser modificado dinamicamente. ideal para manipular grande quantidades de textos.

Ttulo da Apresentao

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.util O pacote java.util contm classes do framework de collections, modelo de eventos, data, hora, internacionalizao e classes de outras utilidades. Entre as classes desse pacote destacam-se: Collections Collection a interface base de todas as classes que implementam uma coleo. Ela define mtodos para adicionar itens, limpar a coleo, remover itens, transformar para array, iterar pelos itens, ver o tamanho e etc.

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.util Vector

Exemplo 31

Classe que representa um array dimensionvel; Pode ser acessado por um ndice; O Vector sincronizado, ou seja, ele sincroniza o acesso de processos concorrentes; O Vector pode armazenar diferentes tipos de objetos ao mesmo tempo, pois ele recebe um Object como argumento. A qualquer momento dado, Vector contm um certo nmero de elementos que menor que ou igual sua capacidade; a capacidade o espao que foi reservado para o array; se voc no especificar um incremento de capacidade, o sistema dobrar automaticamente o tamanho do Vector toda vez que capacidade adicional for necessria.

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.util ArrayList Classe similar classe Vector, porm no sincronizada, portanto, mais rpida. List Interface implementada pelas classes Vector, ArrayList, LinkedList e outras. Com isto, estas colees podero ser acessadas pelo mtodos comuns da interface List. Hashtable Classe que guarda valores com chave e valor, no permitindo valores null; Para recuperar um valor, busca-se pelo seu nome (chave); Pode-se obter um Enumeration com todas as chaves da coleo.

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.util Properties Classe que implementa uma coleo de propriedades, do tipo chave e valor; Os dados pode ser escritos ou lidos de uma Stream; Cada chave da propriedade te seu valor, nico; Esta classe estende a classe Hashtable. StringTokenizer Classe que permite quebrar uma String em tokens (palavras), pelo caracter separador.

Curso Java Bsico


Pacotes java.util e java.lang
Pacote java.util Date Classe que representa um instante de tempo especfico, medido em milisegundos, a partir do dia 01/Jan/1970. GregorianCalendar Classe que implementa a classe java.util.Calendar, e oferece mtodos e funcionalidades para manipular datas no formato do calendrio gregoriano.

Exemplo 32

Curso Java Bsico


Colees
Java possui o Java Collection Framework que possui vrias interfaces e implementaes para o tratamento de Colees e Mapas . Uma Coleo um conjunto de objetos agrupados e pode ser implementada de duas formas: como um conjunto (Set): que no permite duplicatas; ou como uma lista (List): que permite duplicatas. Um Mapa (Map) um conjunto de estruturas de pares de objetos, sendo um deles usado como chave de acesso.

Curso Java Bsico


Colees
Colees: Set Set uma interface de Collection, que pode ser implementado como instncia das classes HashSet (tabela Hash) ou TreeSet (rvore) No necessrio especificar a posio para adicionar um elemento. A classe HashSet no possui nenhuma ordem especfica enquanto a classe TreeSet cria uma ordem, no caso de nmeros do menor para o maior e no caso de String a ordem lexicogrfica.

Curso Java Bsico


Colees
Colees: Set Exemplo:
public class ExemploHashSet { public static void main(String[] args) { Collection c = new HashSet(); c.add("Maria"); c.add("Joao"); c.add("Ana"); c.add("Joao"); c.add("Jose"); System.out.println(c); } }

O exemplo acima resulta em [Joao, Jose, Maria, Ana], j que Hashset no permite repetio e no ordenado.

Curso Java Bsico


Colees
Colees: Set Principais mtodos de Set: add() - adiciona um elemento ou um conjunto de elementos. remove() - remove um elemento ou um conjunto de elementos. contains() - Retorna true se o conjunto possuir algum elemento. isEmpty() - Retorna true se o conjunto estiver vazio.

Exemplo 33

Curso Java Bsico


Colees
Colees: List A interface List uma extenso de Collection que acrescenta ao agrupamento o conceito de indexao, ou seja, informao sobre a posio do elemento em relao aos demais membros do grupo. A API de Java oferece algumas implementaes bsicas para esta interface, tais como ArrayList (array) e LinkedList (lista encadeada).

Curso Java Bsico


Colees
Colees: List Exemplo:
public class ExemploArrayList { public static void main(String[] args) { List c = new ArrayList(); c.add("Maria"); c.add("Joao"); c.add("Ana"); c.add("Joao"); c.add("Jose"); Iterator i = c.iterator(); System.out.println(c.get(2)); System.out.println(c); } }

O exemplo acima resulta em Ana e [Maria, Joao, Ana, Joao, Jose].

Curso Java Bsico


Colees
Colees: List Os principais mtodos de List so: add() - adiciona um elemento ou um conjunto de elementos da lista; remove() - remove um elemento ou um conjunto de elementos da lista; get() obtem o elemento armazenado na posio especificada; indexOf() - para obter a posio da primeira ocorrncia do elemento especificado; subList() - obtem uma sublista contendo os elementos compreendidos entre dois elementos especificados.

Exemplo 34

Curso Java Bsico


Colees
Colees: Map Exemplo: public class ExemploTreeMap { public static void main(String[] args) { Map c = new HashMap(); c.put(new Integer(1),"Maria"); c.put(new Integer(3),"Joao"); c.put(new Integer(2),"Ana"); c.put(new Integer(5),"Joao"); c.put(new Integer(4),"Jose"); System.out.println(c); } } O exemplo acima resulta em {1=Maria, 2=Ana, 3=Joao, 4=Jose, 5=Joao}.

Curso Java Bsico


Colees
Colees: Map Entre outros, os seguintes mtodos so oferecidos: put(), que associa um novo objeto valor ao objeto chave especificado; get(), que retorna o objeto valor associado ao objeto chave especificado; containsKey(), que indica se a chave especificada est presente na coleo; size(), que retorna a quantidade de elementos (pares chave-valor) na coleo. Se deseja-se que esse grupo de pares de objetos seja mantido por ordem dos valores das chaves, a interface mais especializada SortedMap pode ser utilizada, desde que os objetos usados como chave sejam comparveis.

Curso Java Bsico


Colees
Colees: Map Alm das funcionalidades acima, esta interface acrescenta a especificao de mtodos tais como: firstKey() para retornar o elemento da coleo com a chave de menor valor. lastKey() para retornar o elemento da coleo com a chave de maior valor. subMap() para obter o subconjunto dos elementos compreendidos entre as chaves especificadas.

Exemplo 35

Curso Java Bsico


Colees
Colees: Exerccio 7 A partir das classes criadas no Exerccio 6, altere o tipo que define o conjunto de contas (dois arranjos distintos de 100 posies para armazenar cada um contas correntes e contas poupana), para ser uma nica coleo de contas. Utilize o operador instanceof para fazer um teste prvio da natureza do objeto constante em cada posio da coleo, para obter informaes adicionais de acordo com o tipo de conta: Se a conta for uma conta corrente, obter o nmero de cheques emitidos; Se for uma conta poupana, qual o fator de reajuste.

Curso Java Bsico


Colees
Colees: Generics Generics foi introduzido no Java 5, para ajudar o desenvolvedor a escrever cdigo mais claro, conciso e diminuir a ocorrncia de erros de tempo de execuo, principalmente durante a manipulao de colees de objetos (ClassCastException); Com Generics podemos definir qual o tipo de dados vamos trabalhar com uma determinada coleo ou lista.

Curso Java Bsico


Colees
Colees: Generics Na manipulao de lista sem o uso de Generics, adicionamos qualquer tipo de objetos na lista e quando os recuperamos, esperando um tipo particular de objeto, podendo ocorrer um ClassCastException, se o objeto recuperado no for do tipo esperado. Com Generics este problema eliminado, e a verificao de tipos feita em tempo de compilao, no mais em tempo de execuo, evitando problemas futuros. Todas as declaraes de mtodos genricos tm uma seo de parmetro de tipo (varivel de tipo) delimitada por colchetes angulares (<e>) que precedem o tipo de retorno do mtodo.

Curso Java Bsico


Colees
Colees: Generics Exemplo: ... List<Integer> l = new ArrayList<Integer>(); l.add( new Integer(1) ); l.add( new Double(2.0) ); // erro Integer i = l.get(1); ...

Exemplo 36

Curso Java Bsico


Colees
Colees: Exerccio 8 Utilizando o conceito de Generics, crie classe que declare um mtodo genrico para comparao de objetos. Teste o mtodo genrico criado, passando como parmetro objetos distintos, como classes wrappers e strings.

Curso Java Bsico


Tratamento de Excees
Conceitos Bsicos Uma exceo um evento ou valor ilegal, porm previsto na modelagem de um sistema; Por exemplo, quando criamos um programa que pede ao usurio a digitao de um valor inteiro e esse usurio digita um valor fracionrio, dizemos que o valor digitado pelo usurio ir gerar uma exceo; Entretanto, essa exceo pode, e deve, ser previsto na implementao desse programa.

Curso Java Bsico


Tratamento de Excees
Diferena entre excees e erros A diferena entre exceo e erro que uma exceo prevista pelo programador durante a implementao de um sistema, enquanto o erro algo inesperado, no tratado e que, na maioria das vezes, aborta o sistema. Os erros so sinalizados pelo sistema operacional no qual a mquina virtual Java est rodando. Ou seja, geralmente, a mquina virtual no permite o acesso de um cdigo Java origem de um erro, tornando a tentativa de tratamento dos erros impossvel.

Curso Java Bsico


Tratamento de Excees
Quando uma falha ocorre na execuo de um programa, o trecho de cdigo onde essa falha ocorreu pode gerar uma exceo; Gerar uma exceo a sinalizao ao processo ativo na mquina virtual de que alguma falha ocorreu; Esse processo ento pode "capturar" a execuo do programa e, quando possvel, tornar a execuo do cdigo novamente vlido dentro do comportamento previsto para esse programa. O tratamento de excees em Java visa um cdigo mais tolerante a falhas; Existem trs comandos bsicos que permitem esse tratamento de excees: try, catch e finally; Esses comandos so usados em conjunto, suprindo o programador de recursos que garantam o desenvolvimento de cdigos robustos;

Curso Java Bsico


Tratamento de Excees
Try o bloco de comandos que so passveis de gerarem uma exceo; Quando o programador sabe que um determinado conjunto de instrues pode gerar algum tipo de exceo, ele agrega esses comandos dentro de um bloco try; O cdigo contido dentro de um bloco try chamado de cdigo protegido.

Curso Java Bsico


Tratamento de Excees
Catch o bloco de comandos alternativos ao try, ou seja, se os comandos do bloco try gerarem uma exceo ento os comandos do bloco catch sero executados no lugar deles; O bloco catch opcional, mas normalmente implementado junto a um bloco try.

Curso Java Bsico


Tratamento de Excees
Finally um comando utilizado para delimitar um grupo de instrues que ser sempre executada ao final de um bloco try-catch, independente de qual dos blocos anteriores foi processado pela mquina virtual.

Curso Java Bsico


Tratamento de Excees
A lgica dos blocos descritos simples: 1. Tenta executar os comandos do bloco try 2. Se os comandos do try geraram uma exceo, ento executa os comandos do bloco catch. Um bloco de comandos catch sempre deve seguir um bloco de comandos try, e o programador deve ter o cuidado de garantir que o bloco catch no ir gerar uma exceo. 3. Independente das excees geradas na execuo dos blocos try ou catch, os comandos do bloco finally sero executados.

Curso Java Bsico


Tratamento de Excees
Exemplo: public void relatorio(int indice) { // Tratamento de excees try { // Tenta executar esse comando System.out.println(alunos[indice]); } catch(ArrayIndexOutOfBoundsException erro) { // Se houver algum erro no bloco anterior, // esse comando ser executado System.out.println("aluno inexistente"); }

Curso Java Bsico


Tratamento de Excees
Exemplo (continuao): catch(Exception erro) { // Pode-se usar um catch para cada tipo de erro // possvel no bloco try System.out.println("exceo inesperada"); } finally { // Esse comando ser executado sempre System.out.println("executou finally"); } }

Curso Java Bsico


Tratamento de Excees
Tratamento pendente de excees Caso um mtodo possa gerar uma exceo, esse mtodo deve deixar claro o tipo de ao que deve ser tomada para contornar essa exceo. Existem duas formas de fazer isso: um bloco try-catch; ou o lanamento de excees, deixando o seu tratamento para fora do trecho de cdigo que gerou a exceo. Para no misturar o tratamento de excees com a lgica de um programa, uma tcnica muito utilizada a declarao de mtodos com excees pendentes, ou seja, excees cujo tratamento ser feito pelo programa que chamar esse mtodo.

Curso Java Bsico


Tratamento de Excees
Tratamento pendente de excees Em Java, essa pendncia do tratamento de uma exceo definida pela palavra reservada throws: A palavra throws seguida pela lista de excees que podem ocorrer na execuo do cdigo do mtodo. Esse mtodo s poder ser chamado de dentro de um bloco try-catch, pois a pendncia dever ser tratada no cdigo que est chamando esse mtodo. Exemplo: public void relatorio(int indice) throws ArrayIndexOutOfBoundsException{ .. } A vantagem do tratamento de excees pendentes que o cdigo dos mtodos fica restrito lgica do programa.

Curso Java Bsico


Tratamento de Excees
Excees implementadas pelo programador Como as excees em Java so instncias de alguma subclasse de Throwable, possvel implementar outras classes estendidas de Throwable ou de uma de suas subclasses; Essas subclasses implementadas pelo programador sero igualmente excees.

Curso Java Bsico


Tratamento de Excees
Usamos a palavra reservada extends para implementarmos novas excees: public class AlunoInexistente extends Exception { // Esse mtodo sobrecarrega o mtodo homnimo da classe // Exception public String getMessage() { return "indice do aluno no existe"; } } Aps compilarmos o cdigo acima, poderemos usar a nova exceo normalmente em outros programas.

Exemplos 37 e 38

Curso Java Bsico


Exerccio Completo 2
Adicione sua soluo para o Exerccio Completo 1, o tratamento de exceo para os seguintes casos: O campo chave de acesso no contm 14 caracteres; O campo UF no corresponder a um dos seguintes valores: BA, SP, MG, GO ou RJ; O campo Situao no contm um dos seguintes valores: Autorizada, Cancelada, Denegada ou Inutilizada; O campo do cdigo do medicamento no atende a seguinte expresso regular {001, 002, 003}01. Em todos estes casos, ao evidenciar falha, dever ser levantada uma exceo de Contedo Invlido, sendo gravada em uma string o problema ocorrido e este ser utilizado para confeco da mensagem de exibio ao usurio.

Anda mungkin juga menyukai