java básico

189
7/16/2019 Java Básico http://slidepdf.com/reader/full/java-basico-563389012f4c3 1/189 Linguagem de Programação  JAVA © Copyright e-tecnologia.com, 2002 JB100 Java Básic JB100 Java Básic Versão: 3.0 Revisão 3.0 27/01/09 or: Rildo Santos ([email protected]) Rildo F Santos [email protected] @rildosan skype: rildo.f.santos http://rildosan.blogspot.com/ (11) 9123-5358 (11) 9962-4260 www.etcnologia.com.br 

Upload: robson-pompeu

Post on 30-Oct-2015

41 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 1/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Revisão 3.0 27/01/09or: Rildo Santos ([email protected])

Rildo F [email protected] 

@rildosanskype: rildo.f.santos

http://rildosan.blogspot.com/

(11) 9123-5358

(11) 9962-4260

www.etcnologia.com.br 

Page 2: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 2/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

strutura do Curso

Introdução

ProgramaçãoOrientadaa Objetos

Características Avançadas

Introduçãoa UML

Utilitários

 Apresenta arquitetura da linguagem Java

 Apresenta comandos e funcionalidadesbásicasFundamentosda linguagem

Principais aspectos da programaçãoorientada a objetos

 Apresentar características avançada daLinguagem (Threads, networking e etc)

 Apresentar uma visa geral da UML e seusos principais componentes

Demonstrar os principais utilitários dalinguagem Java (Jar, JadaDoc e etc)

Page 3: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 3/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Conteúdo

Introdução breve apresentação

gerando aplicações

Instalação do JDK O primeiro programa

Fundamentos da linguagem JavaEstrutura da linguagem

Palavras Reservadas

Tipos de Dados

Inicialização de variáveis

Operadores

A classe String

A classe StringBuffer 

Casting

Fluxo de Controle

Arrays

Passagem de ParâmetrosA classe Math

Empacotamento de Classes

Conversão de Tipos

A referência this

Coleções

Pacotes

Programação Orientada a ObjetosClasses

Objetos

Métodos

Construtores

Atributos e variáveis

Exemplo de classeExercício

Abstração de Dados

Relacionamento

Herança

Herança Múltipla

Comparação: Classes vs Interfaces

A referência Super 

Associação

 Navegação

Rolename

Agregação

Composição

Multiplicidade

ConstraintEncapsulamento

Polimorfismo

Acessibilidade

Características AvançadasInstanceof 

Exception

Formatando Números e DatasConstantes

Threads

Serialization

TCP/IP

Introdução a UMLUtilitários

JavaDoc

Jar 

JDB

Javap

Apêndice

Convenção de Código no JavaUnicode

 Notação UML

Versão do JSDK 1.3

Este material foi preparado para trabalhar com a versão JSDK 1.3 (veja: http://java.sun.com/j2se/1.3/index.jsp)entretanto todos os exemplos funcionam perfeitamente na versão 6 (versão atual)

Nota

Page 4: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 4/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 Apresentar as características básicas da linguagem Java, assimcomo, sua estrutura, funcionalidades, métodos, classes, APIs(Application Program Interface) e recursos avançados.

Você está preparado ?

Para aprendermos uma nova linguagem de programação é necessário ter algunsconhecimentos como:- Lógica de Programação;- Conhecer um Sistema Operacional, por exemplo, Windows, Unix, Linux ou MacOS;- Saber editar e compilar programas e;Conhecer uma outra Linguagem de Programação é importante, porém nãoimprescindível .

Expectativas após o Curso:

Objetivo deste curso:

Ao f inal deste cu rso v ocê deverá estar ap to a: • Utilizar a linguagem Java para criar aplicações simples;• Descrever e usar as características de linguagem orientada aobjetos com Java, tais como: Herança, Abstração de Dados,Encapsulamento e Polimorfismo;• Conhecer o tratamento de exceções;• Descrever e usar “sockets” para fazer acesso a servidores e

clientes;• Conhecer UML básica;

Objetivo

Page 5: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 5/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Page 6: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 6/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Java

Uma breve apresentação...

Surgimento:

Java é uma linguagem de programação criada em 1995 por James Gosling e suaequipe. A linguagem é de propriedade da Sun Microsystem.Logo Java ganhou popularidade, um bom exemplo disto são os “Applets”, aqueles

pequenos aplicativos que executam nos navegadores, que durante muito tempo foi ofoco da linguagem Java.Com o passar do tempo, o número de desenvolvedores aumentou e a linguagemamadureceu sendo hoje considerada o principal ambiente de desenvolvimento, tanto

para Internet quanto para ambiente cliente/servidor tradicional. Algumas das características da linguagem Java:• Orientação a objetos• Portabilidade (isto que dizer que o mesmo programa criado noWindows2000, pode ser executado em Linux, por exemplo, ou qualquer outroSistema Operacional, sem a necessidade de fazer ajustes).

Entretanto, a linguagem Java vai além da computadores, sendo executada emdiversos dispositivos como telefone celulares, televisores, cartões inteligentes e etc.O Java é reconhecido como a principal linguagem no mundo dos Servidores de

 Aplicações e ambiente sem fio (wireless).

trodução a linguagem Java

Page 7: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 7/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

•Orientação a objetos:  A linguagem é orientada a objetos a partir de sua arquitetura, permitindo herança, polimorfismo,encapsulamento, abstração de dados, persistência de objetos ereúso de código.; Independência de plataforma (Portabilidade): Possibilidade domesmo código fonte ser executado em diversos sistemasoperacionais, tais como Solaris, AIX, Linux, MacOS, Win32,PalmOS, OS/390 e etc);

Dinamismo:  A natureza dinâmica do Java, sendo uma extensãonatural de seu projeto orientado a objetos, permite a extensibilidadedurante a execução. Alto desempenho: Suporte a vários recursos, comomultithreading, compilação em Jus-in-time, atomicidade do código esuporte a protocolos de rede (TCP/IP) Facilidade de manutenção de programas.

A linguagem não tem:

Ponteiros do sistema operacional; Defines; Sobrecarga de operadores; Herança múltipla de classes e Função e/ou procedure.

Principias características:

Cargabe Collection (gerenciamento dinâmico da memória); Java Virtual Machine (JVM); Código seguro.

O que é o Java?

Java é:Uma linguagem de programação;Um ambiente de desenvolvimento;Um ambiente de aplicação;Java é o resultado de uma busca por uma plataforma deprogramação que pudesse fornecer segurança, portabilidade(independência de sistema operacional) e escalabilidade.Os primeiros objetivos alcançados com o desenvolvimento destanova linguagem foram:

trodução a linguagem Java

Page 8: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 8/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Diferenças entre o Java e o C++

Java é sintática e morfologicamente muito parecido com a linguagem C++,entretanto, existem diferenças:Inexistência de aritméticas de ponteiros (ponteiros são apenas referências); Arrays são objetos;Strings são objetos;Gerenciamento automático de alocação e deslocação de memória (GarbageCollection);Não há sobrecarga de operadores;

Não há métodos com lista de argumentos de tamanho variável;Não existem diretivas de pré-compilação (#define, #ifde);Não existem Templates;Não existe Herança Múltiplas com classes, apenas com interfaces;Não existem funções, mas apenas métodos de classes;Necessita de ambiente de execução (runtime), ou seja, a JVM (Java VirtualMachine).

trodução a linguagem Java

 public class Hello{ 

 public static void main (String arg []){ 

System.out.println("Hello” + “ \n”);

 } }

#include <iostream.h>

int main (){ cout << “Hello \n" ;return 0;

 }

Java

C++

Veja abaixo um exemplo de um simples programa escrito em Java e em C++.

Page 9: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 9/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Portabilidade: “A independência de plataforma”

O Java é independente de plataforma. Isto significa que o desenvolvedor não terá quese preocupar com particularidades do sistema operacional ou do hardware, focando o

seu esforço no código em si. Mas o que isto realmente significa?

Na maioria das linguagens é preciso gerar uma versão para cada plataforma que se

deseja utilizar, exigindo em muitos casos, alterações também no código fonte. Em Java

o mesmo programa pode ser executado em diferentes plataformas. Veja o exemplo

abaixo:

?

O mesmo código fonte

trodução a linguagem Java

public class HelloWorldApp{public static void main (String arg [])

{System.out.println("Hello World!");}

}

Compilação:

> javac Hello.java

Execução:

> java Hello

Sistema Operacional eProcessadores diferentes

HelloWorld

HelloWorld Hello

World

" wri te once, run anywhere." 

Page 10: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 10/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Gerando Aplicações

Para criarmos aplicações ou programas na linguagem Java temos que executar osalguns passos: Edição, Compilação e Interpretação.

 A Edição é a criação do programa, que também é chamado de código fonte.

Com a compilação é gerado um código intermediário chamado Bytecode, que é umcódigo independente de plataforma.

Na Interpretação, a máquina virtual Java ou JVM, analisa e executa cada instrução docódigo Bytecode.

Na linguagem Java a compilação ocorre apenas uma vez e a interpretação ocorre a cada

vez que o programa é executado.

Javac myProgram.java

Java myProgram

1

2

3

trodução a linguagem Java

Page 11: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 11/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Instalação do ambiente de desenvolvimento (JDK)

O Java Development Kid (JDK) é conjunto de ferramentas para compilar, depurar,executar e documentar um programa escrito em java.

 As versões para Solaris, Linux e Windows podem ser obtidas no endereço:www.java.sun.com (Página oficial da linguagem).

Procedimentos de Instalação:

Para instalar o JDK, basta executar o programa de instalação e seguir as instruções.Caso o JDK esteja compactado será necessário descompactá-lo primeiro, os formatos

mais populares de arquivos compactados são zip (para Windows) e tar (para Unix). Após a instalação é necessário configurar o ambiente:

No windows: Acrescentar no Autoexec.bat:

SET JAVA_HOME=C:\JDK1.3PATH=%JAVA_HOME%\bin

 A variável JAVA_HOME deve ter o mesmo nome do diretório onde foi instalado o JDK.

O próximo passo é instalar a documentação, ela geralmente está em arquivocompactado, ao descompacta-la selecionar a unidade de disco, por exemplo: “C:\”,pois, o diretório padrão da documentação (docs) já está definido no arquivocompactado. Caso você tenha instalado o JDK em outro diretório que não seja opadrão, você deverá especificar no momento da instalação. A documentação estáno formato HTML, o arquivo principal o index.html .

trodução a linguagem Java

Classpath O Java defini uma variável de ambiente chamada ClassPath. O Java procura pelasclasses e pacotes através desta variável. Ela deve estar no Autoxecec.

Veja um exemplo: Set c lasspath=,;c:\JDK1.3;c:\MeusPacotes 

Page 12: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 12/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Instalação do ambiente de desenvolvimento (JDK)

documentação

bin:

Onde estão todos os arquivos necessários para compilar (javac), depurar (jdb) eexecutar (java).

demo:Onde estão os arquivos de demonstração e exemplos da linguagem Java.

docs:

Onde está a documentação do ambiente da Linguagem Java no formato HTML

include:

Onde estão os arquivos escritos em linguagem C, os “header”, que são usados na

integração de Java e a Linguagem C.

Include-old:

Onde estão os arquivos escrito em linguagem C, os “header”, entretanto, os arquivos

são de versão mais antiga.

 jre:

 Ambiente de execução do Java necessário para distribuir a aplicação aos clientes.

lib:

Onde estão as bibliotecas Java, também chamadas de APIs. A extensão dos arquivosé .jar.

Resumo:

 Após a instalação, você deverá ter uma estrutura de diretórios como aparece nafigura:

trodução a linguagem Java

Page 13: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 13/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Instalação do ambiente de desenvolvimento (JDK)

 A figura demonstra uma visão do pacote de desenvolvimento JDK e também doambiente de execução (JRE). Ambos são necessários para desenvolver uma aplicação.Para os clientes, os usuários finais, precisam apenas do ambiente de execução JRE. Aplicativos como os Applets executam através do Browser (Internet Explorer ouNetscape) geralmente a VM que está embutida nestes navegadores.

Ambiente para os desenvolvedores

Ambiente necessário nosClientes (usuários finais)

Sistema Operacional

trodução a linguagem Java

Page 14: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 14/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

O Compilador javac

Argumento Descrição

-classpath  path Localização das classes. Sobrepõe a variável de ambienteClasspath.

-d dir  Determina o caminho onde as classes compiladas sãoarmazenadas

-deprecation Faz a compilação de código em desuso, geralmente de versõesanteriores e faz aviso de advertência

-g Gera tabelas de "debugging" que serão usadas pelo pelodeupador JDB.

-nowarm Desabilita as mensagens de advertência

-verbose Exibe informações adicionais sobre a compilação

-O Faz otimização do código

-depend Faz a compilação de todos os arquivos que dependem do arquivoque está sendo compilado. Normalmente somente é compilado o

arquivo fonte mais as classes que este invoca.

Sintaxe: javac [opções] NomedoArquivo.java

Veja abaixo a lista dos principais argumentos:

Exemplos:

> javac Hello.java

> javac -d . Hello.java

> javac -deprecation Hello.java

> javac -O -deprecation -verbose Hello.java

> javac -O Hello.java

trodução a linguagem Java

Page 15: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 15/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

O Interpretador java

Argumento Descrição

-classpath path Localização das classes. Sobrepõe a variável de ambiente Classpath.

-help Exibe a lista de opções disponíveis

-version Exibe a versão do interpretador  

-debug Inicia o interpretador no modo de "debug", geralmente em conjuntocom JDB.

-D propriedade=valor 

Possibilita redefinição de valores de propriedades. Pode ser usadovárias vezes.

-jar Indica o nome do arquivo (com extensão .jar) que contém a classe a ser  executada.

-X Exibe a lista de opções não padronizadas do interpretador  

-v ou -verbose Exibe informações extras sobre a execução, tais como, mensagensindicando que uma classe está sendo carregada e etc

Lista deArgumentos

Define a lista de argumentos que será enviada a aplicação

Sintaxe: java [opções] NomedoArquivo [lista de Argumentos] 

Veja abaixo a lista das principais opções:

Alguns Exemplos:

> java Hello

> javac -version

> java -D nome=“Meu Nome” Hello

> java -verbose Hello

> javac Hello MeuNome

trodução a linguagem Java

Page 16: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 16/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Java Virtual Machine

 A JVM é parte do ambiente de "runtime" Java e é a responsável pelainterpretação dos bytecodes (programa compilado em java), ou seja, a execuçãodo código.

 A JVM consiste em conjunto de instruções, conjunto de registradores, a pilha(stack) , garbage-collected heap e a área de memória (armazenamento demétodos).

Funcões da JVM:

Carregar de forma segura todas as classes do programa (protegendo contraataques premeditados, por exemplo, Cavalos de Tróia) Verificar se os bytecodes aderem às especificações da JVM e se não violam aintegridade e segurança da plataforma. Interpretar o código.

Em tempo de execução estes bytecodes são carregados, são verificados atravésdo Bytecode Verifier (uma espécie de vigilante) e somente depois de verificadosserão executados.

JVM

ProgramaCompilado

ProgramaFonte

 Javac <programafonte.java>

Class Loader

Byte Code Verifier

Runtime

 Java <programafonte>

trodução a linguagem Java

Page 17: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 17/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Coletor de Lixo:

 A linguagem Java tem alocação dinâmica de memória em tempo de execução.No C e C++ (e em outras linguagens) o programa desenvolvido é responsável pelaalocação e deslocamento da memória. Isto geralmente provoca alguns problemas.Durante o ciclo de execução do programa, o Java verifica se as variáveis dememória estão sendo utilizadas, caso não estejam o Java libera automaticamenteesta área para o uso.

Garbage Collection

trodução a linguagem Java

Page 18: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 18/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Escrevendo um pequeno programa

1 - Abra o editor de programas e crie o seguinte programa.

 public class Hello{ 

 public static void main (String arg []){ String s = "world";

System.out.println("Hello " + s);

 } }

2 - Salvar como: Hello.java

 Após terminar:

3 - Compile o programa com o seguinte comando: javac Hello.java

4 - Para executar digite o comando: java Hello

Está pronto o primeiro programa em Java. Fácil!

trodução a linguagem Java

Page 19: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 19/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Escrevendo um pequeno programa

 public class Hello{ 

 public static void main (String arg []){ String s = "world";

System.out.println("Hello " + s); }

 }

modificador 

 Nome da classe

Método

 principal

Classe

(corresponde

ao arquivoque será gravado

do disco)

Classe java

método

Lista de argumentos

(o tipo em questão é String

Tipo de dado

Variável

Roteiro para criar um programa em Java:

1 - Fazer a assinatura da classe, isto equivale a declaração:

public class NomedaClasse { 2 - Declarar as variáveis, também chamadas de fields:

int i =0 ;Neste caso não temos nenhum variável de classe ou field 

3 - Fazer a assinatura dos métodos: public static void main (String args[]){ 

4 - Escrever o corpo do método:String s= “world”;

System.out.println(“Hello” + s);

5 - Para encerrar o método, note que o corpo do método está entre chaves “{...}“. }6 - Para encerrar a classe, segue o mesmo princípio do método. Use chaves “}“.

7 - Salve o arquivo. Observe que o nome do arquivo deve ser o mesmo nome daclasse.

Hello.java8 - Compilar o programa. Sintaxe: javac <NomedaClasse.java>.

Javac Hello.java9 - Agora execute o arquivo. Sintaxe: java <NomedaClasse>

Java Hello

trodução a linguagem Java

Atributo da

Classe System

Dissecando o código

Page 20: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 20/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

trodução a linguagem Java

Escrevendo um pequeno programa

Não deu certo ???

Veja se este pequeno “Checklist” pode ajudar:

1 - Problemas com compilação: Veja o Classpath;2 - Se o compilador não consegue encontrar o arquivo:

Verifique se o nome da classe e o nome do arquivo gravado em

disco são correspondentes, lembre-se que o java faz distinçãoentre maiúscula e minúscula;

3 - Erros de sintaxes:Verifique se os pares chaves estão corretos, ou seja, deve ter um par para classe,outro para cada método e para cada bloco de declarações.Verifique se não há instruções erradas, como string quando ocorreto é String (é uma classe), system ao invés de SystemVerifique se há ponto e virgula “;” no final de cada instrução.

Page 21: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 21/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Page 22: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 22/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

undamentos da Linguagem Java

Estrutura da Linguagem

Comentários:

Temos três tipos permitidos de comentários nos programas feitos em Java:• // comentário de uma única linha• /* comentário de uma ou mais linhas */• /** comentário de documentação */ (este tipo de comentário é usado pelo utilitárioJavadoc, que é responsável por gerar documentação do código Java)

Exemplo Descrição

int x=10; // valor de x Comentário de linha/*A variável x é integer 

*/int x;

Exemplo onde o comentário usa mais que uma linha.Todo o texto entre "/*" e "*/", inclusive, são ignorados pelocompilador 

/**x -- um valor inteiro representaa coordenada x*/int x;

Todo o texto entre o "/**" e "*/", inclusive, são ignorados pelo compilador mas serão usados pelo utilitário javadoc.

Ponto e vírgula, Blocos e o espaço em branco:

• No Java, os comandos são terminados com o sinal de ponto e vírgula (;)• Um bloco tem início e fim representados pelo uso das chaves { };• O uso do espaço em branco permite uma melhor visualização dos comandos e emconseqüência facilita a sua manutenção.Exemplo:

Bloco da Classe

 public class TestEstrutura{  public void sayHello(String hello){ 

System.out.println("Hello "); }

 }

Bloco do MétodoPonto e virgula

Page 23: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 23/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

undamentos da Linguagem Java

Estrutura da Linguagem

Identificadores:Que são identificadores ?Identificadores são nomes que damos as classes, aos métodos e as variáveis.

Regra: Um identificador deverá ser inicializado com uma letra, sublinhado ( _ ), ousinal de cifrão ($). Em Java existe uma diferença entre letras maiúsculas eminúsculas. Veja alguns exemplos:Classe é diferente de CLASSE

classe é diferente de Classe

Exemplos de identificadores::

 Alguns identificadores válidos:- identifier - userName - User_name - _sys_var1 - - $changeExemplo: public class PessoaFisica 

Veja alguns inválidos:- 1nome - \TestClass - /metodoValidar 

 public class Hello 

{   public static void main (String arg []){ String s = "world";

System.out.println("Hello " + s); }

 }

Identificador 

(nome da classe)

Método

 principalClasse

Identificador 

(nome do método)

Veja que primeiro foi definidoo tipo de dado,String, e depois onome do Identificado(nome do variável)

--------------------------- Compiler Output ---------------------------TestIdentificador.java:3: illegal start of type

private 1nome;

Veja o código abaixo onde são apontados os identificadores

Page 24: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 24/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 Palavras Reservadas

abstract do implements private throwboolean double import protected throwsbreak else instanceof public transientbyte extends int return truecase false interface short trycatch final long static void

char finally native super volatileclass float new switch whilecontinue for null synchronizeddefault if package this

Palavras Reservadas

undamentos da Linguagem Java

 As Palavras Reservadas, quer dizer que nenhuma das palavras da lista acima podem serusadas como identificadores, pois, todas elas foram reservadas para a Linguagem Java.Veja o exemplo abaixo:

 public class TestPalavraReservada

{

 private int return =1;

 public void default(String hello)

{

System.out.println("Hello ");

}

}

Este programa provocará erros ao ser compilado:

--------------------------- Compiler Output ---------------------------TestEstrutura.java:3: <identifier> expected

private int return =1;^

TestEstrutura.java:6: <identifier> expectedpublic void default(String hello)

Palavra reservada

Palavra reservada

Page 25: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 25/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Tipos de Dados

Existem tip os básico s ou pr imi t ivos e os tip o de referência .

Sintaxe padrão:

<Tipo de dado> <nome da variável>; ou<Tipo de dado> <nome da variável> = valor da variável;

<Tipo de dado> <nome da variável> = valor da variável, <nome da variável> =valor da variável... ;

Tipo Lógico - boolean: true e false

Exemplo boolean fim = true;

Tipo Textual - char e String (String é uma classe)Um caracter simples usa a representação do tipo char. Java usa o sistema decodificação Unicode (Veja Apêndice B). Neste sistema o tipo char representa umcaracter de 16-bit.O literal do tipo char pode ser representado com o uso do („ „). Exemplos:

a = „b‟;

„\n‟ – nova linha

„\r‟ – enter „\u????‟ – especifica um caracter Unicode o qual é representado naforma Hexadecimal.

„\t‟ – tabulação„\\‟ - \„\” ”‟ - “”

String (String é uma classe)O tipo String é um tipo referência que é usado para representar uma seqüência decaracteres.Exemplo:

Str ing s = “Isto é uma string”, s1;

Inteiros – byte, short, int e long

Possuem somente a parte inteira, ou seja, não suportam casas decimais.Exemplos:

int i1 = 10, int i2 = 11;byte b = 1;

Código de escape

undamentos da Linguagem Java

Page 26: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 26/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Ponto FlutuanteSão os tipos que têm suporte às casas decimais e maior precisão numérica.Existem dois tipos em Java: o float e o double.Veja alguns exemplos:3.14 Um ponto flutuante simples;6.02E23 Um valor de ponto flutuante largo;2.718F Um valor de ponto flutuante simples;123.4E+306D Um valor de ponto flutuante usando o tipo double.

Exemplos de declarações:float f = 3.1;1

float div = 2.95F;double d1 = 6.35, d2 = 6.36, d3 = 6.37;double pi = 3.14D

Regra:

Os tipos float e double quando aparecem no mesmo programa é necessárioidentificá-los, para que não comprometa a precisão numérica:float f = 3.1F;

double d = 6.35;Uma vez não identificado, ao tentar compilar o programa, será emitida umamensagem de erro.

Tamanho Tipo Faixa

8 bits byte -128 a 128

16 bits short -32.768 a 32.767

32 bits int -2.147.483.648 a 2.147.483.647

64 bits long 9.223.372.036.854.775.808 a

9.223.372.036.854.775.807

Tamanho Tipo Faixa

32 bits IEEE 754-1985 Float 1,4E-45 a 3,4E+38

64 bits IEEE 754-1985 Double 4,9E-324 a 1,7E+308

undamentos da Linguagem Java

Tipos de Dados

Precisão

7 dígitos

15 dígitos

Nota (1) Toda vez que uma variável tipo float não tem a literal F, esta variável internamente é tratada como se fosse um inteiro

Page 27: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 27/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Inicialização de variáveis

undamentos da Linguagem Java

Não é permitido o uso de variáveis indefinidas ou não inicializadas.Exemplo:

int i;int a = 2;int c = i + a;

Neste caso ocorre erro, pois, o valor de i está indefinido.

 As variáveis definidas dentro do método são chamadas de variáveis automáticas,locais ou temporárias e devem ser inicializadas antes do uso.

Page 28: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 28/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Operadores

Os operadores na linguagem Java, são muito similares ao estilo e funcionalidadede outras linguagens, como por exemplo o C e o C++.

Exemplos:int a = 1;i n t b = a + 1 ;i n t c = b - 1 ;i n t d = a * b ;short s1 = -1;short s2 = 10;short s1++;i n t c = 4 % 3 ;

Operadores Lógicos:

> Maior que

< Menor que

<= Menor que ou igual

>= Maior que ou igual

== Igual

!= Diferente

Exemplos:

i > 10;x == y;“Test” != “teste”

!yx | | y

Operadores Matemáticos:

+ Adição

- Subtração

* Multiplicação

/ Divisão

++ Incremento

-- Decremento

% Módulo-  Negativo (unário)

+ Positivo (unário)

!  Not (negação) && And || OR 

undamentos da Linguagem Java

Page 29: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 29/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Outros Operadores:

instanceof  Faz a comparação do objeto que está “instanciado” no objeto

Exemplos:

instanceof:

Objeto obj = new String(“Teste”);if (obj instanceof String) System.out.println(“verdadeiro”)

new:

Hello hello = new Hello();

Precedências de Operadores:

. [ ] ( )++ - ! ~ instanceof new (type) expressão - O type é coerção de tipo* / %+ -<< >> >>>

Exemplo:

Com a precedência definida pelo Java

int c = 4 / 2 + 4;Neste caso, primeiro ocorrerá a divisão e após a soma.

Com a precedência definida pelo desenvolvedor int a = 4 / (2 + 4);

Já neste caso, primeiro ocorrerá a soma e depois a divisão.

new Este operador é usado para criar novas “instance” de classes

undamentos da Linguagem Java

Operadores

Page 30: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 30/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Operador Nome Descrição& AND sobre bits Os bits no resultado são configurados como 1 se os bits

correspondentes nos dois operandos forem ambos 1| OR inclusive sobre

 bitsOs bits no resultado são configurados como 1 se pelo menos umdos bits correspondentes nos dois operandos for 1

^ OR exclusivo sobre bits

Os bits no resultado são configurados como 1 se somente um dos bits correspondentes nos dois operandos for 1

<< Deslocamento paraesquerda

Desloca os bits do primeiro operando para a esquerda pelo númerode bits especificado pelo segundo operando; preenche a partir dadireita com bits 0.

>> Deslocamento para

direita com extensãode sinal

Desloca os bits do primeiro operando para a direita pelo número

de bits especificado pelo segundo operando. Se o primeirooperando for negativo, preenche com 1s a partir da esquerda; casocontrário, preenche com 0s a partir da esquerda.

>>> Deslocamento paradireita com extensãode zero

Desloca os bits do primeiro operando para a direita pelo númerode bits especificado pelo segundo operando; 0s são inseridos a partir da esquerda

~  Complemento de um Todos os bits são configurados como 1 e todo os bits sãoconfigurados como 0.

Java fornece extensa capacidade de manipulação de bits. Todos os dados sãorepresentados internamente como uma seqüência de bits. Cada bit pode assumir ovalor de 0 ou 1. No geral uma seqüência de bits formam um byte, que é a unidade dearmazenamento padrão, para uma variável tipo byte. Os tipos de dados sãoarmazenados em quantidade maiores que byte. Os operadores sobre os bits sãoutilizados para manipular os bits de operandos integrais (isto é aqueles do tipo byte,char, short, int e long).

Manipulação de bits e os operadores sobre bits

Exemplos de manipulação do bits:

Right Shift (>>)128 >> 1 <=> 128/21 = 64256 >> 4 <=> 256/24 = 16

-256 >> 1 <=> -256/24= -16

Left Shift (<<)128 << 1 <=> 128 * 21 = 25616 << 2 <=> 16 * 22 = 64

undamentos da Linguagem Java

Operadores

Operadores Binários:

Page 31: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 31/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Podemos realizar operações de Pré e Pós incremento e de Pré e Pós decremento.Veja os exemplos:

Pré-incremento:

Pré-incremento = ++a; Exemplo: a = 10, b = 11, c = a + ++b => c = 22

Pós-incremento = a++; Exemplo: a = 10, b = 11, c = a + b++ => c = 21

Pós-decremento:

Pré-decremento = --x; Exemplo: x = 1, y = 1, z = x + --b => z = 1

Pós-decremento = x--; Exemplo: x = 1, y = 1, z = x - b-- => z = 0

Observe que isto ocorre devido a precedência de operadores. Primeiro é feito aatribuição e depois o incremento.

Operador Exemplo Equivalência

++ x++, ++x x = x + 1

-- x--, --x x = x - 1

+= x += y x = x + y

-= x -= y x = x - y

*= x *= y x = x * y

/= x /= y x = x / y

&= x &= y x = x & y

|= x |= y x = x | y

^= x ^= y x = x ^ y

%= x %= y x = x % y

Lista deExemplos

undamentos da Linguagem Java

Operadores

Exemplo:

public class TesteOperador {

public static void main(String args[]) {int x = 1;int y = 1;int z = x - y--;

System.out.println("o valor z: " + z);}

}

Page 32: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 32/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class TestString { public static void main(String arg[])

{ String s1 = "Hello";String s2 = new String("hello");

 //equal s if (s1.equals(s2))

{ System.out.println("São iguais"); }else

{ System.out.println("São Diferentes"); } //equal sIgnor eCase 

System.out.println("equalsIgnoreCase");if (s1.equalsIgnoreCase(s2))

{ System.out.println("São iguais"); }else

{ System.out.println("São Diferentes"); }

//Alguns métodos//indexOf, charAt, substring

String frase = "Vovo viu a uva";

System.out.println("Posição: " + frase.indexOf('a'));

System.out.println("Nova frase: " + frase.substring(0,4));

System.out.println("A letra é: " + frase.charAt(5));

 //concat String nome = "James ”; String sobrenome = "Gosling ";

String nomeCompleto = nome.concat(sobrenome);System.out.println("O nome é: " + nomeCompleto);

 }

 }

Exemplo:

String

A classe StringObjetos String são sequências de caracteres UnicodeExemplo: String nome = “Meu nome” 

Principais métodos:

Substituição: replace,Busca: endWiths, startsWith, indexOf e lastIndexOf Comparações: equals, equalsIgnoreCase e compareToOutras: substring, toLowerCase, toUpperCase, trim, charAt e lengthConcatenação: concat e operador +Exemplo: O operador + é utilizado para concatenar objetos do tipo String,

 produzindo uma nova String:String PrimeiroNome = “Antonio”;

String SegundoNome = “Carlos”;

String Nome = PrimeiroNome + SegundoNome

undamentos da Linguagem Java

Page 33: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 33/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class TestStringBuffer 

{

 public static void main(String arg[])

{

//new instance

StringBuffer b1 = new StringBuffer();StringBuffer b2, b3;b2 = new StringBuffer(25);b3 = new StringBuffer("Teste, ");/*para exibir o conteúdo é necessário

usar o método toString */System.out.println("b1:" + b1.toString() );

System.out.println("b2:" + b2.toString() );

System.out.println("b3:" + b3.toString() );

 b3.append("vamos testar novamente");

System.out.println("b3:" + b3.toString() );

 b3.insert(0, "A x B ");

System.out.println("b3:" + b3.toString() );

 b3.delete(0,4);

System.out.println("b3:" + b3.toString() );

 b2.append("Teste b2");

System.out.println("b2 Capacidade: " + b2.capacity());

System.out.println("b2 Tamanho: " + b2.length());

 b2.append(b3);

System.out.println("b2: " + b2.toString() );

System.out.println("b2 tamanho: " + b2.length() );

System.out.println("b2 invertida: " + b2.reverse() );

}

}

Exemplo:

Objetos StringBuffer são uma seqüência mutável de caracteres UnicodeConstrutores: StringBuffer  – Cria um buffer vazio

StringBuffer(int capacidade) – Cria um buffer com a capacidade especificada

StringBuffer(String initialstring) – Cria um buffer contendo uma string informada.Principais métodos: append, insert, delete, ...

undamentos da Linguagem Java

StringBuffer 

Várias formas

de declaração

Usando os métodos

 para manipular 

o objeto StringBuffer 

Page 34: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 34/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Casting (coerção de tipos)

byte

int

charshort

long

float

double

ConversãoExplícita

ConversãoImplícita

Java faz a promoção de tipos para garantir que os valores sejam suportados pelasfaixas, contudo, a linguagem Java não suporta conversões arbitrárias de tipos devariáveis.Devemos explicitar a conversão entre tipos de variáveis. Veja o exemplo abaixo:

 public class TestCasting

{

 public static void main(String args[])

{ byte a = 1;

 byte b = 3;

byte c = a + b; /* Linha errad, pois a operação adição

 sofre casting implicita */ //Correção o casting explicito

byte c = (byte) (a + b);System.out.println(c);

}

}

Casting implícitoPor força do operador 

matemático o Java promoveu a

valor resultante de a + b paraum valor inteiro, o que provoca

estouro da faixa de byte, e por 

sua vez provoca um erro

Casting explícitoapós a soma de a + b, o valor 

da soma é convertido para byte

Hierarquia de conversão:

undamentos da Linguagem Java

Page 35: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 35/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Objetos

Os objetos não são convertidos, mas sim suas referências. Uma referência de umaclasse qualquer pode ser sempre usada para fazer referência a um objeto de uma desuas subclasses. Quando isso acontece, a referência somente poderá ser utilizadapara acesso aos membros da classe, ficando os membros da subclasse“inacessíveis”, embora com seus valores mantidos. A conversão desse tipo (de

subclasse para classe) é chamada de implícita.

Veja os exemplos abaixo:

import java.awt.*;

 public class CastObjeto

{

 public CastObjeto()

{

Window janela = new Frame();

 janela.pack();

 janela.setTitle("Titulo da Janela");...

}

}

Conversão ilegal, pois, o

objeto janela não “enxerga”os métodos de Frame,

embora o método exista,

 pois o objeto

é do tipo Frame

Window

Frame

SuperClasse

SubClasse

Hierarquia de classes:

undamentos da Linguagem Java

Casting (coerção de tipos)

Page 36: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 36/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Casting ( Conversão de tipos ) Objetos

import java.awt.*;

 public class CastObjeto

{

 public CastObjeto()

{

Window janela =new Frame();

Frame janela1 = (Frame) janela; janela1.setTitle("Titulo da Janela");

}

}

Conversão legal, pois, a

 janela é um objeto do

tipo Frame e está sendoatribuído a uma referência

do mesmo tipo

 A conversão contrária, ou seja, de referência a classe para referência a subclasse, épossível. Entretanto, essa conversão somente será válida se a referência à subclassepassar a apontar para um objeto compatível com ela.

SuperClasse

SubClasseConversãoimplícita

Conversãoexplícita

 As Interfaces seguem a mesma regra das classes.

undamentos da Linguagem Java

Casting (coerção de tipos)

Page 37: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 37/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Casting Exemplo:

 public class TestCasting

{

 public static void main(String args[])

{

//Exemplo 1

 byte a = 1;

 byte b = 3;

/*Linha errada, pois a operação adição

sofre casting implicita */

//byte c = i + i;

//Correção o casting explicito

byte c = (byte) (a + b);

System.out.println(c);

//Exemplo 2

int ia = 1;long lb = 3;

/*

Perda de Precisão - causa erro

*/

//int ic = ia + lb; //linha errada -> Casting

//Correção o casting explicito

int ic = ia + (int) lb;System.out.println(ic);

}}

O resultante da soma foi promovido

para tipo int, quando atribuímos a

variável , que é do tipo byte, a

operação provoca erro, pois, a faixa

de byte é menor que a faixa de int.

Uma vez aplicado o casting a

operação de soma é realizado e

depois é convertida para o type byte.

Casting explícito:

(byte) (a + b)

Casting implícito: (a + b)

undamentos da Linguagem Java

Casting (coerção de tipos)

Page 38: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 38/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Fluxo de Controle

Java como qualquer outra linguagem de programação, suporta instruções e laçospara definir o fluxo de controle. Primeiro vamos discutir as instruções condicionaise depois as instruções de laço.

 Antes, porém, vamos entender a necessidade dos blocos. Um bloco é o conjuntode instruções delimitadas por chaves “{... }”. Exemplo:

{

int i = 10;

System.out.println(“Hello”);i++

}

 bloco

Os blocos povoam métodos, instruções condicionais, laços e etc, ou seja,podemos encontrá-los sempre dentro de um programa Java.

Construções condicionais:

if (<expressão boolean> )

<declarações>...

else

<declarações>...

switch (<expressão> ) {

case <expressao char-int> :

<declarações>...

break;

case <expressao char-int> :

<declarações>...

default:

<declarações>...

}

(<expressão boolean> ) ? <expressão if-true> 

: <expressão if-false> 

undamentos da Linguagem Java

Page 39: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 39/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução if 

Sintaxes: if (expressão boolean) instruçãoExemplo: if (x>y) System.out.println(x);

if (expressão boolean) { //Bloco de instruções }Exemplo: if (x>y) {

System.out.println(x);y++;

}

if (expressão boolean){ //Bloco de instruções }

else{ //Bloco de instruções }

Exemplo: if (x>y) {System.out.println(x);y++;}

else {System.out.println(y);x++;}

if (expressão boolean){ //Bloco de instruções }

else if (expressão boolean){ //Bloco de instruções }

else if (expressão boolean){ //Bloco de instruções }

else if (expressão boolean){ //Bloco de instruções }

else{ //Bloco de instruções }

Mais de uma instrução

é usado a estrutura de

 bloco

undamentos da Linguagem Java

Fluxo de Controle

Page 40: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 40/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução if 

Sintaxes: (con tinuação) Exemplo: if (x>y) {

System.out.println(x);y++;}

else if (x<y) {System.out.println(y);

x++;}else {

System.out.println(y);System.out.println(x);

}

Notamos que a instrução if pode ser utilizada de várias formas, ela pode ser aplicada de acordo com o contexto.O exemplo abaixo demonstra a estrutura mais popular da instrução if, ou seja, if (expressão lógica) then {...} else {... }. Veja a lógica e também a implementaçãodo código:

saldo > 0

status = Negativo

status = Positivosim

não

Lógica

if (saldo > 0){status = “Positivo”;

}else{status = “Negativo”;

}

Código

undamentos da Linguagem Java

Fluxo de Controle

if (saldo > 0)status = “Positivo”;

elsestatus = “Negativo”;

OU

Page 41: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 41/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução if 

Neste exemplo apresentaremos a instrução if com múltiplas opções. Veja alógica e também a implementação da do código:

saldo médio

> 5000

sim

não

Lógica

 public class ifCompostoExemplo

{

 public static void main(String args[])

{

int limitecheque;int saldomedio = 15000;

if (saldomedio > 5000)

{

limitecheque = 1000;

}

else if (saldomedio > 3000 &&

saldomedio <= 5000)

{

limitecheque = 800;

}

else if (saldomedio > 2000 &&saldomedio <= 3000)

{

limitecheque = 600;

}

else if (saldomedio > 1000 &&

saldomedio <= 2000)

{

limitecheque = 400;

}

else

{ limitecheque = 0;

}

System.out.println("Limite cheque

especial..." + limitecheque);

}

}

Código

saldo médio >3000 and <=5000

saldo médio >2000 and <= 3000

Limite cheque

=1000

Limite cheque=800

Limite cheque=600

sim

sim

não

Limite cheque=0

não

saldo médio >1000 and <= 2000

sim Limite cheque=400

não

undamentos da Linguagem Java

Fluxo de Controle

Page 42: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 42/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução switch

Switch é uma alternativa para seleção múltipla de escolha, entretanto, ela temalgumas diferenças da estrutura i f - i f else . Como, por exemplo, o tipo de dadoválido na expressão é somente do tipo char e os tipos inteiros (int, byte, short,long).

Sintaxes:

switch (expressao char-integer){

case expressao1:// instruções

case expressao2:// instruções

case expressao3:// instruções

default:

// instruções}

Exemplo:

 public class switchSimplesExemplo

{

 public static void main(String args[])

{

char opcao = 'a';

String selecao = "";

switch (opcao){

case 'a':

selecao += „a‟;case 'b':

selecao += 'b';case 'c':

selecao += 'c';default:

selecao += "d";}

System.out.println(selecao);

}}

Será impresso “abcd”

 Após a impressão do valor, achamos mais uma diferença em relação ao i f - i f  else , a instrução Switch executa todas as opções após uma opção válida. Por exemplo, se valor inicial da variável opção for igual „c‟, teremos o seguinte

resultado para a variável selecao = „cd‟.

A instrução switch

undamentos da Linguagem Java

Fluxo de Controle

Page 43: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 43/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

ndamentos da Linguagm Java

 A instrução switch.

Para que a instrução switch execute apenas uma opção, desprezando as demais énecessário incluirmos a instrução break. Bem como o próprio nome da instruçãosugere este sai da instrução switch.

Sintaxes:

switch (expressao char-integer)

{ case expressao1:// instruçõesbreak;

case expressao2:// instruções

breakcase expressao3:

// instruçõesbreak

default:// instruções

}

 public class switchBreakExemplo

{

 public static void main(String args[]){

char opcao = 'b';

String selecao = "";

switch (opcao){

case 'a':selecao += 'a';break;

case 'b':selecao += 'b';break;

case 'c':selecao += 'c';break;

default:selecao += "d";

}

System.out.println(selecao);}

}

Será impresso “b”

A instrução switch com

a instrução break 

Note que tanto a instrução default quanto a break são opcionais, depende dalógica a utilizada.

undamentos da Linguagem Java

Fluxo de Controle

Page 44: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 44/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução switch.

Neste exemplo apresentaremos a instrução switch e a instrução break com

múltiplas opções. Veja a lógica e também a implementação do código:

case 10sim

não

Lógica

 public class switchCompostoExemplo

{

 public static void main(String args[]){

String avaliacao ="";

int nota = 8;

switch (nota){

case 10:avaliacao = "Excelente";break;

case 9:avaliacao = "Ótimo";break;

case 8:avaliacao = "Bom";break;

case 7:avaliacao = "Satisfatório";break;

default:

avaliacao = "Regular";}System.out.println("Avaliação: "

+ avaliacao);

}

}

Código

case 9

case 8

avaliacao =“Excelente”

avaliacao =“Ótimo”

avaliacao =“Ótimo”

sim

sim

não

avaliacao =“Regular”

não

case 7sim avaliacao =

“Ótimo”

não

undamentos da Linguagem Java

Fluxo de Controle

Page 45: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 45/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução switch.

Neste exemplo apresentaremos a instrução switch sem o break com múltiplas

opções. Veja a diferença:

case Ssim

não

Lógica

 public class switchSemBreakExemplo

{ public static void main(String args[])

{

char opcao = 'B';

String selecao = "";

switch (opcao){

case 'S': //Super luxoselecao += " Ar condicionado +";

case 'L': //Luxoselecao += " Direção hidráulica +";

case 'B': //Básicoselecao += " Trio Elétrico +";

default:selecao += " Alarme";

}System.out.println(selecao);

}

}

Código

Ar condicionado

sim

sim

não

Alarme

não

case L Direção hidráulica

case S Trio Elétrico

undamentos da Linguagem Java

Fluxo de Controle

Page 46: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 46/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Operador Ternário

E por fim o operador ternário, Java, oferece uma maneira simples de avaliar umaexpressão lógica e executar uma das duas expressões baseadas no resultado.O operador condicional ternário (?:). É muito parecido com a instrução iif()presente em algumas linguagens, Visual Basic , por exemplo.Sintaxe:

(<expressão boolean>) ? <expressão true> : <expressão false>

ouvariável = (<expressão boolean>) ? <expressão true> : <expressão false>

saldo > 0

status = Negativo

status = Positivo

sim

não

Lógica

{...Status = (saldo > 0)?”Positivo”:“Negativo”;

...}

Código

Neste exemplo apresentaremos uma expressão condicional simples. Veja alógica e implementação do código. Faça uma comparação com a instrução if-else.

Lembre-se que podemos aninhar operadores e condições, pois, todos suportama recursividade.

undamentos da Linguagem Java

Fluxo de Controle

Page 47: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 47/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

LaçosO que são laços?

Laços são repetições de uma ou mais instruções até que uma condição sejasatisfeita. A linguagem Java tem dois tipos de laços: os finitos e os infinitos.Para os laços finitos a execução está atrelada a satisfação de uma condição, por exemplo:

Laços:

while (<boolean-expression>)<statements>...

do<statements>...while (<boolean-expression>);

for (<init-stmts>...; <boolean-expression>; <exprs>...)<statements>...

undamentos da Linguagem Java

Fluxo de Controle

Já os infinitos estes executarão sempre, independente de condição.

Se o valor da variável a não for igual10.

entãoincrementar um na variávelsenão

imprimir a variável valor 

Isto quer dizer que a instrução deincremento vai repetir dez vezes.

true a++

Em Java, temos três instruções que suportam laços ou “loops”. São elas:

while, do-while e for.

a = 10 a++

sim

não

Imprimir a

Page 48: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 48/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução while.

Ela executa uma instrução ou bloco de instruções, enquanto uma determinadacondição não for satisfeita. Ela faz a validação antes de executar as instruções.

Sintaxe:

while (expressao boolean)

instrução java

Exemplo:

 public class whileExemplo2

{ public static void main(String args[])

{

int d = 10;

while (d >= 0)System.out.println("Contagem Regressiva " + d--);

}

}

Este código será executado 10

vezes, ou seja até a condição

ser satisfeita

Sintaxe:

while (expressao boolean){

//Bloco}

Exemplo:

 public class whileExemplo

{

 public static void main(String args[])

{

int d = 1;

while (d<= 10){

System.out.println("7 x " + d + " = " + 7*d);d++;}

}

}

Este código produzirá a Tabuada do 7

 Neste exemplo o laço é finito, ou seja, irá

executar até a condição estar satisfeita

A instrução while

undamentos da Linguagem Java

Fluxo de Controle

Page 49: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 49/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução while.

Os exemplos abaixo demonstram como tornar um laço infinito usando a instruçãowhile, provavelmente isto não deverá acontecer, todavia, pode ser um pequeno errode lógica, inversão de valores ou uma condição que nunca será satisfeita.

Exemplo 1:

...

int d = 1;

while (d > 0)

{

System.out.println("7 x " + d + " = " + 7*d);

d++;

}

...

Exemplo 2:

...

while (true)

{

System.out.println(d++);

}

....

undamentos da Linguagem Java

Fluxo de Controle

Page 50: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 50/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução while.

O exemplo abaixo exibe a lógica e a implementação do código de um laço finitousando a instrução while.

undamentos da Linguagem Java

Fluxo de Controle

valor < 20Valor++

sim

não

Lógica

{...while(valor <20) valor++System.out.println(valor);...}

Código

Imprime valor

Sai do Laço

Page 51: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 51/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução do-while.

Ela tem uma pequena diferença da instrução while, enquanto a instrução whileverifica a expressão boolean (lógica) antes e somente depois executa a instruçãoou o bloco de instruções, a instrução do-while executa primeiro e depois verifica acondição.

Sintaxe:

doinstrução java

while(expressão boolean)

Exemplo:

 public class dowhileExemplo{

 public static void main(String args[])

{

long d=10;

doSystem.out.println(d++);while (d <=20);

}

}

Este código será executado 10

vezes, ou seja até que a

condição seja satisfeita

Sintaxe:

do {//Bloco

}while(expressão boolean)

Exemplo:

 public class dowhileExemplo2

{

 public static void main(String args[])

{

int d = 100;

do{System.out.println("Faixa " + Math.random()*d);d++;

}while (d <=110);

}

}

A instrução do-while

 primeiro executa

as instruções que

estão dentro de bloco

e depois verifica a

expressão boolean 

undamentos da Linguagem Java

Fluxo de Controle

Page 52: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 52/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução do-while.

O exemplo abaixo exibe a lógica e implementação do código de laço finito usando adeclaração do-while.

Valor < 20

Valor++

sim

não

Lógica

...

do{valor++;System.out.println(valor);

}while(valor <20)...

Código

Imprime valor

 Agora faça uma comparação entre a instrução while e do-while:

undamentos da Linguagem Java

Fluxo de Controle

valor < 20 Valor++

sim

não

Lógica

{...while(valor <20)valor++;System.out.println(valor);...}

Código

Imprime valor

Sai do Laço

Page 53: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 53/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução for 

 A instrução for é a mais popular entre as instruções de laço. A instrução for como asdemais instruções de laços repetem uma instrução ou bloco de instruções até quedeterminada condição seja satisfeita.

Sintaxes:

for(valor-inicial1, valor-inicial2 ; condição; valor de incremento/decremento)instrução java;

for(valor-inicial; condição; valor de incremento/decremento){

//Bloco de instruções}

for(;condição; valor de incremento);for(l;; valor de incremento);for();

onde:

valor-inicial - valor de inicio (esta variável que pode ser definida dentro do for oufora).Exemplo:int x;for( x=1;x<10;x++) instrução JavaouFor(int x=1;x<10;x++) instrução Java

condição: é expressão lógica, Exemplo:

For(x=1; x<10 ;x++) instrução Java

valor de incremento: valor que incrementaremos ou decrementaremosFor(x=1; x<10 ; x--) instrução Java

undamentos da Linguagem Java

Fluxo de Controle

Page 54: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 54/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A instrução for 

Veja abaixo alguns exemplos da implementação da instrução for:

 public class forExemplo

{

 public static void main(String args[])

{

int d;

for(d=180; d <=190; d++) System.out.println("Faixa 180-190 : " + Math.random()*d);

for(d=200; d <=210; d++)

{

System.out.println("Faixa 200-210: " + Math.random()*d);

}

int i;

for(d=220,i=10; d <=230; d++, i++)

{

System.out.println("Faixa 220-230 " + Math.random()*d);

System.out.println("Valor de i " + i);

}

for(d=230,i=20; d <=240 && i < 35; d++, i++)

{

System.out.println("Faixa 230-240 " + Math.random()*d);

System.out.println("Valor de i " + i);

}

for(i=40; i >= 30; i--)

{

System.out.println("Valor de i 40-30 " + i);

}

}

}

Sem bloco

Com bloco

Trabalhando

com valores

Trabalhando

com valores

e condição

composta

Trabalhando

com ordem

decresente

undamentos da Linguagem Java

Fluxo de Controle

Page 55: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 55/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class forExemplo1

{

 public static void main(String args[])

{

int d=170;

for(;d <=190; d++) System.out.println("Faixa 180-190 : " + Math.random()*d);for(d=200; ;d++)

{

System.out.println("Faixa 200-210: " + Math.random()*d);

if (d>210) break ;}

for(d=210; d < 220;)

{

System.out.println("Faixa 210-220: " + Math.random()*d);

d++;

}

int i=10;for(d=220; d <=230; d++)

{

System.out.println("Faixa 220-230 " + Math.random()*d);

for(; i <=20; i++)

System.out.println("Valor de i " + i);

}

for(i=40; i >= 30; i-=2)

{

System.out.println("Valor de i 40-30 " + i);

}

}

}

 A instrução for 

Veja abaixo mais exemplos, desta vez, com algumas variações possíveis dainstrução for :

Sem declarar 

valor-inicial

Sem condição.

A condição está

associado a

instrução if 

Sem valor de

incremento ou

decremento.

For aninhados

Decrementado

de dois em dois

Note que a instrução break  pode ser usada para sair de instrução de laço (while,do-while e for).

undamentos da Linguagem Java

Fluxo de Controle

Page 56: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 56/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Lógica

..

for(i=10; i >= 0; i-=2){

System.out.println("Valor 

de i 10-0 " + i);

}

...

Código

 Agora faça uma comparação entre a instrução do while, do-while e for. Quemserá mais rápido ?

 A instrução for 

O exemplo abaixo demonstra a lógica e implementação do código para a instruçãofor :

i >=0

i=i-2

sim

não

Imprime i

i=10

undamentos da Linguagem Java

Fluxo de Controle

..

 for(i=10; i >= 0; i-=2)System.out.println("Valor de i 10-0 " + i);

...

OU

Page 57: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 57/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Label (rótulo)

Em Java temos uma estrutura de bloco chamada Label. Esta defini um bloco deinstruções que podem ser executadas, devido sua lógica, que é similar ao comandogoto da Linguagem Basic. Esta estrutura não é muito usual.

Sintaxe:

<nome-da-label>:

instrução javaou<nome-da-label>:

{//Bloco de instruçõe

}

Exemplo:

 public class labelExemplo

{

 public static void main(String args[])

{

int d=1;

label_one:for(d=1; d <=10; d++)

System.out.println("Faixa de 0..10: " +d);

label_two:

{for(; d <=20; d++)

System.out.println("Faixa de 10..20: " +d);

}

}

}

Veja a label e a instruçãofor que parte da label_one

undamentos da Linguagem Java

Fluxo de Controle

Page 58: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 58/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class labelExemplo1

{

 public static void main(String args[])

{

label_a:for(int d=1; d <=10; d++){

System.out.println("Faixa A de 0..10: " +d);for(int i=10; i<20;i++){

System.out.println("Resto: " + d%i);if ( (d%i)>0) continue label_a;

}}

}}

Label (rótulo)

Outro exemplo de Label, desta vez usando a instrução con t inue 

 A instrução con t inue  Às vezes precisamos pular para aquela ou esta parte do programa sem passar peloresto das instruções.

undamentos da Linguagem Java

Fluxo de Controle

Page 59: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 59/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplo 1 Exemplo 2

String nomes[ ];nomes = new String[3]names[0] = "Duke";names[1] = "Jane";names[2] = "Tarzan";

String nomes[ ] = {"Duke", "Jane","Tarzan"};

Exemplo 3 Exemplo 4

MinhasDatas dates[ ];dates = new MinhasDatas[2];dates[0] = new MinhasDatas(22, 7, 2000);dates[1] = new MinhasDatas(01, 4, 1999);

MinhasDatas dates[ ] = { new MinhasDatas[2], newMinhasDatas(22, 7, 2000) , new MinhasDatas(01, 4,1999); }

Arrays

Os arrays são objetos. Devem possuir um tamanho definido no momento de suainstanciação, por exemplo:int[ ] arrayInt = new int[5] , ouint[ ] arrayInt arrayInt = new in t[5] 

Os elementos de array são acessados pelo índice, que sempre deverá começar em0. Não são permitidos índices inválidos, que resultam em exceção.ArrayOutOfBoundsExcept ion .

Os arrays podem receber variáveis do tipo primitivo (int, double, char, boolean,short e etc) ou do tipo referência, objetos, (String, Double, Integer e etc).Quando um Arrays é redimensionado todos os elementos são perdidos.Exemplo:float ArrayReDim[ ] = new float[5];

 ArrayReDim[ ] = new float[15];Exemplo: Inicialização de Arrays

Arrays Multi-Dimensionais:

Declaração correta:double duplaDim [ ] [ ] = new double [4] [ ];duplaDim [0] = new double [1];duplaDim [1] = new double [2];duplaDim [3] = new double [3];

Declaração Incorreta:double duplaDim [ ] [ ] = new double [ ] [4 ];

undamentos da Linguagem Java

Page 60: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 60/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Propriedades:

Length = retorna a quantidade de elementos de um ArrayExemplo:int listaNum = new int[20] for(int i=0; i < listaNum.length; i++ ){ System.out.println(listaNum[i]); }

Principais Métodos:

arraycopy = faz cópia de array A para o B.

Exemplos:

 public class TestArray1 {

 public static void main (String args [ ])

{

int[] thisArray = {1,2,3,4,5,6,7,8,9,10};for (int i =0; i < thisArray.length; i++)

{

System.out.println("Conteúdo" + thisArray[i]);}

}

}

Declara e atribui osvalores para array

Imprime no

console os itensdo thisArray

 public class TestArray2 {

 public static void main (String args [ ])

{

String[] estadosul = new String[3];

estadosul[0]="RS";estadosul[1]="SC";estadosul[2]="PR";for (int i =0; i < estadosul.length; i++)

{

System.out.println("Conteúdo " + estadosul[i]);

}

}

}

Declara e atribui os

valores para thisArray

Imprime no console os

itens do array

undamentos da Linguagem Java

Arrays

Page 61: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 61/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Passagem de Parâmetros

 A passagem de parâmetros em Java é somente por valor.

Passando por Valor 

 A passagem de argumentos na linguagem Java é somente por valor isto é, oargumento não podem ser mudados pelo método chamado. Quando uma “instance” do

objeto é passado como um argumento a um método, o valor do argumento é referênciaao objeto. O conteúdo do objeto pode ser alterado no método chamado, mas areferência do objeto jamais é mudada.

undamentos da Linguagem Java

Page 62: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 62/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Parâmetros de inicialização:

Podemos passar parâmetro de inicialização para o método principal. Veja o fragmentode código:

... public static void main(String args[]) { 

System.out.println(args[0]);

 }...

Exemplo de Passagem de valores:

 java NomedaClass Lista de Valores java TestParam 01 02 03Note que espaço em branco é a separação entre os itens, no exemplo, acima temos trêsitens passados. Vale lembrar que o tipo destes parâmetros é do tipo String, por definiçãoda linguagem.

Para passar valores que tem nome composto acrescente aspas. java TestParam “Jose Maria” Maria Joao

undamentos da Linguagem Java

Passagem de Parâmetros

Page 63: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 63/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

A classe Math

 A Math contém um grupo de funções matemáticas e estatísticas.

Principais métodos:

Truncar: ceil, floor e round

Variação: max, min, e abs()

Trigonométricas: sin, cos, tan, asin, acos, atan. toDegrees e toRadians

Logaritmo: log e exp

Outras: sqrt, pow e randomExemplos:

double d = 2;System.out.println(Math.sqrt(d));

public class TestSqrt

{public static void main(String arg[]){double d = 2D;System.out.println("A raiz quadrada de "+ d + " " +

Math.sqrt(d));System.out.println("O valor arrendondado "+ d + " " +

Math.round(Math.sqrt(d)));}

}

undamentos da Linguagem Java

Exemplo:

Page 64: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 64/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Empacotamento de Classes

É possível trabalhar com vários tipos de dados, desde números binários, hexadecimal,boolean, string, etc. Em muitos casos há a necessidade de fazer conversão de umtipo de dado para outro. Bem, começaremos com a conversão de tipos primitivos paratipo referência (objetos), esta operação também é chamada de Wrapper Class .

Veja abaixo a tabela que associa os tipos.

Exemplos:

 public class TestWrapperClass {

 public static void main (String args [ ])

{

int pInteger = 500; // Tipo primitivo

Integer wInteger = new Integer(pInteger); // Wrapper Class

int p1 = wInteger.intValue();

//Conversão de valores:

String valueStr = "10";double d1 = Double.valueOf(valueStr).intValue();

//ou

double d2 = Double.parseDouble(valueStr);

}

}

undamentos da Linguagem Java

 boolean

Boolean

 byte

Byte

Char 

Character 

short

Short

int

Integer 

long

Long

float

Float

double

Double

Tipo primitivo

Tipo referência

Page 65: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 65/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Uma lista de exemplos de conversão de um tipo para outro tipo e por aí vai...

Convertendo dados em Java de um tipo para outro.

> Convertendo String em integer:

int variavel = 42;

String str = Integer.toString(variavel);

ou

int variavel = 42;

String str = "" + variavel;

ou

int variavel = 42;

String str = String.valueOf(variavel);

> Convertendo String em Long:

long variavel = Long.parseLong(str);

oulong variavel = Long.valueOf(str).longValue();

> Convertendo String em Double:

double variavel = Double.valueOf(str).doubleValue();

> Convertendo String em Float:

float variavel = Float.valueOf(str).floatValue();

> Convertendo Integer em String:int variavel = 14;

String str = Integer.toString(variavel);

ou

int variavel = 14;

String str = "" + variavel

undamentos da Linguagem Java

Conversão de Tipos

Page 66: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 66/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Mais exemplos:

> Convertendo Integer em código ASCII:

char c = 'C';

int i = (int) c;

> Convertendo Double em String:

String str = Double.toString(i);

> Convertendo Long em String:String str = Long.toString(l);

> Convertendo Float em String:

String str = Float.toString(f);

> Convertendo Decimal em Hexadecimal:

int i = 12;

String hexstr = Integer.toString(i, 16);

ouString hexstr = Integer.toHexString(i);

> Convertendo Decimal em Binário:

int i = 12;

String binstr = Integer.toBinaryString(i);

> Convertendo Hexadecimal em Integer:

int i = Integer.valueOf("B8DA3", 16).intValue();

ou

int i = Integer.parseInt("B8DA3", 16);

> Convertendo Boolean em Integer:

i = (b)?1:0;

undamentos da Linguagem Java

Conversão de Tipos

Page 67: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 67/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class PessoaJuridica extends Pessoa {

 public PessoaJuridica()

{

super("ACME");

}

 public static void main(String args[])

{

PessoaJuridica pf = new PessoaJuridica(); pf.setIdade(10);

System.out.println("idade: " + pf.getIdade());

}

 public String getNome()

{

return "";

};

 public int getIdade()

{ return idade; }

 public void setIdade(int idade)

{ this.idade = idade; }

}

rogramação Orientada a Objetos

A referência this

Na classe PessoaJuridica, o uso da palavra th is é paraevitar ambigüidade. Note que no método setIdade, oparâmetro chama-se idade e o atributo também tem omesmo nome, ou seja, o mesmo identificador, nestecaso o th is separa o atributo do parâmetro.

O Java associa automaticamente a todas as variáveis e métodos referenciados com apalavra reservada this. Por isso, na maioria dos casos torna-se redundante o uso emtodas as variáveis da palavra this.Aplicação: Impedir ambigüidade de nome de variáveis.Restrição: Não pode ser aplicada a métodos estáticos, por exemplo, o método main.Exemplo:

Existem casos em se faz necessário o uso da palavra this. Por exemplo, podemosnecessitar chamar apenas uma parte do método passando uma instância do argumentodo objeto. (Chamar um classe de forma localizada);Bir thd ay bDay = new Bir thd ay(th is) ; 

Page 68: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 68/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Coleções

import java.util.*;

 public class TestHashTable

{

 public static void main(String Arg[])

{

Hashtable table = new Hashtable();

table.put("1", "Joao");table.put("2", "Jose");

table.put("3", "Maria");

table.put("4", "Marta");

table.put("5", "Pedro");

table.put("6", "Mateus");

String find = (String) table.get("4");

System.out.println(find);

}

}

Hashtable ( API: Java.util) A tabela de hash é uma estrutura de dados que permite procurar os itens armazenadosem tabela utilizando uma chave associada. O formato padrão de entrada de dados natabela é chave e valor .Para construir uma tabela de hash em Java, devemos criar um objeto Hashtable,utilizando o construtor Hastable.Para adicionar elementos na tabela usaremos o método put, pu t(object key, Object value). E ste método é da classe Hashtable. Para recuperar o elemento usado comochave, devemos usar o método get, get(object k ey). Para remover um elemento

usamos o método remove.

Exemplo:

Implementação

de tabela Hash

e uso dos métodos

 put e get

API

undamentos da Linguagem Java

O que são coleções?

Coleções (também conhecidas como container) é um simples objeto que pode agrupar múltiplos elementos. Coleções são utilizadas para armazenar, recuperar e manipular dados. Os métodos são responsáveis por realizar as operações. A estruturadas coleções inclui uma variedade de recursos que simplificam o desenvolvimento. Essaé uma implementação da noção de reúso de código. Um exemplo de coleção poderia ser uma lista de nomes e telefones.

Page 69: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 69/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Enumeration ( API: Java.util.Enumeration)

Retorna uma enumeração de uma coleção (Tabela Hash, por exemplo) especificada.Principais métodos: hasMoreElements e nextElements.

import java.util.Enumeration.*;import java.util.*;

 public class EnumerationExemplo{

 public static void main(String Arg[])

{

Hashtable table = new Hashtable();

table.put("1", "Joao");

table.put("2", "Jose");

table.put("3", "Maria");

table.put("4", "Marta");

table.put("5", "Pedro");table.put("6", "Mateus");

Enumeration e = table.elements();while(e.hasMoreElements()){String valor = (String) e.nextElement();System.out.println(valor);

}}

}

Usando a Interface

Enumeration, podemos

imprimir todos os

valores contidos

na tabela Hash

Tabela Hash

e métodos

API

Exemplo:

undamentos da Linguagem Java

Coleções

import java.util.Iterator.*;... Iterator i = table.values().iterator();while(i.hasNext()){ 

String valor = (String)i.next();System.out.println(valor);

 }

Opcionalmente podemos usar 

Iterator que tem a funcionalidade

 parecida com Enumeration

Page 70: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 70/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Vector ( API: Java.util)

 A classe Vector possibilita a criação de vetor dinâmico para armazenamento dereferências de objetos, que pode ser indexado por número inteiro. Métodos principais:addElement(), remove(), size(), element() entre outros

import java.util.*;

 public class TestVector 

{

 public static void main(String Arg[])

{

Vector v = new Vector();Integer y;

for(int x=0;x<5;x++)

{

y = new Integer(x);

v.addElement(y);

}

Object[] objArray = v.toArray();

for(int x=0;x<5;x++)

{System.out.println(objArray[x]);

}

}

}

Exercício: Use Enumerat ion para listar todos os elementos de Vector.

Exemplo:

Declaração do Vector 

Adiciona valores ao

Vector. Note que estes

valores são do tipo referência,

ou seja, objetos

Converte um Vector 

 para um array .

API

undamentos da Linguagem Java

Coleções

Page 71: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 71/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

ArrayList ( API: Java.util). ArrayList é array dimensionável da Interface List parecido com Vector. No exemploabaixo é permitido que os valores sejam duplicados, porém, desordenados. Principaismétodos: add, remove, clear, size, isEmpty, get, set, iterator.

import java.util.*;

 public class ListExemplo {

 public static void main(String[] args) {

List list = new ArrayList();

list.add("um");

list.add(new Integer(4));

list.add("terceiro");

list.add(new Integer(4));

System.out.println(list);

Vector v = new Vector();Integer y;

for(int x=0;x<5;x++)

{

y = new Integer(x);

v.addElement(y);

}

List listVector = new ArrayList( v );System.out.println(listVector);

}

}

Declaração do ArrayList

Inserção de valores na lista.

Veja que estes valores são objetos

Imprime os valores da lista

API

Uma nova coleção

Uma outra construção para a

lista, neste caso ela recebeuma coleção como argumento

Imprime todos os

valores da lista

Exemplo:

undamentos da Linguagem Java

Coleções

Page 72: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 72/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

HashSet ( API: Java.util)

 A classe HashSet Implementa a interface Set, ela também tem suporte daHashTable. Ela é uma coleção que não pode conter elementos duplicados.Principais métodos: add, clear, remove, size, iterator e isEmpty.

import java.util.*;

//Com ordem e sem repetição

 public class SetExample {

 public static void main(String[] args) {

Set set = new HashSet();set.add(”dois");

set.add("3rd");

set.add(new Float(11.1F));

set.add(”quarto");

set.add(new Float(11.1F));

System.out.println(set);

}

}

API

Declaração do HashSet

Inserção de valores na lista.

Veja que estes valores são objetos

Imprime os valores da lista

Exemplo:

undamentos da Linguagem Java

Coleções

Page 73: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 73/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

undamentos da Linguagem Java

Coleções

Page 74: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 74/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Pacotes

 A linguagem Java é estruturada em pacotes, estes pacotes contém classes que por sua vezcontém atributos e métodos. Pacote é forma de organização da linguagem Java,prevenindo de problemas como a repetição de identificadores (nomes) de classes e etc.Podemos usar a estrutura de pacotes para associar classes com semântica semelhante, ouseja, classes que tem objetivo comum. Por exemplo, colocaremos em único pacote todasas classes que se referem a regras de negócios.Exemplo:

Aplicação

Interface de Usuário

ControleRegras de Negócios

Fisicamente os pacotes tem a estrutura de diretório e subdiretório, isto quer dizer que a Aplicação terá a seguinte formato:

Aplicação

Regras de Negócios

Interface de Usuário

Controle

Pacotes

Page 75: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 75/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Pacotes

Package

Esta instrução deve ser declarado na primeira linha do programa fonte, este instrução servepara indicar que as classes compiladas faz parte do conjunto de classes (package), ousejam uma pacote, indicado pela notação path.name (caminho e nome do pacote).Sintaxe: package <path.name>;

package MyPck ; public class ClassPkg

{

 public ClassPkg()

{

System.out.println("Teste de package...");

}

}

Gerar pacotes: javac -d . *.java

import  MyPck.ClassPkg ; public class TestPkg

{

 public static void main(String args[])

{

ClassPkg p = new ClassPkg();

}

}

Diretório

Corrente

MyPck 

ClassPck.class---

---

---

--- TestPck.class

Pacotes

Import

 A instrução import faz importação para o arquivo fonte (.java) das classes indicadas, cujo odiretório base deve estar configurado na variável de ambiente: CLASSPATH.Sintaxe: import <classes>;Exemplos:

imp ort java.awt.Bu tton;  imp ort java/awt/Button ; 

Substituindo os pontos por barras teríamos o caminho

Aqui estaríamos importando somente o objeto Buttonimp ort j ava.awt.*; 

 Neste caso estaríamos importando todos objetos contidos na classe

Page 76: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 76/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Page 77: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 77/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

rogramação Orientada a Objetos

 As classes é parte mais importante de um sistema orientada a objetos.Usamos as classes para capturar o vocabulário do sistema que está emdesenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do

problema, assim como as classes que fazem implementação de operações. Podemosusar ainda as classes para representar itens de software, de hardware e até itens quesejam somente conceituais.

Exemplo: A classe Pessoa deverá ter atributos e métodos comuns

Pessoanome

idade

getNome()

getIdade()

 Nome da Classe

Atributos

Métodos

O nome da classe deve ser identificador único em conjunto de classes, este nome deveser substantivo no singular. Exemplo: Produto, Cliente e etc

Tipos de Classes:• Classe Concreta• Classe Abstrata

O que é uma Classes?

“Uma classe descreve um conjunto de objetos com propriedades e comportamentossemelhantes e com relacionamentos comuns com outros objetos” 

Classe

Page 78: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 78/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplo: A classe Pessoa. Classe concreta.

public class Pessoa {

 //Atributosprivate String nome;

private int idade; //métodospublic String getNome(){

return nome; }

public void setNome(Stringnome){

this.nome = nome; }

public int getIdade(){return idade; }

public void setIdade(intidade){

this.idade = idade; }

}

Classe Concr eta: É uma classe que tem assinatura e a implementação de métodos.

rogramação Orientada a Objetos

Exemplo de diagrama de classeusando Rational Rose (notação Unified)

Classe

Page 79: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 79/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplo: A classe Pessoa. Classe Abstrata

Classe Abstrata: É uma classe que tem apenas assinatura de métodos sem implementação.

rogramação Orientada a Objetos

Classe

 public abstract class Pessoa

{

 protected String nome;

 public abstract String getnome();

 public abstract void setnome(String nome);

}

Se uma classe é abstrata se métodostambém são

Observe que os métodos não implementados. Simplesmente assinados.

Diferenças ente Classe Abstrata e Concreta:

Classe Abstrata Classe Concreta

Os métodos devem ser somente assinadosOs métodos podem ser assinados e

implementados

 Não pode sofrer “instance” Poder sofrer “instance”

Relacionamento somente através de herança Todos os tipos de relacionamentos

Classe Abstr ata: Em um relacionamento onde a classe Pai é abstrata e a filha é uma classeconcreta esta deve implementar os métodos assinados na classe Pai.

Page 80: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 80/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplos de Objetos:

O que são Objetos ?

São qualquer coisa na natureza que possua propriedades (características) ecomportamentos (operações).Exemplo: uma pessoa, uma cão e etc 

Orientação a Objetos:

O termo orientação a objetos significa organizar o mundo real como uma coleção deobjetos que incorporam estrutura de dados e um co nj un to d e operações que

manipulam estes dados.

Estrutura de um objeto

Objetos combinam propriedades (atributos) e comportamentos (operações).

Podemos dizer que objeto é espécie da classe, ou seja, uma “instance” da classe

Propriedades Comportamentos

Bonita

Jovem

Inteligente

Andar 

Correr 

Falar 

Chorar 

Dançar 

Objeto: Pessoa

rogramação Orientada a Objetos

Objetos

Page 81: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 81/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplos de Objetos:

O que são Objetos ?

São qualquer coisa na natureza que possua propriedades (características) ecomportamentos (operações).Exemplo: uma pessoa, uma cão e etc 

Orientação a Objetos:

O termo orientação a objetos significa organizar o mundo real como uma coleção deobjetos que incorporam estrutura de dados e um co nj un to d e operações que

manipulam estes dados.

Estrutura de um objeto

Objetos combinam propriedades (atributos) e comportamentos (operações).

Podemos dizer que objeto é espécie da classe, ou seja, uma “instance” da classe

rogramação Orientada a Objetos

Objetos

Cliente: clientehomem

nome = Felipe

cpf = 039.217.908-22

idade = 22

Classe: Cliente e objetos

nome

cpf 

idade

Cliente

Cliente: clientemulher 

nome = Marina

cpf = 022.200.708-12

idade = 16

Page 82: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 82/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class CalculaData {

 private int day, month, year;

public float calcDays(int age ){return 365.25F * age;

}}

Métodos

rogramação Orientada a Objetos

método

Métodos são os comportamentos de um objeto. A declaração é feita da seguinteforma:

< modificador > < tipo de retorno > < nome > ( < lista de argumentos > )

< bloco >

< modificador > -> segmento que possui os diferentes tipos de modificaçõesincluíndo public , protected, private e default (neste caso não precisamos declarar o

modificador).< tipo de retorno > -> indica o tipo de retorno do método.< nome > -> nome que identifica o método.< lista de argumentos > -> todos os valores que serão passados comoargumentos.

Exemplos: public void somaDias (int dias) { }private int somaMes(int mês) { }protected String getNome() { }

int getAge(double id) { }

Page 83: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 83/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Métodos

rogramação Orientada a Objetos

Método é a implementação de uma operação. As mensagens identificam os métodosa serem executados no objeto receptor.Para chamar um método de um objeto é necessário enviar uma mensagem para ele.Por definição todas as mensagens tem um tipo de retorno, por este motivo em Java,mesmo que método não retorne nenhum valor será necessário usar o tipo de retornochamado “void” (retorno vazio).

ContaCorrente

conta

saldo

setDepositogetSaldosetSaque

 public class ContaCorrente {

 private int conta=0; private double saldo=0;

public double getSaldo(){return saldo;

}

public void setDeposito(int valordeposito){

return saldo +=valordeposito;}

public void setSaque(double valorsaque){return saldo -=valorsaque;

}}

Page 84: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 84/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Orientação a Objetosrogramação Orientada a Objetos

 public class Mamifero {

 private int qdepernas;

 private int idade;

public Mamifero(int idade) 

this.idade = idade; 

 } 

public Mamifero(int idade, int 

pernas) { 

this.idade = idade; 

this.qdepernas = pernas; 

 } 

//Métodos

}

Construtores -Podemos ter mais de um

construtor na mesmaclasse.

Construtores

O que são construtores?

Construtores são um tipo especial de método usado para inicializar uma “instance”

da classe.

Toda a classe Java deve ter um Construtor. Quando não declaramos o“Construtor default”, é inicializado automaticamente pelo Java. Mas existemcasos que se faz necessário a declaração explícita dos construtores.O Con stru tor não p od e ser herdado. Para chamá-lo a partir de uma subclasseusamos a referência super.

Para escrever um construtor, devemos seguir algumas regras:1ª O nome do construtor precisa ser igual ao nome da classe;2ª Não deve ter tipo de retorno;3ª Podemos escrever vários construtores para mesma classe.

Veja abaixo o exemplo:

Page 85: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 85/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 public class Disciplina {private int cargaHoraria;private String nome;

 public Disciplina(String nome, int

cargaHoraria){

this.nome = nome;

this.cargaHoraria =

calcCargaHoraria(cargaHoraria);}

 public String getNome(){

return nome;

}

 public int getCargaHoraria(){

return cargaHoraria;

}

 public int calcCargaHoraria(intqdeHoras) {

int horasPlanejamento = (int)( qdeHoras * 0.1);

return cargaHoraria =

horasPlanejamento + qdeHoras;

}

}

Atributos

Variáveistemporárias

Atributos e variáveis

rogramação Orientada a Objetos

Os atributos são pertencentes a classe, eles podem ser do tipo primitivo oureferência (objetos), os seus modificadores podem ser: public, private, protected oudefault.O ciclo de vida destes atributos estão vinculados ao ciclo de vida da classe.Variáveis Locais:

São definidas dentro dos métodos. Elas têm o ciclo de vida vinculado ao ciclo dométodo, também são chamadas de variáveis temporárias

Modificador

Page 86: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 86/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplo de Classe

rogramação Orientada a Objetos

Livro1

Legenda:1 – Objeto no mundo real

2 – Modelo de implementação da classe Livro

3 – Codificação da classe Livro

 public class Livro extends Object {

 public Livro() {

}

 private int isbn;

 private String titulo;

 private String autor;

 public int getISBN(){

return isbn;}

 public void setISBN(int isbn){

this.isbn=isbn;

}

 public String getTitulo(){

return titulo;

}

 public void setTitulo(String titulo){

this.titulo=titulo;

}

 public String getAutor(){return autor;

}

 public void setAutor(String autor){

this.autor=autor;

}

}

}

2

3

Criar o objeto Livro

Page 87: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 87/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exercício sobre modelo de Classe

rogramação Orientada a Objetos

1 (Identifique o objeto no mundo real)

2 Descreva o conceito:

 Nome da Classe

Atributos 1

Atributos 2

Atributos 3

Métodos 1

Métodos 2

Métodos 3

3 Faça o desenho da classe:

 public class <nome da classe> { public <nome da classe> () {

}

 private <tipo> atributo;

 private <tipo> atributo;

 private <tipo> atributo;

 public <tipo> <nome método(lista de param...){

return <tipo de retorno>;

}

 public <tipo> <nome método(lista de param...) {

this.atributo=valor param;}

 public <tipo> <nome método(lista de param...){

return <tipo de retorno>;

}

 public <tipo> <nome método(lista de param...) {

this.atributo=valor param;

}

}

4 Faça a codificação do modelo de classe:

Page 88: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 88/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

O que é abstração?

Podemos dizer abstração é generalização.Qual é a função da abstração ?

 A função da abstração é capturar as propriedades e os comportamentos essenciais,como se fosse uma fatoração, desta forma determina-se o que é importante e o que

não é.

Aeronave

Caça Helicóptero Passageiros

Mamífero

Vaca Urso Cavalo

Para discutirmos sobre classes abstratas é necessário falarmos sobre a abstração dedados.

 As classes Aeronave e Mamífero neste caso são abstratas e ambas representam umdomínio.

rogramação Orientada a Objetos

Abstração de Dados

Page 89: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 89/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Uma operação abstrata só determina a existência de um comportamento não definindouma implementação. Classes Abstratas - Exemplo:

Classes Abstratas

Uma classe abstrata é uma classe que:• Provê organização• Não possui “instances”

• Possui uma ou mais operações (métodos) abstratas

Pessoa

Pessoa

Física

Pessoa

Jurídica

getNome()

getNome() getNome()

Classe Abstrata

Funcionário

Analista Programador  

Classe concreta

Classe concreta

Classe Abstrata

rogramação Orientada a Objetos

Abstração de Dados

Page 90: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 90/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Classes Abstratas

Pessoa

PessoaFísica

PessoaJurídica

getNome()

getNome() getNome()

Classe Abstrata

Classe concreta

 public abstract class Pessoa {

 protected String idPessoa;

 protected int idade;

 protected String nome;

 public Pessoa(String nome)

{

this.nome = nome;

}

 public abstract String getNome();

 public void setidPessoa(){ }

 public abstract int getIdade();

 public void setIdade(int idade)

{ }

}

rogramação Orientada a Objetos

Abstração de Dados

Page 91: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 91/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Classes Abstratas

Pessoa

PessoaFísica PessoaJurídica

getNome()

getNome() getNome()

Classe Abstrata

Classe concreta

 public class PessoaFisica extends Pessoa {

 public PessoaFisica(String nome)

{

super(nome);

} public static void main(String args[])

{

PessoaFisica pf = new PessoaFisica("Duke");

 pf.setIdade(10);

System.out.println("idade: " + pf.getIdade());

System.out.println("nome: " + pf.getNome());

}

 public String getNome(){ return nome; }

 public int getIdade()

{ return idade; }

 public void setIdade(int idade)

{ this.idade = idade; }

}

rogramação Orientada a Objetos

Abstração de Dados

Page 92: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 92/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Um relacionamento é a conexão entre itens. É representado graficamente como umcaminho, que tem tipos diferentes de linhas para distinguir os tipos derelacionamentos.

 Ao construir as abstrações, descobrimos que são poucas as classes que trabalhamsozinhas. Em vez disso, a maioria das classes colaboram com outras classes de váriasmaneiras.Portanto, quando estamos modelando, devemos identificar as classes, atributos, métodos erelacionamentos.Existem alguns tipos principais de relacionamentos entre classes e objetos:

• Herança• Associação• Agregação

• ComposiçãoVeja a definição de relacionamento:

Exemplo: Hierarquia de Classes

Pessoa

Aluno Funcionário

Professor Pessoal

Administrativo

Terceiro

Professor 

Autônomo

Pessoal

Operacional

SubClasses

SuperClasse

Relacionamento:

1 - Pessoa é a SuperClasse de Terceiro, Aluno e de Funcionário,estas são subc lasse de Pessoa.2 - Terceiro e Funcionário são SuperClasse de Professor e Pessoal Administrativo e deProfessor Autônomo e Pessoal Operacional respectivamente.

E estas são subc lasse de Terceiro e Funcionário.

rogramação Orientada a Objetos

Relacionamento

Page 93: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 93/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Herança é o mecanismo pelo qual elementos mais específicos incorporam a estrutura ecomportamento de elementos mais gerais,

Uma classe derivada herda a estrutura de dados e métodos de suaclasse “base”, mas pode seletivamente:

• adicionar novos métodos• estender a estrutura de dados• redefinir a implementação de métodos já existentes

Uma classe “pai” proporciona a funcionalidade que é comum a todas as suas classesderivadas, filhas, enquanto que uma classe derivada proporciona a funcionalidadeadicional que especializa seu comportamento.

Exemplo:

Graduação Pós-Graduação

Curso

Universitário

Especialização Extensão

Hierarquia de Classes

Podemos dizer que Graduação é t ipo de Curso Universitário, assim como Curso deEspecialização ou de Extensão.

extends

extends

rogramação Orientada a Objetos

Herança

Page 94: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 94/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplo: Implementação- Pessoa, Aluno, Terceiro, Funcionário

 public abstract class Pessoa {

 protected String idPessoa;

 protected int idade;

 protected String nome;

 public Pessoa(String nome)

{

this.nome = nome;

} public abstract String getNome();

 public void setidPessoa()

{ }

 public abstract int getIdade();

 public void setIdade(int idade)

{ }

}

public class Terceiro extends Pessoa{ private int codigoTerceiro;

 public Terceiro(String nome)

{

super(nome);

}

 public int getIdade()

{

return 0;

}

 public String getNome()

{return "";

};

}

 public class Funcionario extends Pessoa{ private int codigofuncionario;

 public Funcionario(String nome)

{

super(nome);

}

 public int getIdade()

{

return 0;

}

 public String getNome()

{return "";

};

}

Professor 

Autônomo

Pessoal

Operacional

Professor Pessoal

Administrativo

rogramação Orientada a Objetos

Herança

 public class Aluno extends Pessoa{ public Aluno(String nome)

{

super(nome);

}

 public int getIdade()

{

return 0;

}

 public String getNome()

{

return "";};

}

Page 95: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 95/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Pessoa

AlunoTerceiro

 public class ProfessorAutonomo

extends Terceiro{

 public ProfessorAutonomo(

String nome)

{

super(nome);

}

}

 public class PessoalOperacional

extends Terceiro{

 public PessoalOperacional(

String nome)

{

super(nome);

}

}

 public class Professor 

extends Funcionario{

 public Professor(

String nome)

{

super(nome);

}

}

 public class PessoalAdministrativo

extends Funcionario{

 public PessoalAdministrativo(

String nome)

{

super(nome);

}

}

Funcionário

rogramação Orientada a Objetos

Exemplo de Herança: Implementação: ProfessorAutonomo, PessoalOperacional,Professor e Pessoal Administrativo

Herança

Page 96: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 96/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

 A herança múltipla é quando uma classe tem mais que uma Superclasse associada eque herde as características de todas elas. Veja a figura abaixo:

Pessoa

Pessoa JurídicaPessoa Física

<<interface>>

Mamífero

Relacionamento:

Pessoa Física é tipo de pessoa, mas também é mamífero.

Na linguagem Java:

 A Herança múltipla é somente permitida por contrato, neste caso a Mamífero é umaInterface, podemos dizer que é tipo especial de classe, que não pode

ter métodos implementados, apenas as assinaturas.

rogramação Orientada a Objetos

Herança Múltipla

<<interface>>Mamífero

Interface:

O que é interface ?Interface é um contrato entre o cliente, que pode ser classe concreta ou abstrata, e ainterface. Este contrato é garantia que o métodos assinados na interface serão

implementados na classe cliente.

Nota: Na interface também podemos declarar constantes (pu bl ic stat ic f inal ).

interface Product

{

String getName ();

double getCost ();

}

SuperclasseSuperclasse

Exemplo de Interface

Page 97: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 97/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Exemplo: Implementação da classe Pessoa, PessoaFisica e PessoaJuridica e ainterface Mamifero

 public abstract class Pessoa {

 protected String idPessoa;

 protected int idade;

 protected String nome;

 public Pessoa(String nome)

{

this.nome = nome;

}

 public abstract String getNome();

 public abstract int getIdade();

 public void setIdade(int idade){ }

}

 public class PessoaJuridica1 extends Pessoa{

 public PessoaJuridica1(String nome)

{

super(nome);

}

 public int getIdade()

{

return 0;

}

 public String getNome()

{return "";

};

}

public interface Mamifero {

final int qdeOlhos=2;

publ ic int getQdePernas(); 

}

 public class PessoaFisica1 extends Pessoa

implements Mamifero {

 public PessoaFisica (String nome)

{

super(nome);

}

publ ic in t getQdePernas(){ 

return 2; } 

 public String getNome(){

return “”; } public int getIdade(){

return 0; }

}

Exercício:

1 - Podemos implementar a herança múltipla na Classe Pessoa? Por que ?2 - Por que somos obrigado a assinar ou implementar os métodos da Interface Mamiferona classe PessoaFisica

rogramação Orientada a Objetos

Herança Múltipla

implements

extends

extends

Page 98: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 98/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Comparação: classes e interfaces

Tipo Classe Concreta Classe Abstrata Interface

Herança extends(simples)

extends(simples)

implements(múltipla)

Permite a

implementação

de Métodos

sim não não

Permite a

declaração deDados

sim sim sim

(somente final)

rogramação Orientada a Objetos

Page 99: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 99/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0

Superclasse

Subclasse

pub l ic class Emp regado { 

 private double salario; public Empregado(){ 

salario=0.00; }

 public double getSalario(){ return this.salario;

 } }

pu bl ic class Gerente extend s Emp regado {  private double bonus = .15;

 public Gerente(){  //referência ao Construtor 

super (); } public double getSalario(){ 

 //referência ao método getSalarioreturn super .getSalario() +

(super.getSalario()*this.bonus); }

 }

rogramação Orientada a Objetos

A referência super 

 A palavra super é usada para referenciar a superclasse ou classe pai, na verdade oconstrutor da classe hierarquicamente superior, podemos usa-lo também para fazer referência aos membros (atributos e métodos), da superclasse.Desta forma temos uma extensão do comportamento.

Exemplo:

Page 100: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 100/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Associação

Definição de Associação:

Um relacionamento estrutural que descreve um conjunto de vínculos, em que o vínculo éuma conexão entre objetos; o relacionamento semântica entre dois ou mais classificadoresque envolve as conexões entre seus objetos

 public class Usuario {

public Senha m_Senha;

Usuario() {

}

}

 public class Senha {

public Usuario m_Usuario;

Senha() {

}

}

Usuario Senha

Associação

classe classe

Page 101: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 101/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Navegação

Navegação

Navegação é uma associação unidirecional

 public class Pedido

{

public ItemPedido item[];

 public Pedido()

{}

}

 public ItemPedido

{

 public ItemPedido()

{

}}

Pedido tem a responsabilidade de identificar 

quais são seus itens. Já os itens não tem aresponsabilidade de saber a qual pedido queeles pertencem.

O Código Java:

Pedido

ItemPedido

Page 102: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 102/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

 public class Pessoa {

 public Empresa Empregador[];

Pessoa() {

}

}

Rolename

Definição de RoleName:

É um identificador (nome) do papel da associação, podendo cada ponta ter um nomeespecifico.

 public class Empresa {

 public Pessoa Empregado;

Empresa() {

}

}

 As rolename neste caso são usadas identificadores dos atributos (das classes).

Page 103: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 103/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Agregação

 public class Roda {

 public Pneu pneu;

Roda() {}

Roda(int aro, String modelo) {

 pneu = new Pneu(aro,modelo)

}

Definição de Agregação:

Um forma especial de associação, que especifica o relacionamento parte-todo entre oagregado (o todo) e o componente (a parte).

Veja o exemplo abaixo:

 public class Pneu {

 public Roda roda;

Pneu() {}

}

Pneu

Roda

roda

pneu

Todo

Parte de

Page 104: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 104/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Composição

Cliente Pedido

ItemPedido

Produto

Definição de Composição:

Uma forma de agregação com propriedade bem-definida e tempo de via coincidente daspartes pelo todo; as partes com multiplicidade não fixada poderão ser criada após a própriacomposição, mas, uma vez criadas, vivem e morrem com elas; essas partes tambémpodem ser removidas explicitamente antes da morte do elemento composto.

Todo

Parte de

um todo

Dados do Pedido

 N• 19069

Cliente 1 – Cliente A

Data: 01/01/2002

It Descrição Qt Preço

--------------------------------

01 Produto A 10 12,4002 Produto B 01 2,40

03 Produto C 11 5,60

04 Produto D 09 2,23

Page 105: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 105/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Multiplicidade

Cliente Pedido

0..*1

0..*1

ItemPedido

1

1..*

Produto

1

*

1

1..*

*

1

Definição de Multiplicidade:

 A especificação de uma faixa de números cardinais, que um conjunto pode assumir.

Todo

Parte de

um todo

Dados do Pedido N• 19069

Cliente 1 – Cliente A

Data: 01/01/2002

It Descrição Qt Preço

--------------------------------

01 Produto A 10 12,40

02 Produto B 01 2,40

03 Produto C 11 5,60

04 Produto D 09 2,23

Page 106: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 106/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Exemplo de implementação de Composição e multiplicidade

Cliente Pedido

0..*1 0..*1

ItemPedido

1

1..*

Produto

1

*

1

1..*

*

1

 public class ItemPedido {

 public Pedido m_Pedido;

 public Produto

m_Produto;

ItemPedido() {}

} public class Produto {

 public ItemPedido m_ItemPedido[];

Produto() {

}

}

 public class Pedido {

 public ItemPedido m_ItemPedido[];

Pedido() {

}

}

 public class Cliente {

 public Pedido m_Pedido[];

Cliente() {

}

}

Page 107: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 107/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Constraint

 As constraint (restrições) ampliam o vocabulário dos elementos na UML, permitindo alterar ou incluir novas regras aos elementos do modelo.

Pedido Cliente

Pedido

Produto

AnaliseCredito

{se Pedido.Cliente.AnaliseCredito é ruim,então pedido.ePrePago deve ser verdadeiro}1

*

*

1

* 1faz

Constraint 

Page 108: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 108/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

<<negócio>>Vendedor 

PercentualDeComissao

<<negócio>>Prestacao

DataDeVencimentoValorDaPrestacao

<<negócio>>Cliente

SituacaoFinanceira

<<negócio>>Produto

QtdeEmEstoque

<<negócio>>Venda

DataDaVenda

<<negócio>>ItemDeVenda

QtdeVendida

<<negócio>>VendaAPrazo

1 1..*

é composta de

*

1

corresponde

*

1

é realizada por 

1..*

1

é realizada para

1 1..*

compreende

rogramação Orientada a Objetos

Exemplo de modelo de classes

Page 109: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 109/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Exercício

 public class NotaFiscal

{

public NotaFiscalLinha nflinha[] = new NotaFiscalLinha[3];

 public static void main(String args[])

{

 NotaFiscal nf = new NotaFiscal();

nf.nflinha[0] = new NotaFiscalLinha("1010","Teste item 0", 5, 200.53);nf.nflinha[2] = new NotaFiscalLinha("2020","Teste item 1", 15, 50.43);nf.nflinha[1] = new NotaFiscalLinha("3030","Teste item 3", 25, 30.23);

double valortotal=0;

double quantidadetotal =0;

for(int i=0;i< nf.nflinha.length ;i++)

{

System.out.print(nf.nflinha[i].item + " ");

System.out.print(nf.nflinha[i].descricao + " ");

System.out.print(nf.nflinha[i].quantidade + " ");

System.out.print(nf.nflinha[i].valor + "\n");

quantidadetotal =+ nf.nflinha[i].quantidade;

valortotal =+ nf.nflinha[i].valor * quantidadetotal;

}

System.out.println("Quantidade total..." + quantidadetotal);

System.out.println("Valor total........" + valortotal);

}}

Complete a classe que falta e faça o diagrama de classe correspondente com seusrespectivos relacionamentos.

Page 110: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 110/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

É uma proteção adicional dos dados do objeto de possíveis modificações impróprias,forçando o acesso a um nível mais baixo para tratamento do dados.

Operações/métodos/interface

pública

Dados/Atributos/propriedades

privada

Encapsulamento (“data hiding”)Encapsulamento é definido como uma técnica para minimizar dependências entre“módulos” através da definição de interfaces externas. Também conhecido como:

O fenômeno da “caixa preta”

Encapsulamento

pub l ic class Empregado {  private double salario;

 public Empregado(){ salario=0.00;

 }

 public double getSalario(){ return this.salario;

 }

 }

O atributo salario somente poderá ter um valor atribuído ou alterado,

através de método público.

Através do método getSalario, que

tem modificador public, podemos

manipular ou recuperar o valor do

atributo salario.

Classe Empregado e métodogetSalario

O atributo salario 

 private double salario;

Page 111: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 111/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

 A interface (pública) de um objeto declara todas as operações permitidas (métodos)

Todo o acesso aos dados do objeto é feito através da chamada a uma operação (método)da sua interface.

Encapsulamento - Benefícios

- Segurança:

Protege os atributos dos objetos de terem seus valores corrompidos por outrosobjetos.

- Independência:

“Escondendo” seus atributos, um objeto protege outros objetos de complicações de

dependência de sua estrutura interna

Encapsulamento

pub l ic class Gerente1 extends Empregado {  private double bonus = .15;

 public double getSalario(){  //referência ao método getSalarioreturn super .getSalario() +

(super.getSalario()*this.bonus); }

 }

pub l ic class Emp regado { 

 public Empregado(){ salario=0.00;

 }

 public double getSalario(){ return this.salario; }

 }

 private double salario;

Page 112: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 112/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Definição:

“Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedadesegundo o qual uma operação pode comportar-se diferentemente em classes diferentes” 

(Rumbaugh)O polimorfismo é o responsável pela extensibilidade em programação orientada a objetos.

Polimorfismo

overloading

overriding

Overloading:Possibilidade de reúso do nome do método para diferentes implementações, em tempo deexecução, a aplicação, escolherá o método adequado para cada chamada, veja oexemplo.

TesteSoma Soma

somar(int a, int b)

somar(float a, float b)

somar(char a, char b)somar(long a, long b))

Para cada tipo de dados existe um método, o reúso do nome do método é permitido,entretanto a lista de argumentos deve ser diferente, veja o exemplo acima: o métodosomar é definido várias vezes, entretanto com a lista de argumentos diferente, destaforma evitaremos problemas como ambigüidade.

rogramação Orientada a Objetos

Polimorfismo

Page 113: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 113/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

pub l ic c lass EmpregadoExemplo {  private double salario;

 public void setSalario(int diastrabalhados,double valorhora ){ 

this.salario = diastrabalhados * valorhora * 8;

 } public double getSalario(){ 

return this.salario; }

 }

 public class Engenheiro extendsEmpregadoExemplo {

 public static void main(String args[])

{

Engenheiro eng = new Engenheiro();

eng.setSalario(22, 35.00);

System.out.println(eng.getSalario());

}

}

O método setSalario é herdado da Superclasse (Empregado), entretanto para cada cargo(tipo de empregado) ele tem uma implementação diferente. Por exemplo:- Para Engenheiro e Secretária salário = (Dias Trabalhados x Valor hora)

- Para Gerente salário = (Dias Trabalhados x Valor hora) + Bônus- Para Diretor salário = (Dias Trabalhados x Valor hora) + Bônus + Participação noslucros.

Overr inding - Exemplo:

Empregado

setSalario()

getSalario()

Engenheiro

getSalario()

Gerente

getSalario()

Diretor 

getSalario()

Secretária

getSalario()

rogramação Orientada a Objetos

Polimorfismo

Page 114: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 114/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

O método setSalario (continuação)

pu bl ic class Diretor extend s GerenteExemplo {  private double lucros = 1000.00;

 public static void main(String args[]){ Diretor d = new Diretor();

d.setSalario(22, 35.00);System.out.println(d.getSalario());

 } public double getSalario(){ 

return super.getSalario() + this.lucros; }

 }

pu bl ic class GerenteExemp lo extend s EmpregadoExemp lo {  private double bonus = .15; public static void main(String args[]){ 

GerenteExemplo g = new GerenteExemplo();g.setSalario(22, 35.00);System.out.println(g.getSalario());

 } public double getSalario(){ return super.getSalario() + (super.getSalario()*this.bonus); }

 }

rogramação Orientada a Objetos

Polimorfismo

pub l ic class Secretar ia extend s Emp regadoExemplo {  public static void main(String args[])

Secretaria sec = new Secretaria();sec.setSalario(22, 35.00);System.out.println(sec.getSalario());

 } }

Page 115: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 115/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

Overr inding Uma subclasse pode mudar o comportamento herdado da Superclasse, ou seja, um métodoherdado poderá ser alterado. Veja o exemplo abaixo:

O método getSaldo é herdado da Superclasse (Conta Bancária), entretanto para cada

tipo de Conta ele tem uma implementação diferente. Por exemplo:- Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldoanterior) - saquesPara a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros)- saquesPara a conta de investimentos seria saldo atual = (soma dos aplicações + saldo anterior + juros) - resgates - ir 

Conta Bancária

getSaldo()

Conta Corrente

getSaldo()

Conta Poupança

getSaldo()

Investimentos

getSaldo()

Exercício:

Faça a implementação das classes acima.

Polimorfismo

 As subclasse podem modificar o comporamento de método herdado da super classe,

entretanto temos que seguir algumas regras:- Manter o mesmo nome do método- Manter o mesmo tipo de retorno- Manter a lista de argumentos.

Page 116: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 116/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Acessibilidade

Acessibilidade ou Visibilidade

Os níveis de controle tem o seguinte papel de tornar um atributo, um método ou classevisível ou não.Exemplo:

Se um atributo foi declarado dentro de uma classe chamada TestA e este atributo tem onível de controle private. Somente esta classe poderá fazer acesso a este atributo, ou seja,somente classe TestA o enxergará, todas as demais, não poderão fazer acesso direto aeste atributo.

 public class TestA { private int a=1;

}

Para contornar a situação poderíamos fazer duas coisas, a primeira: alterar o nível decontrole do atributo a, na classe TestA, para public, desta forma a classe TestB o

enxergaria. Todavia, as boas práticas de programação não recomendam fazer isto. A segunda: é uma maneira mais elegante de resolvemos o problema, podemos criar métodos públicos na classe TestA, por exemplo, getA e setA, aí sim, através destesmétodos seria possível manipular o atributo da classe TestA.

 public class TestB extends

TestA{

 private int b=a;

}

TestB.java:3: a has private access in TestA

private int b=a; ^

 A linguagem Java tem para os atributos e métodos quatro níveis de controles: publ ic ,protected , defaul t e pr ivate .Para classes tem dois níveis: publ ic e default (também chamado de pacote ou de friendly).Este níveis de controle são os responsáveis pela acessibilidade ou visibilidade de atributos,e métodos.

Page 117: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 117/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Acessibilidade

Acessibilidade ou Visibilidade

 public class

 public sublass

Exemplos:

class

 public sublass

 protected class

 public sublass

 public default  protected

A tabela abaixo demonstra a acessibilidade para cada nível de controle

Modifi cador Mesma Classe 

Mesmo Package 

SubClasse Universo 

Public  sim sim sim sim

Protected  sim sim sim não

Private sim não não não

Default  sim sim não não

Page 118: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 118/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Page 119: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 119/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

rogramação Orientada a Objetos

 public class TestInstanceof 

{

 public static void main(String args[])

{

Object[] obarray = new Object[4];

obarray[0] = new Integer(3);

obarray[1] = new Float(3);

obarray[2] = new String("Teste");

obarray[3] = new Character('a');

if (obarray[3] instanceof Character)

{

System.out.println("Character");

}

}

}

Instanceof 

O operador instanceof é usado para identificar qual é o tipo do objeto esta “instanciado”.

Verifica qual é

objeto que está

contido na terceira

 posição do obarray

Page 120: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 120/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Exceções

Exception

O que são exceções ?

Exceções em Java são anomalias que podem acontecer durante a execução de um programa. Existem diversos tipos de exceções, desde erros de sintaxes até falha deequipamento, como, erro de leitura e gravação.

Para o tratamento de exceções, usamos as declarações try, catch e finally. A declaração try indica a parte do código aonde poderá ocorrer uma except ion,Já a declaração catch faz a captura da exceção, caso venha a ocorrer.

 A declaração finally, que é opcional, é utilizada para definir novo bloco de instruções

ou finalizar objetos que estão abertos, por exemplo, conexões. A execução destadeclaração é independente, da declaração catch, ou seja, mesmo que não aconteçanenhuma exceção os comandos e/ou instruções dentro da declaração finally serãoexecutados.

Exemplo:

try {// código que pode ocasionar uma exception}

catch(Classe Exceção objeto exceção){

// tratamento do erro}

finally {// código

}outry {

// código que pode ocasionar uma exception}catch(Classe Exceção objeto exceção)

{// tratamento do erro

}

Page 121: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 121/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Exceções

Estruturas básica das classes de exceção:

Exception

Throwable

Exception Error  

IOException RuntimeException

EOFException FileNotFoun

ExceptionArithmeticException

 NullPointerException

IndexOfBoundException

AWTError JVMError  

Exceptions mais comuns:

ArithmeticException - int i = 12 / 0NullPointerException - ocorre quando um objeto não foi instanciado.NegativeArraySizeException - ocorre quando é atribuído um valor nulo para um array.ArrayIndexOutOfBoundsException - ocorre quando foi violado o índice do array, ouseja, elemento não existe.

Categorias de Exceptions:

Existem três grandes categorias de exceções em Java. De fato, a classeJava.lang.Throwable age como uma classe pai , para que todos os objetos disparadospossam ser capturados pela declaração catch.Podemos usar a classe Throwable, para tratar as exceções, entretanto, existe umasubclasse que tratam erros específicos, por exemplo:- Exception, IOEception, SQLExceptoion, RuntimeException assim por diantePara maiores detalhes devemos consultar a documentação.

Page 122: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 122/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Exceções

Exception

Declare ou Manipule as Exception:

Na construção de um código, o desenvolvedor deve prever maneira para tratar possíveiserros. Existem duas formas de fazer isto. A primeira é com o uso da declaração try ecatch, como foi visto anteriormente, e a segunda maneira é indicando que a exceçãonão é dirigida para este método, neste caso usamos a palavra reservada throws paraque jogará a exceção para o método chamador.Sintaxe:

throws <classe de exceção>Exemplo:

public void troublesome( ) throws IOException

 public class TestThrows

{

 public static void main(String args[])

{

try

{

new TestThrows().divisao(10,0);}

e.printStackTrace();{

System.out.println("Deu erro " + e);

}

}

 public void divisao(int d1, int d2) throws ArithmeticException

{

System.out.println("Divisao: " + d1/d2);}

}

Criand o uma Except ion É permitido que o desenvolvedor crie suas próprias classes de exceção.

Cria uma trilha daocorrência da exceção

Lança a exceção

 para o método main

Page 123: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 123/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Exceções

Exception

Exemplo:

 public class ExceptionExemplo

{

 public static void main (String args[ ])

{

int status = 0;

String greetings [ ] = { "Hello word" ,

"No, I mean it!", "HELLO WORLD!"};

try {for(int i=0; greetings.length > i;i++)

System.out.println(greetings[i]);

}catch(ArrayIndexOutOfBoundsException e)

{

System.out.println("Exceção: " + e);

status = 1;

}

finally{

System.exit(status);

}

}

}

Implementação

do tratamento

de exceção

Neste exemplo o código funciona perfeitamente, entretanto a implementação docontrole de exceção, cumpre seu papel, de prevenção a falhas.

Page 124: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 124/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Exceções

Exception

Exemplo:

 public class ExceptionBadExemplo

{

 public static void main (String args[ ])

{

int status = 0;

String greetings [ ] = { "Hello word" ,

"No, I mean it!", "HELLO WORLD!"};

try {for(int i=0; 4 > i;i++)

System.out.println(greetings[i]);

}catch(ArrayIndexOutOfBoundsException e)

{

System.out.println("Exceção: " + e);

status = 1;

}

finally{

System.exit(status);

}

}

}

Implementação

do tratamento

de exceção

Hello wordNo, I mean it!HELLO WORLD!Exceção: java.lang.ArrayIndexOutOfBoundsException

Neste segundo exemplo forjamos um erro na instrução for ( o valor colocando nacondição é maior que o índice do array), isto resulta em uma exceção, que foi

devidamente capturada, pela instrução catch, e tratada veja abaixo:

Page 125: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 125/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Formatando Números e Datas

Para formatar ou criar uma máscara para apresentação de valores numéricos, usamos aclasse java.text.DecimalFormat, esta possui métodos para formatação de valoresmonetários, científico e percentuais entre outros.

 A formatação é feita por strings com caracteres especiais.Veja o exemplo:

import java.text.DecimalFormat;

import java.text.NumberFormat;

 public class DecimalFormat1 { public static void main(String args[]) {

//Cientifico

DecimalFormat df = new DecimalFormat("0.000E0000");System.out.println( df.format(1234.56));//Percentual

NumberFormat nf = NumberFormat.getPercentInstance();System.out.println(nf.format(0.67));

}

}

67%

Os valoreserãoexibidos no

seguinteformato:

1,235E000

3

Mascara

Instancia

Observe que o ponto indica a separação decimal e virgula a separação de milhar 

Principais símbolos:

Símbolo Significado

0 Representação o valor 0

# Representação qualquer valor  

, (virgula) Separação de milhar 

. (ponto)_ Separação de decimal- Representação valores negativos

; Separador de mascara, por exemplo: quandouma mesma mascara de duas formatações:###.##;(00.##)

$ Representação de valores monetários

Características Avançadas

Page 126: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 126/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Formatando Números e Datas

Formatação de Números:

Este exemplo demonstra formatação para valores monetário entre outros:

import java.text.DecimalFormat;

import java.text.NumberFormat;

 public class DecimalFormatMask {

 public static void main(String args[]) {

double valor = 1045.561;

DecimalFormat df = null;

df = new DecimalFormat("###,###.###");

System.out.println(df.format(valor));

df = new DecimalFormat("###,###.00");

System.out.println(df.format(valor));

df.applyPattern("#,###.00");

System.out.println(df.format(valor));

df.applyPattern("$#,###.00");

System.out.println(df.format(valor));

df.applyPattern("###.##;(###.##)");

System.out.println(df.format(valor - 1500.54D));

}

}

Características Avançadas

APIs

O valor sem formatação

Criando máscaras e a

impressão do valor 

Page 127: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 127/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Formatando Números e Datas

Formatação de Datas:

 A classe java.util.Date representa a data, num formato em milissegundos. Pararepresentar em outro formato, como em dia, por exemplo, podemos optar por usar aclasse GregorianCalendar .

Construtores:new Date() - Cria uma data que representa o instante de criação.new Date(long tempo) - Cria uma data com tempo em milissegundos após 1 de

 janeiro de 1970.

Principais Métodos:

after (Date d) - Retorna true se data for posterior a dbefore(Date d) - Retorna true se data for anterior a dgetTime() - Retorna os milissegundos da data (com relação a 1 de janeiro de 1970)setTime(long tempo) - Especifica a data em milissegundos (após 1 de janeiro de1970)

Podemos usar outros métodos para comparar datas como:compareTo() e equals()

SimpleDateFormat

 A classe java.text.SimpleDateFormat possui métodos para formatação de datas. Aformatação é baseado em modelo ou mascaras, ou seja, para exibirmos a data comoformato de 11/09/2001 é necessário usar a seguinte mascara: “dd/MM/yyyy”.

Principais Métodos:format(Date data) - Formata a data conforme a mascara de formatação definida noconstrutor.Date parse(String texto, ParsePosition posicao) - Interpreta o texto como uma data,retornando o um objeto Date, este método também usa mascara definida noconstrutor. O parâmetro posicao geralmente tem o valor new ParsePosition(0)

Características Avançadas

Page 128: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 128/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Formatando Números e Datas

Formatação de Datas:

Exemplo:

import java.text.SimpleDateFormat;

import java.util.GregorianCalendar;

 public class DateFormatMask {

 public static void main(String args[]) {

GregorianCalendar c = new GregorianCalendar(2001,9,27);SimpleDateFormat df;

df = new SimpleDateFormat("yyyy/MM/d");

System.out.println(df.format(c.getTime()));

//Mês

df = new SimpleDateFormat("yyyy/MMM/d");

System.out.println(df.format(c.getTime()));

df = new SimpleDateFormat("yyyy/MMMM/d");

System.out.println(df.format(c.getTime()));

//Dia da semanadf = new SimpleDateFormat("E d/MMMM/yyyy");

System.out.println(df.format(c.getTime()));

df = new SimpleDateFormat("EEEE d/MMMM/yyyy");

System.out.println(df.format(c.getTime()));

//Semana

df = new SimpleDateFormat("E d/MMMM/yyyy 'semana' w ");

System.out.println(df.format(c.getTime()));

df = new SimpleDateFormat("E d/MMMM/yyyy 'semana' W ");

System.out.println(df.format(c.getTime()));//Hora

df = new SimpleDateFormat("E d/MMMM/yyyy 'hora ' H':'m':'s");

System.out.println(df.format(c.getTime()));

//Data completa

df = new SimpleDateFormat("'Sao Paulo,' EEEE d ' de ' MMMM ' de ' yyyy");

System.out.println(df.format(c.getTime()));

}

}

Características Avançadas

Page 129: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 129/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Constantes

Características Avançadas

Para declarar uma variável, um método, um bloco ou até mesmo uma classe comoconstante usamos o modificador final.

Entretanto, o uso deste modificador deve obedecer a certas restrições como:• Uma classe constante não pode ter subclasses;• Um método constante não pode ser sobrescrito;• O valor para variável constante deve ser definido no momento da declaração ou atravésde um construtor, para variáveis membro, uma vez atribuído o valor, este não mudarámais.

 public final class TestFinalPai

{

 private final int VALOR;

 public TestFinalPai(int V)

{

VALOR = V;

}

}

 public class TestFinalFilho extends TestFinalPai

{

 public TestFinalFilho() {

super(10);

}

 public static void main(String args[]){

}

}

TestFinalFilho.java:1: canno t inherit from final TestFinalPai  public class TestFinalFilho extends TestFinalPai 

Veja o exemplo : 

Quando compilamosa classe um erro é gerado

Page 130: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 130/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Constantes

Características Avançadas

 public class TestFinal1

{

 private final int VALOR;

 public TestFinal1()

{

VALOR = 0;

}

 public static void main(String args[])

{

TestFinal1 tf= new TestFinal1();

System.out.println(tf.VALOR);}

}

 public class TestFinal2

{

 public static void main(String args[])

{

final int VAL;

VAL =0;

System.out.println(VAL);

}

}

Convenção, para variáveis co nst ant es (fi nal), o nome da v ariável deve ser escr ito em maiúscu lo.

Veja o exemplo : 

• TestFinal1: O valor é atribuído através de um construtor, note que a variável é membroda classe.• TestFinal2: O valor é atribuído no método, pois, neste caso a variável é um local 

Page 131: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 131/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

t1

Execução

t3 t5 t2

filaT1.start()

Características Avançadas

O que são Linhas?

São linha de execução em paralelo.

Java permite que seus programas executem ao mesmo tempo várias Threads, oprocesso de utilizar duas ou mais Threads de execução no mesmo programa échamado de Multithreads.

Três Partes de uma Linha :

Uma linha inclui três partes principais. Primeiro, CPU virtual. Segundo, código que estaCPU está executando. Terceiro, os dados no que o código trabalha. Podemoscompartilhar código e dados.

-----------------------------------------------------------------------------------------------------------------

Observações: 

-Quanto um computador tem somente um processador, as Threads são executadas emconcorrência. Entretanto quanto o computador tem mais de processado as Threads podem ser executadas em paralelo.-Um programa é considerado MultiThreads quanto a mesma Thread tem vários “instances”.

-----------------------------------------------------------------------------------------------------------------

Execução da Threads:

O método thread.start() não significa que Thread será executado imediatamente, ostart apenas o habilita para a fila de execução e que de acordo com sua prioridade eoutros Threads existentes pode ser o próximo a ser executada ou não.

Page 132: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 132/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Principais Métodos:

Método Descrição

void start() Habilita uma Thread para execuçãovoid interrupt() Interrompe a execuçãostatic void sleep(longms)

Suspende a execução de uma Thread pelo tempoespecificado, o tempo é um valor em milisegundo.Principal vantagem: Economiza processamento de CPU.

 Aplicação: Controle Diversos, processo de sincronizaçãoetc

static void yield() Suspende a execução da Thread corrente e dá aoportunidade de execução para a próxima Thread da filade execução de mesma prioridade.

boolean isAlive() Verifica se a Thread está ativo (se foi iniciada e aindaseu processamento não terminou). Não importa se aThread está em execução ou não.

Prioridades:

Método Descrição

setPriority() Ajusta o valor da prioridade da ThreadgetPriority() Pega o valor prioridade da ThreadObs: Podemos usar os valores constantes:Thread.MIN_PRIORITY, Thread.NORM_PRIORITY, Thread.MAX_PRIORITY,

Exemplo:... public int total(int valor) { 

synchronized (this) { 

valorTotal += valor;}

Características Avançadas

Sincronismo:

Todos os objetos em Java possuem um Monitor, que pode ser utilizado pelasThreads para evitar acessos simultâneos ao mesmo trecho de código, que causariainconsistência de dados. Uma Thread toma para si um monitor quando este estádisponível, ou seja, retém os dados, e após a execução os liberam. Para executar este processo é preciso usar a palavra synchronized .

Page 133: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 133/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Principais Métodos:

Método Descrição

wait() Indica que a Thread ativa deve esperar (parar aexecução) até que seja noficado (notify, por exemplo)

notify() Informa a Thread que está esperando (que foi paradopelo método wait()) e o habilita a execução

notifyAll() Informa todos as Thread que estão esperando (que foramparados pelo método wait()) e os habilita a execução

Principal vantagens das Threads:

- Incentiva o REÚSO de código

Cuidados: Evitar situação de Deadlock (travamento) 

Características Avançadas

Estado de espera (Putting Threads on Hold)

Vários mecanismos existem que podem parar a execução de uma linhatemporariamente. Seguindo este tipo de suspensão, execução pode ser retomadacomo se nada tivesse interrompido sua execução, a linha aparece ter executado umainstrução muito lentamente simplesmente.O método sleep foi introduzido na primeira seção e foi usado para deter uma linhapara um período de tempo.

 Às vezes é apropriado suspender execução de uma linha indefinidamente em qualcaso alguma outra linha será responsável para retomar a execução. Um par demétodos de Linha está disponível para isto. Eles são chamados suspend () e resume

().O método jo in ( ) cau sa a li nh a atual p ara esperar atéa li nha em qual o método  jo in écham ado term ina.

Page 134: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 134/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Características Avançadas

 public class TestThread {

 public static void main(String args[]) {

Xyz r = new Xyz();

Thread t = new Thread(r);t.start();

}}

class Xyz implements Runnable {

int i;

 public void run() {

i = 0;

while (true) {System.out.println("Hello " + i++);

if ( i == 50 ) break;

}

}

}

Este exemplo demonstra a implementação de uma Thread simples

“instance” da

Thread

O método start()

solicita a execução

da Thread

 A interface Runnable é responsável pelosmétodos run() 

 No método run() é

implementado o

corpo do método

Corpo do

método run()

Page 135: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 135/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Características Avançadas

 public class TestThread1 {

 public static void main(String args[]) {

Xyz r = new Xyz();

Thread t1 = new Thread(r);

Thread t2 = new Thread(r);

t1.start();t2.start();

}

}

class Xyz implements Runnable {

int i;

 public void run() {

i = 0;

for(;;) {System.out.println(Thread.currentThread());System.out.println(i++);

if (i == 50) break;

}

}

}

Este exemplo é parecido com anterior, entretanto, agora é demonstrado a execução deduas Threads.

“instances” da Thread

O método start()

solicita a execução

das Threads

 A interface Runnable é responsável pelos

métodos run() 

 No método run() é

implementado o

corpo do método

Corpo do

método run()éa parte do 

código que será 

repetido 

Retorna a referência

da Thread corrente

Page 136: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 136/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Características Avançadas

Este exemplo demonstra como configurar a prioridade de execução de uma Thread.

 public class TestThreadPrior {

 public static void main(String args[]) {

Thread t0 = new Thread(new TestPrior());

Thread t1 = new Thread(new TestPrior());

t0.setPriority(Thread.MAX_PRIORITY);

t0.start();System.out.println("Prioridade t1 " + t0.getPriority());System.out.println("----------------------------------");

t1.setPriority(Thread.MIN_PRIORITY);t1.start();System.out.println("Prioridade t1 " + t1.getPriority());System.out.println("----------------------------------");

}

}

class TestPrior implements Runnable {int i;

 public void run() {

i = 0;

try {  for(;;) { 

Thread.sleep(5); 

System.out.println(Thread.currentThread());

System.out.println(i++);if ( i == 50 ) break; }

 }catch(Exception e) {  }

}

}

Prioridades: Usamos

o método setPriority  para

definir e getPriority  parasaber qual é a prioridade

da Thread

Para usar:

O método sleep(),somos forçados

usar o controle

de exceção: try-catch

Page 137: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 137/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Características Avançadas

 public class TestThreadYield {

 public static void main(String args[]) {

ThreadYield t = new ThreadYield();

Thread t0 = new Thread(t);

Thread t1 = new Thread(t);

Thread t2 = new Thread(t);t0.setPriority(Thread.MAX_PRIORITY);

System.out.println("Prioridade t0 " + t0.getPriority());

t0.start();

t1.setPriority(Thread.NORM_PRIORITY);

System.out.println("Prioridade t1 " + t1.getPriority());

t1.start();

t2.setPriority(Thread.MAX_PRIORITY);

System.out.println("Prioridade t2 " + t2.getPriority());

t2.start();}

}

class ThreadYield implements Runnable {

int i;

 public void run() {

i = 0;

try {

for(;;) {

Thread.yield();System.out.println(Thread.currentThread());

System.out.println(i++);

if ( i == 50 ) break;

}

}catch(Exception e) {}

}

}

Este exemplo mostra a funcionalidade do método yield().

Suspende a execução da Threadcorrente e dá a oportunidade de

execução a próxima Thread da filade execução de mesma prioridade.

Page 138: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 138/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Características Avançadas

 public class ThreadContaCorrente implements Runnable{ 

int saldo = 100; public void run(){ 

System.out.println(Thread.currentThread().getName());for(int x=0; x < 10; x++)

{ try { Thread.sleep( (int) (Math.random() * 500));

catch(Exception err){ System.err.println("Erro: " + err); }

if (Thread.currentThread().getName().equals("deb")){ 

saldo -= 1; }

else{ 

saldo += 1; }

System.out.println(Thread.currentThread().getName() + " Saldo: " + saldo); }

 }} public class TestSynchronized {  public static void main(String args[]){ ThreadContaCorrente cc = new ThreadContaCorrente();

Thread debito = new Thread(cc);Thread credito = new Thread(cc);debito.setName("deb");debito.start();credito.setName("cre");credito.start();

}}

Este exemplo é divido em duas partes. A primeira parte não implementa o recurso desincronismo.

Page 139: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 139/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Threads

Características Avançadas

Esta a segunda parte. Neste caso implementamos o recurso de sincronismo.

public class TestSynchronizedON{

public static void main(String args[]){

ThreadContaCorrenteON cc = new ThreadContaCorrenteON();Thread debito = new Thread(cc);Thread credito = new Thread(cc);

debito.setName("deb");debito.start();credito.setName("cre");credito.start();

}}

 public class ThreadContaCorrenteON implements Runnable{ int saldo = 100;

 public synchronized void run()

{ System.out.println(Thread.currentThread().getName());for(int x=0; x < 10; x++)

{ try { Thread.sleep(5); }

catch(Exception err){ System.err.println("Erro: " + err); }

if (Thread.currentThread().getName().equals("deb")){ 

saldo -= 1;

 } else{ 

saldo += 1; }

System.out.println(Thread.currentThread().getName() + " Saldo: " + saldo); }

 }}

Implementação

do sincronismo

Page 140: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 140/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Serialization

Características Avançadas

Serialization é implementação de persistência em Java. O que é persistência ?É a possibilidade de gravar métodos virtuais em um meio físico, por exemplo Hard Disk.Entretanto alguns recursos não suportam a persistência são eles: THREADS, IMAGENSE CONEXÕES.

 A persistência deve ser implementada com cuidado, pois, uma vez implementada,poderemos ter problemas com segurança., pois os métodos podem representar asregras de negócios e estas podem acabar sendo violadas.

Para especificar os recursos e/ou atributos que não devem ser persistindo, devemosusar a palavra reservada chamada “transient”.

Exemplos:

Impl emen tação do mod ific ado r tran sien t 

import java.io.*;

 public class MyClass implements Serializable {  public t ransient Thread MyThread; private String codeID;

 }

import java.io.*; public class MyClass implements Serializable { 

 public t ransient int code; private String codeID;

 }

Page 141: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 141/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Serialization

Características Avançadas

import java.io.*;import java.util.*;

 public class TestSerializeVector { TestSerializeVector()

{ Vector v = new Vector(); for(int x=0;x<5;x++)

v.addElement(new Integer(x));

try { FileOutputStream f = new FileOutputStream ("vector.ser");ObjectOutputStream s = new ObjectOutputStream (f);s.wri teObject (v);

s.close (); } catch (IOException e) { 

e.printStackTrace (); }

 } public static void main (String args[]) { 

new TestSerializeVector(); }}

Este exemplo é divido em duas partes. A primeira exibe como gravar um objeto emarquivo. Gravar objeto v etor no arquivo Vector.ser 

Os dados do

objeto

Gravação

Page 142: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 142/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Serialization

Características Avançadas

import java.io.*;import java.util.*;

public class TestUnSerializeVector {

TestUnSerializeVector () {Vector v = null;Object obj = null;

try {FileInputStream f = new FileInputStream ("vector.ser");ObjectInputStream s = new ObjectInputStream (f);System.out.println(s);v = (Vector) s.readObject ();

s.close ();} catch (Exception e) {

e.printStackTrace ();}

System.out.println("Unserialized Vector object from vector.ser");

Object[] objArray = v.toArray();for(int x=0;x<5;x++)

{System.out.println(objArray[x]);

}}public static void main (String args[]) {

new TestUnSerializeVector();}

 }

 A segunda parte demonstra como recuperar o objeto e os dados gravados em umarquivo. Nome do arquivo Vector.ser (objeto vector)

Recuperação

 Note que é

necessário fazer 

a coerção de tipo

(Vector)

Page 143: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 143/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Serialization

Características Avançadas

import java.io.*;

import java.util.Date;

import java.util.*;

 public class TestSerialize {

 public void doSerialize()

{

try

{ FileOutputStream ostream = new FileOutputStream("dados.ser");

ObjectOutputStream p = new ObjectOutputStream(ostream);

 p.writeInt(12345);

 p.writeObject("Today"); p.writeObject(new Date());

 p.flush();

ostream.close();

} catch (Exception e) {

e.printStackTrace ();

}finally

{ System.out.println("Process ok"); }

}

 public void unDoSerialize() {

try

{ FileInputStream istream = new FileInputStream("dados.ser");ObjectInputStream p = new ObjectInputStream(istream);

int i = p.readInt();String today = (String)p.readObject();Date date = (Date)p.readObject();System.out.println(p);

istream.close();

System.out.println("String: " + today);

System.out.println("Date: " + date);

System.out.println("int: " + i);

} catch (Exception e) {

e.printStackTrace ();

}

}

TestSerialize()

{ doSerialize();

unDoSerialize();

}

 public static void main(String args[])

{

new TestSerialize();

}

}

Gravação

Recuperação

Para cada tipo

de dados foiusado o método

apropriado.

Objeto = readObject  Int = readIn

Este exemplo mostra comocriar um método para fazer a gravação e outro parafazer a recuperação.

Page 144: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 144/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

TCP/IP

Características Avançadas

Servidor 

ServerSocket(port #)

ServerSocket.accept()

Sockect()

(Fluxo de Mensagens)InputStream

Out putStream

Socket.close()

Cliente

ServerSocket(host,

 port #)

(tentativa de

conexão)

(Fluxo de Mensagens)InputStream

Out putStream

Socket.close()

TCP/IP Socket Connections

 API java.net possiblita a implementação de Datagram Sockets e Stream Sockets. ComSoquetes de Fluxo, podemos estabelecer conexão entre um cliente e servidor, enquantoperdurar a conexão podemos trocar mensagens, este fluxo de mensagem é controlado,casa haja algum problema entre as mensagens enviadas e recebidas, elas podem ser corrigidas. Este serviço é chamado orientado a conexão, o protocolo utilizado é TCP.

Já os Soquetes Datagramas, as mensagens são transmitidas em pacotes, entretanto, o

fluxo de troca de mensagens não são controlados, isto quer dizer, que eles podem ser perdidos (nunca chegar ao seu destino, por exemplo) entre outras coisas. Este serviço échamado serviço sem conexão, o protocolo utilizado é UDP.

 Abaixo um esquema válido para Serviço orientada a conexão (TCP)

Page 145: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 145/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

TCP/IP

Principais métodos:

Métodos Descrição

ServerSocket(port #,

number clientes)

Estabelece a porta em que um servidor espera aconexão. O segundo parâmetro para o construtor é quantidade de clientes que podem esperar umaconexão e ser processada pelo servidor, se asfilas estiverem repletas, as conexão sãorecusadas automaticamente.

accept  Espera o estabelecimento de uma conexão,retorna o objeto socket (quando estabelecido umaconexão)

sockets responsável pelo gerenciamento dos serviçosbaseados em conexão.

close Fecha a conexãosetSoTimeout(int timeout) Estabele um timeout em milesegundos

 public int getSoTimeout() Retorna o tempo estabelecido para t imeout  

Classe de Exceptions:SocketException

Características Avançadas

Page 146: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 146/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

TCP/IP

Características Avançadas

impo rt java.net.*; import java.io.*;

 public class TestServer {  public static void main(String args[]) { 

ServerSocket s= nu ll ; 

try { s = new ServerSoc ket(5432); 

 } catch (IOException e) { e.printStackTrace();

 }

for (;;) { try { 

Socket s1 = s.accep t(); 

Outp utStream s1ou t = s1.getOu tpu tStream(); DataOutp utStream do s = new DataOutpu tStream (s1ou t)

 // Envia a mensagemdo s.writeUTF("Hello Net World !"); 

dos.close(); 

s1.close();  } catch (IOException e) { 

e.printStackTrace(); }

 } }}

Exemplos:

Este exemplo é divido em duas partes. A primeira exibe como criar um Servidor.

API

Objecto

ServerSocket  Número da Porta

Fluxo de Dados

Encerra a o fluxo

de dados e aconexão

Espera o

estabelecimentode conexão

Page 147: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 147/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

TCP/IP

Características Avançadas

impo rt java.net.*; import java.io.*;

 public class TestClient {  public static void main(String args[]) { 

try { 

 // Endereço IP é Localhost Soc ket s1 = new Soc ket(" 127.0.0.1" , 5432); 

Inp utStream is = s1.getInp utStream(); DataInp utStream dis = new DataInp utStream(is); 

System.out.print ln(dis.readUTF()); 

dis.close();s1.close();

 } catch (ConnectException connExc) { System.err.println("Could not connect to the server.");

 } catch (IOException e) { e.printStackTrace();

 } }

}

Exemplos:

Este é segunda parte. A criação de um cliente.

Objeto Socket, veja

os parâmtros no Construtor 

“”Endereço IP”

e “Número da Porta” do

Servidor 

Fluxo de Dados

Leitura do Fluxo

API

Page 148: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 148/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

TCP/IP

Características Avançadas

Cenário da Conexão Servidor e Cliente

TestServer TestClient

TCP/IP

129.1.13.1

IP

Porta

5432 Hello...

Mensagem

Fluxo de Dados

Page 149: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 149/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Page 150: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 150/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

ntrodução a UML

O Quê é a UML?

 A UML (Linguagem de Modelagem Unificada) é uma linguagem-padrão para elaboração

da estrutura de projetos de software. A UML poderá ser usada para:

• Visualização

• Especificação

• Construção de modelos e diagramas

• Documentação.

 A UML é adequada para a modelagem de sistemas, cuja a abrangência poderá incluir 

sistemas de informação corporativos a serem distribuídos a aplicação baseadas em Webe até sistemas complexos embutidos de tempo real.

 A UML é apenas uma linguagem e, portanto, é somente uma parte de um método para

desenvolvimento de software. Ela é independente do processo, apesar de ser 

perfeitamente utilizada em processo orientado a casos de usos, centrado na arquitetura,

iterativo e incremental.

• Diagrama de Caso de Uso

• Diagrama de Seqüência

• Diagrama de Colaboração

• Diagrama de Estados

• Diagrama de Classes

• Diagrama de objetos

• Diagrama de Atividades

• Diagrama de Componentes

• Diagrama de Distribuição

• Diagrama de Pacotes

Principais

Diagramas:

Page 151: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 151/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Casos de Uso

O que são Caso de Uso?

São diagramas de que permitem visualizar, especificar e documentar o comportamento

de um elemento. Esses diagramas fazem com que sistema, subsistemas e classes

fiquem acessíveis e compreensíveis, por apresentarem uma visão externa sobre como

esses elementos podem ser utilizados no contexto.

Definição:

Caso de Uso é uma descrição de um conjunto de seqüências de ações, inclusivevariantes, que um sistema pode produzir um resultado de valor observável por um ator.

 A representação gráfica é uma elipse.

Elementos:

Ator:

Um ator representa um conjunto coerente de papéis que os usuários de casos de uso

desempenham quanto interagem com esses casos de uso. Geralmente um ator 

representa um papel, que pode ser de pessoa, de um sistema ou de um dispositivo.

Cenários:

Podemos definir os cenários como uma “descrição” de um Caso de uso. O caso de uso

deve ser descrito através de cenários. Devem ser construídos tantos cenários quantos

forem necessários para se entender completamente todo o sistema. Podem ser 

considerados como teste informais para validação dos requisitos do sistema.

ntrodução a UML

Page 152: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 152/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagramas de Caso de Uso e Extensões

Professor 

Selecionar curso

 para ensinar 

Pedir lista dos

matriculados

Gerenciar 

Manter informação de

aluno

Manter informação de

 professor 

Gerar catalogo

Manter informações dos

cursos

Sistema de

cobrançaMatrícula nos

Cursos

Aluno

Casos de Uso

Generalização:

Entre casos de uso é parecida à generalização existente entre as classes.No caso de uso a generalização significa que o caso de uso filho herda ocomportamento e o significado do caso de uso pai; o filho poderá acrescentar ousobrescrever o comportamento de seu pai; poderá ser substituído em qualquer local qual o pai apareça.

Include:

Quando você estiver se repetindo em dois ou mais caso de uso separados,

devemos evitar a repetiçãoExtends:

Quando estivermos descrevendo uma variação em comportamento normal,entretanto, querendo fazer uma descrição mais controlada, explicando os pontosde extensão no caso de uso.

Realizes:

Especifica a colaboração entre os casos de usoUse (ob so leto): Especifica que a semântica do elemento de origem depende da

semântica da parte pública do destino

ntrodução a UML

Page 153: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 153/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Seqüência

O que é Diagramas de Seqüência?

É um diagrama que exibe a colaboração dinâmica entre os vários objetos de um sistema.O principal aspecto deste diagrama é que a partir dele percebe-se a seqüência demensagens enviadas entre os objetos. Ele mostra a interação entre os objetos, algumaevento que acontecerá em um ponto específico da execução do sistema.

formulários

de registro

formulário

de matrícula

cursos

disponíveis

Ator (José) entrar com chave de

acessovalidar acesso

entrar com o

semestre

criar nova matrículaapresentar em tela

obter cursos

Diagrama de Seqüência

ntrodução a UML

Page 154: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 154/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Colaboração

O que é Diagramas de Colaboração?

É um diagramas que mostra a colaboração dinâmica entre os objetos, semelhante aodiagrama de seqüência. No diagrama de colaboração, além de mostrar a troca demensagens entre os objetos, percebe-se também os objetos com os seusrelacionamentos. A interação de mensagens é mostrada em ambos os diagramas. Se aênfase do diagrama for o decorrer do tempo, é melhor escolher o diagrama de seqüência,mas se a ênfase for o contexto do sistema, é melhor dar prioridade ao diagrama decolaboração. Podemos também escolher ambos.

O diagrama de colaboração é desenhado como um diagrama de objeto, onde os diversosobjetos são mostrados juntamente com seus relacionamentos. As setas de mensagenssão desenhadas entre os objetos para mostrar o fluxo de mensagens entre eles. Asmensagens são nomeadas, que entre outras coisas mostram a ordem em que asmensagens são enviadas. Também podem mostrar condições, interações, valores deresposta e etc. O diagrama de colaboração também pode conter objetos ativos, queexecutam paralelamente com outros.

6:obter cursos

Ator (José)

formulários de registro

2: validar acesso

1:entrar com chave

de acesso3:entrar com o

semestre

4:criar nova matrícula

formulário de matrículacursos disponíveis

5:apresentar 

em tela

Diagrama de Colaboração

ntrodução a UML

Page 155: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 155/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Estado

O que é Diagrama de Estado?

É um diagrama que tipicamente complementa a descrição das classes. Pois estediagrama exibe todos os estados possíveis que objetos de uma certa classe podem seencontrar. E mostra também quais são os eventos do sistemas que provocam taismudanças.Não necessário escrever o diagrama de estado para todas as classes de um sistema,mas apenas para aquelas que possuem um número definido de estados conhecidos eonde o comportamento das classes é afetado e modificado pelos diferentes estados.

Diagramas de estado capturam o ciclo de vida dos objetos, subsistemas e sistemas.Eles mostram os estados que um objeto pode possuir e como os eventos (mensagensrecebidas, tempo, erros, e condições sendo satisfeitas) afetam estes estados ao passar do tempo.

Registro fechado

[númeroDeAlunos<3]

cancelarCurso

cancelarCursocancelarCurso

Registro fechado[númeroDeAlunos>=3

Registro fechado [númerode alunos =10]^Curso

.Criar relatório

Matrícula aberta/inicialize

númeroDeAlunos = 0

Curso Completado

faça: Gerar lista dealunos

Criação

faça: Crie o

objeto curso

Atribuição Cursofaça: Atribuir um

rofessor ao curso

Curso Aberto

Entrada: Registre

um aluno

Adicionar Aluno

Curso Encerrado

faça: relate cursoesta cheio

Curso Cancelado

faça: envie notificação

de cancelamento

cancelarCurso

ntrodução a UML

Page 156: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 156/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Atividade

O que é Diagrama de Atividade?

É um diagramas que exibe o fluxo seqüencial das atividades, é geralmente utilizado parademonstrar as atividades executadas por uma operação específica do sistema, como por exemplo seleção de um item do menu principal. Consistem em estados de ação, quecontém a especificação de uma atividade a ser desempenhada por uma operação dosistema. Decisões e condições, como execução paralela, também podem ser mostradosna diagrama de atividade. O diagrama também pode conter especificações demensagens enviadas e recebidas como partes de ações executadas.Diagramas de atividade capturam ações e seus resultados. Eles focam o trabalhoexecutado na implementação de uma operação (método), e suas atividades numainstância de um objeto. O diagrama de atividade é uma variação do diagrama de estado epossui um propósito um pouco diferente do diagrama de estado, que é o de capturar ações (trabalho e atividades que serão executados) e seus resultados em termos dasmudanças de estados dos objetos.

Fazer Pedido

Cliente

Processar Pedido

Separar Produtos

Enviar Pedido

Cobrar Cliente

Fechar Pedido

Receber Pedido

Pagar Fatura

Vendas Estoque

ntrodução a UML

Page 157: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 157/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Pacotes

Como podemos definir o diagrama de pacotes?

 A definição de Pacote é uma generalização, ou seja, um agrupamento, com o propósito deorganizar as Classes de Objetos em grupos. Esta abordagem facilita a análise a medidaque o número de Classes de Objetos cresce num do cenário. O tipo de relacionamento élinha pontilhada com uma seta que indica dependência.

 A notação usada pela UML para representar pacotes é:

 Nome do Pacote

Exemplo: As classes pertencentes ao Sistema de Matrícula podem ser agrupadas em três pacotes:

• UI (Interface com usuário)

• Regras de Negócio• Interfaces de Banco de Dados

Interfaces de

Banco de Dados

{abstrata}

Interfaces com

UsuárioRegras de

 Negócios

Interface

Oracle

Interface

MySQL

ntrodução a UML

Page 158: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 158/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Classes

O que é um Diagrama de Classes?

É um diagrama que demonstra a estrutura estática das classes de um sistema e seusrelacionamentos. Classes podem se relacionar com outras através de diversas maneiras:associação (conectadas entre si), dependência (uma classe depende ou usa outra classe),especialização (uma classe é uma especialização de outra classe), ou em pacotes(classes agrupadas por características similares). Todos estes relacionamentos sãomostrados no diagrama de classes juntamente com as suas estruturas internas, que sãoos atributos e operações. O diagrama de classes é considerado estático já que a estrutura

descrita é sempre válida em qualquer ponto do ciclo de vida do sistema. Um sistemanormalmente possui alguns diagramas de classes, já que não são todas as classes queestão inseridas em um único diagrama e uma certa classes pode participar de váriosdiagramas de classes.

1..*

1

1

tem

Professores

Pessoa

Alunos FuncionáriosAdministrativo

Curso

Disciplinas

Matricula11

1

Uma classe num diagrama pode ser diretamente implementada utilizando-se umalinguagem de programação orientada a objetos que tenha suporte direto paraconstrução de classes. Para criar um diagrama de classes, as classes têm que estar identificadas, descritas e relacionadas entre si.

ntrodução a UML

Page 159: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 159/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Objetos

O que é um Diagrama de Objetos?

É um diagrama que exibe uma variação do diagrama de classes e utiliza quase a mesmanotação. A diferença é que o diagrama de objetos mostra os objetos que foram“instanciados” das classes. O diagrama de objetos é como se fosse o perfil do sistema emum determinado momento de sua execução. A mesma notação do diagrama de classes éutilizada, entretanto há duas diferenças: os objetos são escritos com seus nomessublinhados e todas as instâncias num relacionamento são mostradas. Os diagramas de

objetos não tem a mesma importância do diagramas de classes, mas eles são muito úteispara exemplificar diagramas complexos de classes ajudando muito em sua compreensão.Diagramas de objetos também são usados como parte dos diagramas de colaboração,onde a colaboração dinâmica entre os objetos do sistema são mostrados.

Nome: “Fulano de Tal”

Data: 23-02-2001

:Aluno

Matricula: 201-23-02-01Curso: Adm Empresas

201-23-02-01:Matricula

ntrodução a UML

Page 160: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 160/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Componente

O que é um Diagrama de Componente?

É um diagrama que exibe o sistema por um lado funcional, expondo as relações entreseus componentes e a organização de seus módulos durante sua execução.O diagrama de componente descreve os componentes de software e suas dependênciasentre si, representando a estrutura do código gerado. Os componentes são aimplementação na arquitetura física dos conceitos e da funcionalidade definidos naarquitetura lógica (classes, objetos e seus relacionamentos). Eles são tipicamente osarquivos implementados no ambiente de desenvolvimento.

Curso.jar Pessoa.jar  

Aluno.class Professores.classDisciplina.classr 

ntrodução a UML

Page 161: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 161/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Diagrama de Distribuição

O que é Diagrama de Distribuição?

É um diagrama que exibe a arquitetura física do hardware e do software no sistema.Pode apresentar os atuais computadores e periféricos, juntamente com as conexões queeles estabelecem entre si e pode mostrar também os tipos de conexões entre essescomputadores.Especifica-se também os componentes executáveis e objetos que são alocados paramostrar quais unidades de software são executados e em quais computadores sãoexecutados.

O diagrama de distribuição demonstra a arquitetura “runtime” de processadores,

dispositivos físicos e de software que executam no ambiente onde o sistemadesenvolvido será utilizado. É o último diagrama da topologia do sistema, descrevendoa estrutura de hardware e software que executam em cada unidade.

O diagrama de distribuição é composto por componentes, que possuem a mesmasimbologia dos componentes do diagrama de componentes, nodes, que significamobjetos físicos que fazem parte do sistema, podendo ser uma computador cliente emuma Rede, um computador Servidor, uma impressora, um roteador, etc., e conexões

entre estes nodes e componentes que juntos compõem toda a arquitetura física dosistema.

Cliente AServidor 

de Aplicação

Servidor de Banco de

Dados

<<TCP/IP>><<TCP/IP>>

0..* 1 1 1

ntrodução a UML

Page 162: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 162/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Transformando modelos UMLem código Java

Page 163: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 163/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Implementação Java

ransformando diagramas UML em código Java

import java.awt.Graphics;

 public class Hello extends java.applet.Applet

{  public void paint(Graphics g)

{

g.drawString("Hello", 15,15);

}

}

Nossa proposta é apresentar o mais simpl es exemp lo de ap lic ação UML e Java, por isso, não temos intenção de esgotar o tema UML.Nosso exemplo é um velho conhecido, o programa Hello. Bem vamos começar pelaimplementação do código e depois faremos uma engenharia reversa para obtermos osdiagramas e demais itens UML. Veja os passos abaixo:

 public class

Tappletextends

Applet {

}

Código fonte

(java)Bytcode

(java)

Compilação

<HTML>

<body>

..

</body>

</HTML>

Arquivo

HTML

1 2

3

4

O programa Java

1

Primeiro Passo:Criação do programa Java,

um Applet.Segundo Passo:Compilar o programa

Page 164: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 164/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Implementação Java

<HTML>

<CAPTION>Hello</CAPTION>

<TR><TD>

<APPLET CODE="Hello.class" WIDTH=100 HEIGHT=100>

</APPLET>

</TD></TR>

</HTML>

A página HTML, Hello.html

3

4

A execução

Terceiro Passo:Criação a página HTML,

o nome será Hello.html.

Para encerrar Quarto Passo:Execução do programa, podemosusar o Browser, mas neste caso usamos o

 AppletViewer , que é utilitário Java, que

que exibe Applet, a partir de páginas HTML

Bem agora vamos para segunda parte, que é a modelagem dessa aplicação usandoUML.

ransformando diagramas UML em código Java

Page 165: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 165/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Modelagem UML

 A Modelagem UML. Do programa Hello:

Hello

 paint()g.drawString

(“Hello”, 15, 15)

O programa Hello pode ser representado graficamente pela figura acima, é claro que foiomitido os detalhes e a implementação do método paint é feito através de nota

Hello

 paint() Graphics

Applet

 Agora temos um modelo de fato, veja os relacionamentos (herança e navegação) entreas classes e a definição do método paint. O exemplo abaixo faz um mapeamento entreo código Java e modelo UML.

Hello

 paint() Graphics

Applet

import java.awt.Graphics;

 public class Hello extends  java.applet.Applet 

 public void paint (Graphics g){  g.drawString("Hello", 15,15);

 }

ransformando diagramas UML em código Java

Page 166: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 166/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Modelagem UML - Pacotes

ransformando diagramas UML em código Java

 java org sun javax

Bem como já dissemos, (Veja Miscelania - Pacotes) a linguagem Java é estruturada empacotes, estes pacotes contém classes que por sua vez contém atributos e métodos.Podemos usar a estrutura de pacotes para associar classes com semânticas semelhante,ou seja, classes que tem objetivo comum. Veja a estrutura abaixo:

applet awt

net

rmiiobeans

lang

math security

utiltextsql

As classes Applet

(pacote applet) e

Graphics (pacote) awtque colaboram com

a classe Hello

Principais

 pacotesda Linguagem

Java

Principais

subpacotes

do pacote

Java

Page 167: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 167/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Modelagem UML

ransformando diagramas UML em código Java

 java

awt

applet

lang

Hello

Modelagem UML - Pacotes

 A figura acima demonstra o Diagrama de Pacotes da classe Hello, o pacote raiz (maior)é o Java e outros outros pacotes (menores), que estão aninhados entro do pacote Java,são os subpacotes, o relacionamento entre eles se dá através de dependência (setapontilhada). Por exemplo:

 A classe Hello depende do pacote java.applet. E o java.applet depende do pacote java.awt.Veja o código e os respectivos pacotes:

import java.awt.Graphics;

 public class Hello extends java.applet.Applet{

 public void paint(Graphics g)

{

g.drawString("Hello", 15,15);

}

}

appletawt

lang

Page 168: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 168/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

ransformando diagramas UML em código Java

 java

awt

applet

lang

Hello

 AppletContext

 Applet

 AppletStub

Panel(from awt)

Container (from awt)

Component 

(from awt)

 AudioClip

Object 

(from lang)

Graphics....

abstract void drawString(AttributedCharacterIterator iterator, int x, int y)

abstract void drawString(String str, int x, int y)

....

Esta figura demonstra uma visão mais detalhada dos pacotes e as respectivas classes eatributos.

Modelagem UML - Pacotes

Interface

Page 169: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 169/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

ransformando diagramas UML em código Java

Podemos fazer a modelagem da ordenação de eventos usando uma Diagrama de

Sequência, Veja o diagrama logo abaixo. A sequência se inicia com a execução doobjeto Thread que, por sua vez,1 - invoca o método run() de Toolkit.2 - O objeto Toolkit então chama uma de seus próprios métodos, callbackloop() que,a seguir, chama ...3 - handleExpose de ComponentPeer .4 - O objeto ComponentPeer então chama o método paint() de seu alvo. O objetoComponentPeer assume que seu atributo é um Component, (Hello) e assim o métodopaint() é executado de forma polimorfica.

Modelagem UML - Diagrama de Seqüência

:Thread :Toolkit :ComponenPeer   :target Hello

run

run callbackLoop

handleExpose paint

Diagrama de Seqüência

Page 170: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 170/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

ransformando diagramas UML em código Java

Modelagem UML e Codificação em Java

Herança Múltipla Vejamos a codificação Java:

 public class ClientePessoaFisica extends Cliente implements Pessoa

{

 public ClientePessoaFisica()

{

setNome("Duke");

System.out.println("Nome: " + getNome());

System.out.println("Tem dependente: " + getDependente(0));

}

 public boolean getDependente(int dependente){ 

return (dependente>0)?true:false; }

}

 public interface Pessoa

{

 public boolean getDependente(int dependente);

}

 public class Cliente

{

String nome;

 public String getNome()

{

return this.nome;

}

 public void setNome(String nome)

{this.nome = nome;

}

}

 public class ClientePessoaJuridica extends Cliente

{

 public ClientePessoaJuridica()

{

System.out.println("Nome: " + getNome());}

}

Implementação do

método assinado

na Interface Pesso

Assinatura do método

Atributo

Métodos

Page 171: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 171/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Page 172: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 172/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Utilitários

JavaDoc (Documentação)

Opção Valor Descrição-d path de saída Diretório onde será gerado os arquivos HTML

-sourcepath path Especifica o diretório raiz dos fontes ou dos Package-public Documenta apenas variáveis e métodos públicos-private Documenta todas as variáveis e métodos

Sintaxe: Javadoc [Opções] package/arquivo < package/arquivo>

Exemplo: javadoc MinhasClasses.class

Tags para Documentação: Usar: /** e */

Tag Declaração Class eInterface

Construtor Método Atributo

@see Cria um link com outra página HTML

X X X X

@deprecated Informa quais métodosestão ultrapassados

X X X X

@author Nome do Autor   X@param Documenta o parametro X X@throws@Exception

Documenta Exceções X X

@return Documenta o returno (valor  e tipo)

X

Javadoc

É uma utilitário do JDK que gera a documentação dos programas java, geralmenteem formato HTML.Localização JDK1.X/BIN/Javadoc.Sintaxe padrão: javadoc <arquivofonte.java>

Page 173: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 173/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

usage: javadoc [options] [packagenames] [sourcefiles] [classnames][@files]

-overview <file> Read overview documentation from HTML file-public Show only public classes and members-protected Show protected/public classes and members(default)-package Show package/protected/public classes andmembers-private Show all classes and members-help Display command line options-doclet <class> Generate output via alternate doclet-docletpath <path> Specify where to find doclet class files

-1.1 Generate output using JDK 1.1 emulating doclet-sourcepath <pathlist> Specify where to find source files-classpath <pathlist> Specify where to find user class files-bootclasspath <pathlist> Override location of class files loaded

by the bootstrap class loader-extdirs <dirlist> Override location of installed extensions-verbose Output messages about what Javadoc is doing-locale <name> Locale to be used, e.g. en_US or en_US_WIN-encoding <name> Source file encoding name-J<flag> Pass <flag> directly to the runtime system

Provided by Standard doclet:

-d <directory> Destination directory for output files-use Create class and package usage pages-version Include @version paragraphs

-author Include @author paragraphs-splitindex Split index into one file per letter-windowtitle <text> Browser window title for the documenation-doctitle <html-code> Include title for the package index(first)page-header <html-code> Include header text for each page-footer <html-code> Include footer text for each page-bottom <html-code> Include bottom text for each page-link <url> Create links to javadoc output at <url>-linkoffline <url> <url2> Link to docs at <url> using package list at<url2>-group <name> <p1>:<p2>.. Group specified packages together in overviewpage-nodeprecated Do not include @deprecated information

-nosince Do not include @since information-nodeprecatedlist Do not generate deprecated list-notree Do not generate class hierarchy-noindex Do not generate index-nohelp Do not generate help link-nonavbar Do not generate navigation bar-serialwarn Generate warning about @serial tag-charset <charset> Charset for cross-platform viewing ofgenerated documentation.-helpfile <file> Include file that help link links to-stylesheetfile <path> File to change style of the generateddocumentation-docencoding <name> Output encoding name

Javadoc

JavaDoc (Documentação)

Utilitários

Page 174: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 174/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

JavaDoc (Documentação)

Utilitários

Este exemplo exibe como implementar as tags de documentação que serão usadospelo utilitário Javadoc

import java.util.List;

/*** @author YourName* @version 2.0*/

 public class DocExemplo {

/** Declaração e atribuição de x. */ private int x;

/*** This variable a list of stuff.* @see #getStuff()*/

 private List stuff;

/**

* O construtor inicia a variavel x.* @param int x*/

 public DocExemplo(int x) {

this.x = x;

}

/*** Este método retorna algum valor.* @throws IllegalStateException se nenhum retorno for encontrado* @return A lista de valores*/

 public List getStuff()

throws IllegalStateException {

if ( stuff == null ) {

throw new java.lang.IllegalStateException("Erro, sem valor");

}

return stuff;

}

}

Page 175: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 175/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

JavaDoc (Documentação)

Utilitários

Exemplo:

Para gerar a documentação digite o seguinte comando:c:\jdk1.3\bin\javadoc.exe -version -author DocExemplo.java...

Depois chame a página principal “index.html” via Browser.

 A figura acima é exemplo de documentação gerada pelo Javadoc.

Page 176: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 176/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Jar (Compactação, Agrupamento e Distribuição)

Sintaxe: jar opções [meta-arq] nome-arquivo-destino [nome-arquivo-entrada]

Argumento Descrição

meta-arquivo Arquivo que contém as informações sobre o arquivo destino gerado.Este argumento é opcional, entretanto um arquivo meta-arquivo égerado, default, META-INF/MANIFEST.INF

arquivo-destino Nome do arquivo jar. A extensão .jar não é automatica, deve ser especificada

arquivo-entrada Nome dos arquivos a serem agrupados e/ou compactados

Opções Descrição

c Cria um novo arquivo

t Mostra o conteúdo de um arquivo existente

x Extrai todos os arquivosx <arquivo> Extrai o arquivo especificado

f Indica que a operação (c,t ou x) será executada sobre o arquivo e nãosobre a entrada/saída padrão.

v Mostra o status da operação (verbose)

m Suprime a geração do meta-arquivo

o Faz apenas o agrupamento, sem compactação. Deve ser utilizado para arquivos jar na variável de ambiente Classpath

Exemplos:

 jar cvf Classes.jar ClassA.class ClassB.class ClassC.classPara ver o conteúdo do arquivo jar, gerado: jar tvf Classes.jar Para extrair arquivo: Jar xvf Classes.jar 

Obs: a opção f é sempre utilizada em operações com arquivos.

Jar 

É um utilitário do JDK que faz agrupamento de arquivos em único, um arquivo .jar,geralmente com compressão. Localização JDK1.X/BIN/Jar. É usado também parafazer a distribuição de aplicação.

Os arquivos Jar podem conter um aplicação inteira, por isso, ele é usado para fazer distribuição de aplicações. Também é bastante usado com componente Javabeans e

 Applet.

Utilitários

Page 177: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 177/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

 Esta classe Java requer um parâmetroque deve ser passando na chamadada classe, se o parâmetro não for 

informado, isto provocaráuma exceção

JDB (debug)

É um utilitário do JDK, para fazer depuração de código. O primeiro passo é escrever um programa em Java e depois aplicar o depurador de código. Principais comandos:run (chama a máquina virtual),cont (continução) equit ou exit (sai do JDB). Veja o exemplo abaixo:

Utilitários

 public class Hello

{

 public static void main (String arg [])

{ String s = "world";

System.out.println("Hello " + arg[0]);}

}

O próximo passa é abrir uma janela “DOS”, chame o depurador   jdb

<nomedoprograma> <enter>.

Então ferramenta será inicializada, veja abaixo toda a seqüência de depuração.

Por fim a exceção é localizada, ocorrerá na linha 5.

Page 178: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 178/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Javap (Desmontagem)

Javap

Faz a desmontagem de código ou descompilação. Sintaxe: javap <opções> <classes>

Lista das principais opções:

Utilitários

 public class Hello

{

 public static void main (String arg [])

{

System.out.println("Hello”);

}

}

Código fonte, veja exemplo abaixo:

Código fonte

Argumento Descrição

-c Desmonta o código

-classpath <pathlist> Especifica onde encontrar as classes

-help Imprime as mensagens de ajuda-public Exibe somente as classe e membros públicos

-protected Exibe somente as classe e membros protegidos

-package Exibe somente as classe e membros pacotes (default) semmodificador 

-private Exibe somente as classe e membros privates

-s Imprime tipo de assinatura interna

-verbose Imprime a pilha e detalhes, tais como tamanho e etc.

 Após compilar o programa fonte. Você poderá fazer a desmontagem do arquivoHello.class. Para desmontar digite o comando: javap Hello

Compiled from Hello.java public class Hello extends java.lang.Object { 

 public Hello(); public static void main(java.lang.String[]);

 }

Page 179: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 179/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Page 180: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 180/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

A - Convenção de Código no Java

B - Sistema de Codificação Unicode

C - Registrando Fonte de Dados

D - Notação UML

Apêndices

Page 181: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 181/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Apêndice A

Convenção de Código no Java

Classe - Os nome da classes devem um substantivo e ter a primeira letramaiúscula o restante em minúsculo. Exemplo:  public class Pessoa.No caso de nome composto o primeiro e segundo nome deve começar com letrasmaiúscula. Exemplo: public class PessoaFisica.Não devemos usar espaço em branco para separa os nomes e nem usar osublinhado.

Interfaces - Seguir as mesmas regras para nome de classe

Métodos - Os nomes dos métodos podem ser verbos no infinitivo,devendo ser escrito em letras minúscula. Exemplo: public int calcular.Para nome composto usar a seguinte regra a o primeiro nome em minúsculo e aprimeira letra do segundo nome em maiúsculo, veja o exemplo: public intcalcularArea

Constantes - Nomes de constantes devem escritos em letras maiúsculas.Exemplo: public static final VALOR

Atributos e Variáveis - Os nome dos atributos e/ou variáveis devem ser escritosem letras minúsculas.

Controles de Estruturas: Através de { } (chaves);

*Espaços - Convencionou-se o uso de quatro espaços para indentações;

Comentários - Vide o capitulo sobre documentação

Para maiores detalhes veja:http: / / java.sun.com/docs/books/ j ls / index.html 

Page 182: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 182/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Apêndice B

Sistema de Codificação Unicode

O que é Unicode?

Unicode é sistema de codificação que fornece um número único para cadacaracter, Não importa a plataforma, não importa o programa, não importa a língua.

Fundamentalmente, os computadores lidam com números. Gravam letras e outros caracteres namemória designando um número para cada um deles. Antes de o Unicode ser inventado, haviacentenas de sistemas diferentes de codificação . Nenhum destes sistemas de codificação, no

entanto, poderia conter caracteres suficientes: por exemplo, a União Européia por si só requer váriossistemas de codificação diferentes para cobrir todas a línguas. Mesmo para uma única língua como oinglês não havia sistema de codificação adequado para todas as letras, pontuação e símbolostécnicos em uso corrente.

Estes sistemas de codificação são também conflitantes entre si. Em outras palavras, doiscodificadores podem usar o mesmo número para dois caracteres diferentes ou usar númerosdiferentes para o mesmo caracter. Qualquer computador em particular (especialmente os servidores)precisam suportar muitos codificadores diferentes; ainda assim toda as vezes que se passam dadosentre codificadores ou plataformas diferentes, estes dados sempre correm o risco de seremcorrompidos.

O Unic ode está mu dando tud o is so! 

O Unicode fornece um único número para cada caracter, não importa a plataforma, não importa oprograma, não importa a língua. O Padrão Unicode tem sido adotado por líderes do setor deinformática tais como a Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys emuitos outros. O Unicode é necessário para padrões modernos tais como o XML, Java, ECMAScript(JavaScript), LDAP, CORBA 3.0, WML, etc. e é a maneira oficial de implementar o ISO/IEC 10646. Ésuportado por muitos sistemas operacionais, todos os browsers modernos e muitos outros produtos.O surgimento do Padrão Unicode Standard e a disponibilidade de instrumentos para suportá-lo estáentre as tendências recentes mais significativas das tecnológicas mundiais de software.

Incorporar o Unicode aos servidores de clientes, aplicações de faixas múltiplas e websites ofereceuma redução significativa nos custos quando comparado ao uso de conjuntos de caracteres legacy.O Unicode possibilita que um único software ou website seja alvejado através de plataformas,línguas e países múltiplos sem a necessidade de reengenharia. Isto permite com que dados sejamtransportados através de muitos sistemas diferentes sem que sejam corrompidos.

Mais informações: www.unicode.org

Page 183: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 183/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Apêndice C

Registrando Fonte de Dados

Para registrar um fonte de Dados no Windows98, clique iniciar, configurações,painel de controle e selecione Fonte de Dados ODBC.

Selecione uma fonte dedados, por exemplo MS

 Access 97 Database epressione o botão Adicionar.

Page 184: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 184/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

Apêndice C

Informe o nome

da fonte de dados.Clicar no botãoSelecionar parainformar ocaminho onde elase encontra.Para finalizar clique em OK

 Agora selecione o drive

Registrando Fonte de Dados

Page 185: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 185/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

SÍMBOLO GRÁFICO NOMEDIAGRAMAS EM QUE

 APARECE USUALMENTE

MODELO A QUE

PERTENCEM

 ASSOCIAÇÂO DE AGREGAÇÃO

Diagrama de Classes,Diagrama de Componentes.

Classes de Objetos

Componentes

 ASSOCIAÇÂO DECOMPOSIÇÃO

Diagrama de Classes,

Diagrama de Componentes.

Classes de Objetos

Componentes

 ASSOCIAÇÂO DEDEPENDÊNCIA

Diagrama de Casos de Uso,Diagrama de Classes,Diagrama de Componentes,

Diagrama de Implantação.

Caso de Uso

Classes de Objetos

Componentes

Componentes

 ASSOCIAÇÂO DEGENERALIZAÇÃO

Diagrama de Casos de Uso,

Diagrama de Classes.

Caso de Uso

Classes de Objetos

 ASSOCIAÇÂOREGULAR

Diagrama de Casos de Uso,Diagrama de Classes,Diagrama de Componentes,Diagrama de Implantação.

Caso de Uso

Classes de Objetos

Componentes

Componentes

 ATORDiagrama de Casos de Uso,Diagrama de Seqüência.

Caso de Uso

Caso de Uso

CASO DE USO Diagrama de Casos de Uso. Caso de Uso

CLASSE Diagrama de Classes. Classes de Objetos

COMPONENTE Diagrama de Componentes Componentes

Nome do Estado ESTADO

Diagrama de Estados,

Diagrama de Atividades.

Classes de Objetos

Caso de Uso

ESTADO FINALDiagrama de Estados,

Diagrama de Atividades

Classes de Objetos

Caso de Uso

Nome da Classe

 Atributos

Operações

Nome do Componente

Apêndice D

Notação UML

Page 186: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 186/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.0 1

ESTADO INICIAL Diagrama de Estados,Diagrama de Atividades. Classes de ObjetosCaso de Uso

Nome da “Interface” ou

“INTERFACE” Diagrama de Componentes Componentes

INTERVALO DEEXECUÇÃO DE

OPERAÇÂODiagrama de Seqüência Caso de Uso

MENSAGEM DERETORNO

Diagrama de Seqüência Caso de Uso

MENSAGEM ECHAMADA DEOPERAÇÂO“Síncrona”

Diagrama de Seqüência Caso de Uso

MENSAGEM ECHAMADA DEOPERAÇÃO“Assíncrona”

Diagrama de Seqüência Caso de Uso

NÓ Diagrama de Implantação Componentes

texto NOTA Em qualquer diagrama

identificador:Classe ou  :ClasseOBJETO

Diagrama de Seqüência,

Diagrama de Atividades

Caso de Uso

Caso de Uso

Nome do Pacote PACOTE

Em qualquer diagrama em que énecessário representar umconjunto de coisas que devemestar agrupadas para efeito deuma organização apropriada

TRANSIÇÃO DEESTADO

Diagrama de Estados,

Diagrama de Atividades

Classes de Objetos

Caso de Uso

 AUTODELEGAÇÃO Diagrama de Seqüência Caso de Uso

<<interface>>Nome da “Interface”

Operação1 ()Operação2 ()Operação3 ()

Apêndice D

Notação UML

Page 187: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 187/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.018

icença:

Page 188: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 188/189

Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB100 Java BásicJB100 Java Básic

Versão: 3.018

Notas:

Marcas Registradas:

Todos os termos mencionados e reconhecidos como Marca Registrada e/ou

comercial são de responsabilidade de seus proprietários. O autor informa não estar 

associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer 

deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde jáo autor informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro,

favorecimento ou desmerecimento do produto/fabricante.

Melhoria e Revisão:

Este material esta em processo constante de revisão e melhoria, se você encontrou

algum problema ou erro envie um e-mail para nós.

Criticas e Sugestões:

 Nós estamos abertos para receber criticas e sugestões que possam melhorar o

material, por favor envie um e-mail para nós.

Rildo F dos Santos ([email protected])

Imagens:

Google, Flickr e Banco de Imagem.

Page 189: Java Básico

7/16/2019 Java Básico

http://slidepdf.com/reader/full/java-basico-563389012f4c3 189/189

Linguagem de Programação  JAVAJB100 Java BásicJB100 Java Básic

Rildo F [email protected] 

@rildosanskype: rildo.f.santos

http://rildosan.blogspot.com/

(11) 9123-5358

(11) 9962-4260

www.etcnologia.com.br