Transcript
Page 1: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 1/143

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Revisão 5.0a 20/04/03

Page 2: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 2/143

2

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Conteúdo

Programação Orientada a ObjetosClassesObjetosMétodosConstrutoresAtributos e VariáveisAbstração de DadosRelacionamentoHerançaAssociaçãoNavegação

Role NamesAgregação e ComposiçãoMultiplicidadeConstraintEncapsulamentoPolimorfismoJavaDocJarJDBJavap

ApêndiceConvenção de Código no JavaUnicodeNotação UMLApplets

Introdução breve apresentaçãogerando aplicaçõesIDEInstalação do J2SDKCompilador javac,JVMO primeiro programa

Fundamentos da linguagem JavaEstrutura da linguagemPalavras Reservadas

Tipos de DadosVariáveisOperadoresA classe StringA classe StringBufferCastingFluxo de ControleArraysPassagem de ParâmetrosA classe MathWrapper de ClassesConversão de TiposA referência thisColeçõesPacotesAcessibilidade

Modificador StaticModificador Final

Page 3: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 3/143

3

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

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;

Expectativas após o Curso:

Objetivo deste curso:

Objetivo

Ao final deste curso você deverá estar apto a: • Utilizar a linguagem Java para criar aplicações simples;• Conhecer a estrutura da linguagem Java, principais API,sintaxes e declarações.• Descrever e usar as características de linguagem orientada aobjetos com Java, tais como: Herança, Abstração de Dados,Encapsulamento e Polimorfismo;

Page 4: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 4/143

4

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Estrutura do Curso

Introdução

ProgramaçãoOrientadaa Objetos

Utilitários

Apresenta arquitetura da linguagem Java

Apresenta comandos e funcionalidadesbásicas

Fundamentosda linguagem

Principais aspectos da programaçãoorientada a objetos

Demonstrar os principais utilitários da

linguagem Java (Jar, JadaDoc e etc)

Page 5: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 5/143

5

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Por que aprender Java?

Gartner diz que 62% usam Java no Brasil

Quinta-feira, 04 deoutubro de 2001 -19h24

SÃO PAULO - Cerca de 62% dos desenvolvedoresque atuam nas empresas brasileiras usam atecnologia Java. É o que revela um recentelevantamento realizado pelo instituto Gartner.

A pesquisa mostrou ainda que 35% dos pesquisadosusam Java há menos de um ano e 33% há menos dedois anos. Segundo a Sun Microsystems, que criou alinguagem, isso indica que as empresas já passaram operíodo de experimentação e realmente adotaram atecnologia Java para seus projetos de negócios.

A maioria dos entrevistados (80%) apontou comoprincipal razão para o emprego da linguagem Java ofato de ela ser multiplataforma, enquanto 48%

citaram ainda a escalabilidade e 25%, a segurança.

O estudo mostrou ainda que 60% das pessoas jáusaram Java para projetos de ApplicationDevelopment (AD); 22% ainda não usaram, masplanejam usar; e 16% não têm planos de utilizar alinguagem.

Vale lembrar que o levantamento "The GartnerSurvey on Java Usage in Brazil" foi realizado com80 profissionais durante a conferência "Economia de

TI", em São Paulo, no mês de agosto.Por Alexandrina Macedo, do TCINet

Objetivo

Page 6: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 6/143

6

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Page 7: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 7/143

7

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Java

Uma breve apresentação...

Tecnologia Java :

A tecnologia Java oferece um conjunto de soluções para desenvolvimento deaplicações para diversos ambientes:

J2SE: Para o desenvolvimento de aplicações Client/Server e Applets.

J2EE: Criação de aplicações Web (distribuídas, com volumes de transaçõesseguras)

J2ME: Para o desenvolvimento de aplicações para dispositivos móveis, taiscomo: Celular, PDA, TV set-top boxes, VDA, Smart Cards e etc.

Introdução a linguagem Java

Page 8: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 8/143

8

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

•Orientação a objetos: A linguagem é orientada a objetos a partirde 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 é a linguagem de programaçã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:

Introdução a linguagem Java

Page 9: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 9/143

9

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 (Garbage Collection); •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).

Introduçã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 10: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 10/143

10

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Portabilidade: “A independência de plataforma”

A linguagem Java é independente de plataforma. Isto significa que o desenvolvedor nãoterá que se preocupar com particularidades do sistema operacional ou de hardware,focando o seu esforço no código em si. Mas o que isto realmente significa?

A maioria das linguagens é preciso gerar uma versão para cada plataforma que sedeseja utilizar, exigindo em muitos casos, alterações também no código fonte. Em Javao mesmo programa pode ser executado em diferentes plataformas. Veja o exemploabaixo:

?

O mesmo código fonte

Introduçã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 e

Processadores diferentes

HelloWorld

HelloWorld Hello

World

"write once, run anywhere."

Page 11: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 11/143

11

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Gerando Aplicações

Para criar aplicações ou programas na linguagem Java temos que seguir os algunspassos como: 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

Introdução a linguagem Java

Page 12: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 12/143

12

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Dica: na hora de avaliar uma ferramenta IDE, um item que deve ser avaliado é se a ferramenta tem suporte a especificação J2EE.

Plataforma de DesenvolvimentoA popularidade da linguagem Java fez com que muitas empresasdesenvolvessem ferramentas para facilitar desenvolvimento de aplicações.Estas ferramentas também são conhecidas como IDE (Ambiente deDesenvolvimento Integrado), que embutem uma série de recursos para darprodutividade. Todavia, cada uma delas tem suas próprias particularidades ealgumas características semelhantes.As principais ferramentas do mercado são:

Ferramentas Fabricante Endereço na Internet (URL)

JBuilder Borland www.borland.com/jbuilder/

JDeveloper (release 2) Oracle http://otn.oracle.com/products/jdev/content.html

Sun www.netbeams.org

Introdução a linguagem Java

Consortium

Eclipsewww.eclipse.org/downloads/index.php

Page 13: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 13/143

13

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

O J2SDK é ambiente de desenvolvimento da linguagem Java. Na verdade é conjuntode ferramentas para compilar, depurar, executar e documentar um programa escritoem java.As versões para Solaris, Linux e Windows podem ser obtidas no endereço:www.java.sun.com/j2se (Página oficial da linguagem).

Procedimentos de Instalação:Para instalar o J2SDK basta executar o programa de instalação e seguir as

instruções. Caso o J2SDK esteja compactado será necessário descompacta-loprimeiro, os formatos mais populares de arquivos compactados são zip (paraWindows) e tar (para Unix).Após a instalação é necessário configurar o ambiente:

Passo 1:No windows: Acrescentar no Autoexec.bat:SET JAVA_HOME=C:\j2sdk1.4.0_01PATH=%JAVA_HOME%\binA variável JAVA_HOME deve ter o mesmo nome do diretório onde foi instalado o

J2SDK.

Introdução a linguagem Java

Passo 2:Classpath O Java defini uma variável de ambiente chamada ClassPath. O Java procura pelas classes e pacotes através desta variável. Ela deve estar presente no arquivo Autoxecec.bat Veja um exemplo: Set classpath=.; C:\j2sdk1.4.0_01\bin;c:\MeusPacotes 

Para Win98 ou ME:

Faça um teste para verificar se tudo está funcionando adequadamente: 1 - Abra um “prompt” do DOS (janela do DOS) 2 - Digite java e seguida tecle <enter>, deverá ser apresentado uma lista de 

opções da.3 - Digite javac e seguida tecle <enter>, deverá ser apresentado uma lista do compilador.

Se algum problema foi apresentado, faça uma revisão no passo 1 e 2.

Page 14: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 14/143

14

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

A partir do Menu iniciar, selecione Configurações, depois selecione Painel deControle e enfim Sistema.Estando em Sistema seleciona o guia “Avançado” e depois variáveis de ambiente.

Introdução a linguagem Java

Para Windows 2000:

Passos 1:

1 - Crie uma nova variável de ambiente chamada “JAVA_HOME” como seguinte valor C:\j2sdk1.4.0_01Exemplo: JAVA_HOME = C:\j2sdk1.4.0_01;2 Edite a variável de ambiente Path e adicione as seguintes informações:PATH=%JAVA_HOME%\bin

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

Page 15: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 15/143

15

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

Introdução a linguagem Java

Passo 2:Classpath O Java defini uma variável de ambiente chamada ClassPath. O Java procura pelas classes e pacotes através desta variável.

1 - Crie ou edite a variável de ambiente chamada CLASSPATH, informa o seguinte valor para ela. classpath=.; C:\j2sdk1.4.0_01\bin; (lugar onde está foi instalado o

J2SDK)Como resultado você terá o seguinte: classpath=.; :\j2sdk1.4.0_01\bin; 

Para Windows 2000:

Faça um teste para verificar se tudo está funcionando adequadamente: 1 - Abra um “prompt” do DOS (janela do DOS) 2 - Digite java e seguida tecle <enter>, deverá ser apresentado uma lista de opções da.3 - Digite javac e seguida tecle <enter>, deverá ser apresentado uma lista do compilador.

Se algum problema foi apresentado, faça uma revisão no passo 1 e 2.

Page 16: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 16/143

16

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Instalação do ambiente de desenvolvimento (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 .

Introdução a linguagem Java

Page 17: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 17/143

17

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Instalação do ambiente de desenvolvimento (JDK)

A figura demonstra uma visão do pacote de desenvolvimento J2SDK 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.

Introdução a linguagem Java

Page 18: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 18/143

18

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

O Compilador javac

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

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

armazenadas-deprecation Faz a compilação de código em desuso, geralmente de versões

anteriores e faz aviso de advertência-g Gera tabelas de "debugging" que serão usadas pelo pelo

deupador 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 arquivo

que está sendo compilado. Normalmente somente é compilado oarquivo 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

Introdução a linguagem Java

Page 19: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 19/143

19

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

-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, mensagens

indicando que uma classe está sendo carregada e etcLista 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

Introdução a linguagem Java

Page 20: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 20/143

20

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 um 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>

Introdução a linguagem Java

Page 21: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 21/143

21

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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. Veja exemplo abaixo:

Garbage Collection

Introdução a linguagem Java

import java.util.*;

class GarbageExample {

private static Vector vetor;

public static void main(String args[]) {

vetor = new Vector();for (int a=0; a < 500; a++)

vetor.addElement(new StringBuffer("teste"));

Runtime rt = Runtime.getRuntime();

System.out.println("Memória Livre: " + rt.freeMemory());

vetor = null;

System.gc();

System.out.println("Memória Livre: " + rt.freeMemory());

}}

Page 22: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 22/143

22

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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!

Introdução a linguagem Java

Page 23: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 23/143

23

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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á gravadodo 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.java 9 - Agora execute o arquivo. Sintaxe: java <NomedaClasse>

Java Hello 

Introdução a linguagem Java

Atributo daClasse System

Dissecando o código

Page 24: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 24/143

24

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Introduçã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 terum 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 25: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 25/143

25

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Page 26: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 26/143

26

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Fundamentos 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 ignoradospelo 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étodo Ponto e virgula

Page 27: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 27/143

27

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Fundamentos da Linguagem Java

Estrutura da LinguagemIdentificadores: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 CLASSEclasse é 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étodoprincipalClasse

Identificador(nome do método)

Veja que primeiro foi definidoo tipo de dado,String, e depois onome do Identificador (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 28: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 28/143

28

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 voidchar finally native strictfp volatileclass float new super whilecontinue for null switchdefault if package synchronized

this

Palavras Reservadas

Fundamentos da Linguagem Java

As Palavras Reservadas, quer dizer que nenhuma das palavras da lista acima podem ser usadas 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 29: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 29/143

29

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Tipos de DadosExistem tipos básicos  ou primitivos e os tipo 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 falseExemplo: 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‘\t’ – tabulação‘\\’ - \ ‘\” ”’ - “”‘\u????’ – especifica um caracter Unicode o qual é representado na formaHexadecimal.

String (String é uma classe)O tipo String é um tipo referência que é usado para representar uma seqüência decaracteres.Exemplo:String s = “Isto é uma string”,

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;O tipo default é int.Quando declaramos uma variável do long é necessário acrescentar um literal L, casocontrário esta poderá ser tratada como int, que poderia provocar problemas.Long L = 10L;

Código de escape

Fundamentos da Linguagem Java

Page 30: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 30/143

30

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 .O valor default é double, ou seja, todo vez que for acrescentado a literal F, novariável tipo float, ela poderá ser interpretada como variável do tipo doubleVeja 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;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 a9.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

Fundamentos da Linguagem Java

Tipos de Dados

Precisão

7 dígitos

15 dígitos

Page 31: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 31/143

31

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Inicialização de variáveis

Fundamentos da Linguagem Java

As variáveis dentro de um método devem ser inicializadas explicitamente paraserem utilizadas. Não é permitido o uso de variáveis indefinidas ou nãoinicializadas.Exemplo:

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

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

public class TestVarInic {

public static void main(String[] args) {int age;age = age + 1;System.out.println("The age is " + age);

}}

As variáveis ou atributos definidos dentro de uma de classe, são inicializadasatravés do construtor, que usa valores default.Valores default para boolean é false, para os tipos numéricos é 0 e tipo referenciaé null; 

Ocorre erro

public class TestVarInicClasse {private static int age;public static void main(String[] args) {System.out.println("The age is " + age);

}

}Resultado: The age is 0

Page 32: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 32/143

32

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Armazenamento de variáveis

Fundamentos da Linguagem Java

Geralmente as variáveis são armazenadas em memória. A linguagem Java possuidois locais para armazenamento de variáveis de acordo com as características.

Stack Memory Heap Memory

Variáveis declaradasdentro de um método

Objetos comatributos

Objetos e seus atributos e métodos são armazenados no Heap Memory. A Heap

é dinamicamente alocada para os objetos esperarem por valor.Já Stack memory armazena as informações que serão utilizadas por um breveintervalo de tempo,

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

int valor = 10;

byte numbyte = 1;}}

int valor = 10;

byte numbyte = 1;

Stack Memory

Page 33: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 33/143

33

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Criando Objetos

Fundamentos da Linguagem Java

Os objetos referências são variáveis que contém uma referência do objeto namemória. Vejamos o exemplo:

Saída:

O Pele foi um dos melhores camisa 10 de todos os tempos

referencia do objeto Jogador@ba34f2

public class Jogador {

private in t numero;private String nome;

public static void main(String[] args) {

Jogador jogador =new Jogador(); jogador.setNumero(10);

 jogador.setNome("Pele");

System.out.println("O " + jogador.getNome() + " foi um dos melhores camisa " +

 jogador.getNumero() +" de todos os tempos");

System.out.println("referencia do objeto " + jogador);

}

public String getNome() {

return nome;

}

public in t getNumero() {

return numero;

}

public void setNome(String nome) {

this.nome = nome;

}

public void setNumero(in t numero) {

this.numero = numero;

}

}

Referência do Objeto

Page 34: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 34/143

34

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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;int b = a + 1;int c = b - 1;int d = a * b;short s1 = -1;short s2 = 10;short s1++;int 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 (Short-circuit) || OR (Short-circuit)

Fundamentos da Linguagem Java

Page 35: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 35/143

35

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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:

. [ ] ( )

++ - ! ~ instanceofnew (type) expressão - O type é coerção de tipo* / %+ -<< >> >>>

Exemplo:Com a precedência definida pelo Javaint c = 4 / 2 + 4;Neste caso, primeiro ocorrerá a divisão e após a soma .

Com a precedência definida pelo desenvolvedorint 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

Fundamentos da Linguagem Java

Operadores

Page 36: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 36/143

36

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Operador Nome Descrição& AND Mask Bit Input Bit Output Bit

1 1 11 0 00 1 00 0 0

AND = 1 and 1 prouz 1. Qualquer outra combinação produz 0Exemplo: & 00110011

11110000========00110000

| OR Mask Bit Input Bit Output Bit1 1 10 1 11 0 10 0 0

OR = 0 or 0 produz 0. Qualquer outra combinação produz 1Exemplo: | 00110011

11110000========11110011

^ XOR Mask Bit Input Bit Output Bit1 1 01 0 1

0 1 10 0 0

XOR = 1 xor 0 ou 0 xor 1 produz 1, qualquer outra combinaçãoproduz 0Exemplo: ^ 00110011

11110000========11000011

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

Fundamentos da Linguagem Java

Operadores

Operadores Binários:

Page 37: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 37/143

37

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Operador Nome Descrição<< Deslocamento para

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

>> Deslocamento paradireita com extensãode sinal

Desloca os bits do primeiro operando para a direita pelo númerode 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 para

direita com extensãode zero

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

de bits especificado pelo segundo operando; 0s são inseridos apartir da esquerda

~ Complemento de um Para cada número negativo, cada bit de cada número é invertido(zeros são substituídos com um e vice versa).Exemplo: int x = 45 <=> Representação em bits (00101101)

~ x <=> Representação em bits (11010010)

Manipulação de bits e os operadores sobre bitsExemplos de manipulação do bits:Right Shift (>>)

128 >> 1 <=> 128/21 = 64

256 >> 4 <=> 256/24

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

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

Fundamentos da Linguagem Java

Operadores

Operadores Binários:

Page 38: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 38/143

38

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Podemos realizar operações de Pré e Pós incremento e de Pré e Pós decremento.Veja os exemplos:x = 10; y = 1 + x O valor da variável y é 11 e de x = 11oux = 10; y = x++ O valor da variável y é 11 e de x= 11

Pós-incremento:x = 10; y = x + 1; O valor da variável y é 11 e de x = 11ou

x = 10; y = x++ O valor da variável y é 10 e de x = 11

Vamos esclarecer antes que haja confusão que para isto precisamos separar aoperação y = x++ em duas fases.

Fase 1:y = x

Fase 2:x++

Nesta fase o valor de x (10) é atribuído para y, logo y(10) = x(10)

Nesta fase o valor de x (10) é incrementado em 1, logo x(11)

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

Fundamentos da Linguagem Java

Operadores

Page 39: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 39/143

39

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

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

if (s1.equals(s2)){ System.out.println("São iguais"); }

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

  //equalsIgnoreCase

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, substringString 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 ”, 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 Unicode Exemplo: String nome = “Meu nome” Principais métodos:

Substituição: replaceBusca: endWiths, startsWith, indexOf e lastIndexOfComparações: equals, equalsIgnoreCase e compareToOutros: substring, toLowerCase, toUpperCase, trim, charAt e length

Concatenaçã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 

Fundamentos da Linguagem Java

Page 40: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 40/143

40

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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áriousar 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 Unicode Construtores: StringBuffer – Cria um buffer vazio

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

Fundamentos da Linguagem Java

StringBuffer

Várias formasde declaração

Usando os métodospara manipular

o objeto StringBuffer

Page 41: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 41/143

41

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Casting Exemplo:

public class TestCasting{

public static void main(String args[]){

//Exemplo 1byte 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 2int 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 promovidopara tipo int, quando atribuímos avariável , que é do tipo byte, aoperação provoca erro, pois, a faixade byte é menor que a faixa de int.Uma vez aplicado o casting aoperação de soma é realizado edepois é convertida para o tipo byte.

Casting explícito:(byte) (a + b)

Casting implícito: (a + b)

Fundamentos da Linguagem Java

Casting (coerção de tipos)

Page 42: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 42/143

42

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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>

Fundamentos da Linguagem Java

Page 43: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 43/143

43

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A instrução ifSintaxes: if (expressão boolean) instrução

Exemplo: 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 debloco

Fundamentos da Linguagem Java

Fluxo de Controle

Page 44: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 44/143

44

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A instrução ifSintaxes: (continuaçã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 seraplicada 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ção

do código:

saldo > 0

status = Negativo

status = Positivosim

não

Lógica

if (saldo > 0){

status = “Positivo”;}else{status = “Negativo”;

}

Código

Fundamentos da Linguagem Java

Fluxo de Controle

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

else status = “Negativo”; 

OU

Page 45: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 45/143

45

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A instrução ifNeste exemplo apresentaremos a instrução if com múltiplas opções. Veja alógica e também a implementação 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 chequeespecial..." + 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

Fundamentos da Linguagem Java

Fluxo de Controle

Page 46: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 46/143

46

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A instrução switch

Switch é uma alternativa para seleção múltipla de escolha, entretanto, ela temalgumas diferenças da estrutura if - if 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 if - if 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

Fundamentos da Linguagem Java

Fluxo de Controle

Page 47: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 47/143

47

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

undamentos 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 coma instrução break

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

Fundamentos da Linguagem Java

Fluxo de Controle

Page 48: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 48/143

48

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A instrução switch.

Neste exemplo apresentaremos a instrução switch e a instrução break commú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

Fundamentos da Linguagem Java

Fluxo de Controle

Page 49: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 49/143

49

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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> 

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

saldo > 0

status = Negativo

status = Positivosim

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 suportam a recursividade.

Fundamentos da Linguagem Java

Fluxo de Controle

Page 50: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 50/143

50

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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, porexemplo:

Laços:

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

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

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

Fundamentos 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ão

incrementar um na variávelsenão

imprimir a variável valor

Isto quer dizer que a instrução de incremento 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 51: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 51/143

51

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 10vezes, 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 7Neste exemplo o laço é finito, ou seja, irá

executar até a condição estar satisfeita

A instrução while

Fundamentos da Linguagem Java

Fluxo de Controle

Page 52: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 52/143

52

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

....

Fundamentos da Linguagem Java

Fluxo de Controle

Page 53: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 53/143

53

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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.

Fundamentos 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 54: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 54/143

54

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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:do

instrução javawhile(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 10vezes, ou seja até que acondiçã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 executaas instruções que

estão dentro de bloco

e depois verifica a

expressão boolean

Fundamentos da Linguagem Java

Fluxo de Controle

Page 55: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 55/143

55

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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:

Fundamentos 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 56: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 56/143

56

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 ou

fora).Exemplo:int x;(for x=1;x<10;x++) instrução Javaou(for 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 decrementaremos

(for x=1;x<10 ;x-- ) instrução Java

Fundamentos da Linguagem Java

Fluxo de Controle

Page 57: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 57/143

57

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 declararvalor-inicial

Sem condição.A condição está

associado ainstrução if 

Sem valor deincremento oudecremento.

For aninhados

Decrementadode 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).

Fundamentos da Linguagem Java

Fluxo de Controle

Page 58: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 58/143

58

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Lógica

..

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

}...

Código

Agora faça uma comparação entre a instrução do while, do-while e for. Quem será 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

Fundamentos da Linguagem Java

Fluxo de Controle

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

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

OU

Page 59: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 59/143

59

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Label (rótulo)

A linguagem Java permite a criação de rótulo (bloco) chamada Label. Este bloco temum conjunto de instruções que podem ser executadas.

Sintaxe:<nome-da-label>:

instrução java

ou<nome-da-label>:{//Bloco de instruçõe

}

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 os labels 

Fundamentos da Linguagem Java

Fluxo de Controle

Exemplo:

Page 60: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 60/143

60

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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;

}}

}}

Sintaxe:

continue;orcontinue label_name; 

Fundamentos da Linguagem Java

Fluxo de Controle

Continue

Algumas vezes precisamos abandonar a execução de laço ou recomeçar umdeterminado label. Para parar ou abandonar um “loop” antes do final da execução,usamos o comando break.Para abandonar um “loop” ou label e continuar a execução de um outro label, porexemplo, utilizaremos o comando continue. Este comando similar uma instrução goto 

Exemplo:

Page 61: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 61/143

61

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Exemplo 1 Exemplo 2String nomes[ ];nomes = new String[3]

names[0] = "Duke";names[1] = "Jane";names[2] = "Tarzan";

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

Exemplo 3 Exemplo 4MinhasDatas 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. Eles devem possuir um tamanho definido no momento desua declaração, por exemplo:int[ ] arrayInt = new int[5] , ouint[ ] arrayInt arrayInt = new int[5] 

Os elementos de array são acessados pelo índice, que sempre começa com valor0. Não são permitidos índices inválidos,pois, estes resultam em exceção.ArrayOutOfBoundsException .

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 Array é 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 ]; 

Fundamentos da Linguagem Java

Page 62: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 62/143

Page 63: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 63/143

63

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Método arraycopy:

Permite fazer cópias dos dados array de um array para outro.

Fundamentos da Linguagem Java

Arrays

J A V A L IArray de origem array1

J A V A Array de destino array2

arraycopy(array1, 0,array2, 0, 4); 

Sintaxe:arraycopy(Object origem,

int IndexOrigem,Object destino,int IndexDestino,

int tamanho)

  public class TestArrayCopy {

  public static void main(String[] args) {

char[] array1 = { 'j', 'a', 'v', 'a', 'l', 'i'};

char[] array2 = new char[4];

System.arraycopy(array1, 0, array2, 0, 4);

System.out.println(new String(array2));

}

}

Page 64: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 64/143

64

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Método Sort

Para ordenar um array, usamos o método sort da classe java.util.ArraysExemplo:

Fundamentos da Linguagem Java

Arrays

import java.util.*;

  public class TestArraySort {

  public static void main(String[] args) {int[] numero = {190,90,87,1,50,23,11,5,55,2};

//Antes da ordenação

displayElement(numero);

//Depois da ordenação

Arrays.sort(numero);

displayElement(numero);

}

  public static void displayElement(int[] array)

{

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

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

}

}

Page 65: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 65/143

65

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Parâmetros de inicialização:

Podemos passar parâmetro de inicialização para o método “main” (principal) através dalinha de comando. Veja o fragmento de 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 de dado destes parâmetros é String, pordefinição da linguagem.

Para passar valores que tem nome composto acrescente aspas.

java TestParam “Jose Maria” Maria Joao

Fundamentos da Linguagem Java

Passagem de Parâmetros

Page 66: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 66/143

66

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A classe Math

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

Principais métodos:

Truncar: ceil, floor e roundVariação: max, min, e abs()Trigonométricas: sin, cos, tan, asin, acos, atan. toDegrees e toRadiansLogaritmo: log e expOutras: sqrt, pow e random

Exemplos: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)));}

}

Fundamentos da Linguagem Java

Exemplo:

Page 67: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 67/143

67

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Empacotamento de Classes

É possível trabalhar com vários tipos de dados, inteiros, ponto flutuantes, texto, lógicoe etc. Todavia em alguns casos há a necessidade de fazer conversão de um tipo dedado para outro. Bem, começaremos com a conversão de tipos primitivos para tiporeferê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 primitivoInteger wInteger = new Integer(pInteger); // Wrapper Classint p1 = wInteger.intValue();//Conversão de valores:String valueStr = "10";double d1 = Double.valueOf(valueStr).intValue();//oudouble d2 = Double.parseDouble(valueStr);

}}

Fundamentos 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 68: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 68/143

68

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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);ouint variavel = 42;String str = "" + variavel;ouint variavel = 42;String str = String.valueOf(variavel);

> Convertendo String em Long:long variavel = Long.parseLong(str);ou

long 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:String str = “14”;int var = Integer.parseInt(str);

ouString str = “14”;int var = Integer.parseInt(str);ouString str = “14”;int var = Integer.valueOf(str).intValue();

Fundamentos da Linguagem Java

Conversão de Tipos

Page 69: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 69/143

69

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

String 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();ouint i = Integer.parseInt("B8DA3", 16);

> Convertendo Boolean em Integer:i = (b)?1:0;

Fundamentos da Linguagem Java

Conversão de Tipos

Page 70: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 70/143

70

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

}

Programação Orientada a Objetos

A referência this

Na classe PessoaJuridica, o uso da palavra this é 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 this separa o atributo do parâmetro.

O Java associa automaticamente a todas as variáveis e métodos referenciados com apalavra reservada this . Em alguns situações torna-se redundante o uso do this.Aplicação: - Impedir ambigüidade de nome de variáveis e

- Fazer referência a própria classeRestriçã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, podemos necessitar chamar apenas uma parte do método passando uma instância do argumento do objeto. (Chamar um classe de forma localizada); 

Birthday bDay = new Birthday(this); 

Page 71: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 71/143

71

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 Hashtable.Para adicionar elementos na tabela usaremos o método put, put(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 key). Para remover um elementousamos o método remove.

Exemplo:

Implementaçãode tabela Hash

e uso dos métodosput e get

API

Fundamentos 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 estrutura das 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 72: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 72/143

72

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 InterfaceEnumeration, podemos

imprimir todos osvalores contidosna tabela Hash

Tabela Hashe métodos

API

Exemplo:

Fundamentos 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 funcionalidadeparecida com Enumeration

Page 73: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 73/143

73

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 Enumeration para listar todos os elementos de Vector.

Vector

Exemplo:

Declaração do Vector

Adiciona valores aoVector. Note que estes

valores são do tipo referência,ou seja, objetos

Converte um Vectorpara um array .

API

Fundamentos da Linguagem Java

Coleções

Page 74: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 74/143

74

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 alista, neste caso ela recebe

uma coleção como argumento

Imprime todos osvalores da lista

Exemplo:

Fundamentos da Linguagem Java

Coleções

Page 75: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 75/143

75

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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çãopublic 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:

Fundamentos da Linguagem Java

Coleções

Page 76: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 76/143

76

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Fundamentos da Linguagem Java

Coleções

Page 77: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 77/143

77

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Pacotes

A linguagem Java é estruturada em pacotes, estes pacotes contém classes que porsua vez contém atributos e métodos. Pacote é forma de organização da linguagemJava, prevenindo de problemas como a repetição de identificadores (nomes) declasses e etc.Podemos usar a estrutura de pacotes para associar classes com semânticasemelhante, ou seja, classes que tem objetivo comum. Por exemplo, colocaremos emúnico pacote todas as 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 dizerque a Aplicação terá a seguinte formato:

Aplicação

Regras de Negócios

Interface de Usuário

Controle

Pacotes

Page 78: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 78/143

78

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Pacotes

Package

Esta instrução deve ser declarada na primeira linha do programa fonte, esta instrução servepara indicar que as classes compiladas fazem parte do conjunto de classes (package ), ousejam um 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...");}

}

1 - Crie um subdiretório,exemplo mkdir mypck.2 - Dentro deste subdiretórioescreva a classe ClassPkg(incluainstrução package na primeiralinha. (Veja exemplo ao lado)3 - No diretório corrente Teste,escreva a classe TestPkg, nãoesqueça de incluir a instrução“import”.4 - Faça a compilação a partirdo diretório Teste, usando aseguinte linha de comando: java -d . TestPck.java

import mypck.*;public class TestPkg{

public static void main(String args[])

{ClassPkg p = new ClassPkg();

}}

ClassPck.class

Testemypck------

------ TestPck.class

Pacotes

ImportA 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:

import java.awt.Button;  import java/awt/Button; 

Substituindo os pontos por barras teríamos o caminho

Aqui estaríamos importando somente o objeto Buttonimport java.awt.*; 

Neste caso estaríamos importando todos objetos contidos na classe

Page 79: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 79/143

Page 80: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 80/143

80

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

 Modificador 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 81: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 81/143

81

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Modificador static

Características Avançadas

Exemplo de compartilhamento de variável static. Apesar de ter dois objetos da classe(teste1 e teste2). Quando fazemos a impressão da variável esta tem o valor que atribuídopelo primeiro objeto teste1.Exemplo:

  public class TestVarStatic {

  private static int varStatic;

  private int varNoStatic;

  public static void main(String[] args) {

TestVarStatic teste1 = new TestVarStatic();

System.out.println( "static = " + teste1.varStatic);

System.out.println( "No static = " + teste1.varNoStatic);

teste1.varNoStatic++;

teste1.varStatic++;

TestVarStatic teste2 = new TestVarStatic();

System.out.println( "static = " + teste2.varStatic);

System.out.println( "No static = " + teste2.varNoStatic);

}}

Teste1:

static = 0

  No static = 0

teste2:

static = 1

  No static = 0

Page 82: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 82/143

82

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Modificador static

Características Avançadas

Restrições:

- Métodos static- não pode ter referência this.

- não pode ser substituído ("overridden") por um método não static- pode somente fazer acesso dados static da classe. Ele não pode fazer acesso anão static.- pode somente chamar métodos static. Ele não pode chamar métodos não static

Exemplo:

  public class TestMetodoStatic {

  private static int valor;

 public TesteMetodoStatic(){

valor=0;

}

  public static void main(String[] args) {

addSoma(2,2);addSoma(3,2);

addSoma(4,2);

displayTotal();

}

  public static void addSoma(int a, int b){

valor += (a * b);

}

  public static void displayTotal(){

System.out.println( "Total = " + valor);

}

}

Page 83: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 83/143

83

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Modificador Final (constantes)

Características Avançadas

Para declarar uma variável, um ou uma classe como constante usamos o modificadorfinal.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: cannot inherit from final TestFinalPai 

public class TestFinalFilho extends TestFinalPai 

Veja o exemplo: 

Quando compilamosa classe um erro é gerado

Page 84: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 84/143

84

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 constantes (final), o nome da variável deve ser escrito em maiúsculo.

Veja o exemplo: 

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

Modificador Final (constantes)

Page 85: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 85/143

85

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Page 86: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 86/143

86

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programação Orientada a Objetos

As classes são a parte mais importante de um sistema orientado 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 

PessoaNomeIdadeGetNomeGetIdade

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

As classes:podem ser concreta ou abstrata

O que é uma Classe?“Uma classe descreve um conjunto de objetos com propriedades e comportamentos semelhantes e com relacionamentos comuns com outros objetos” 

Classe

Sintaxe:<modificador> class <nome da classe> {

[ <declaração de atributos>][ <declaração de construtores>

][ <declaração de método>]}

Page 87: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 87/143

87

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Exemplo:A classe Pessoa. Classe concreta.

public class Pessoa {

//Atributos private String nome;private int idade;

//métodos public String getNome(){

return nome; }

public void setNome(Stringnome){

this.nome = nome; }

public int getIdade(){return idade; }

public void setIdade(intidade){

this.idade = idade; }

}

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

Programação Orientada a Objetos

Pessoa

nom e : String

idade : Integer

getNome()

setNome()getIdade()

setIdade()

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

Classe

Page 88: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 88/143

88

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Exemplo:A classe Pessoa. Classe Abstrata 

Classe Abstrata: Uma classe abstrata pode conter métodos abstratos (aqueles que somente tem a assinatura de métodos sem implementação) e métodos concretos (aqueles que tem assinatura).

Programaçã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 possui um método abstrato a classe também será 

abstrata.

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 eimplementados

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

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

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

Page 89: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 89/143

89

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 conjunto de operações que

manipulam estes dados.Estrutura de um objetoObjetos combinam propriedades (atributos) e comportamentos (operações).

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

Programação Orientada a Objetos

Objetos

Cliente: clientehomemnome = Felipecpf = 039.217.908-22idade = 22

Classe: Cliente e objetos

nomecpf idade

Cliente

Cliente: clientemulhernome = Marina

cpf = 022.200.708-12idade = 16

Page 90: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 90/143

90

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

public class CalculaData {private int day, month, year;public float calcDays(int age ){return 365.25F * age;

}}

Métodos

Programaçã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 91: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 91/143

91

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Métodos

Programaçã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

Contasaldo

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 92: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 92/143

92

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Orientação a ObjetosProgramação Orientada a Objetos

public class Mamifero {private int qdepernas;private int idade;

public Mamifero(int idade)

this.idade = idade;

}

//Métodos}

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”, que é inicializado automaticamente pelo Java. Mas existemcasos que se faz necessário a declaração explícita dos construtores.

O Construtor não pode ser herdado. Para chamá-lo a partir de uma subclasse usamos 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.

Sintaxe:[ <modificador> ] <nome da classe> ([Lista de argumentos]){

[ <declarações> ]}

Exemplo:

Page 93: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 93/143

93

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

public class Disciplina {  private int cargaHoraria;

private String nome;

public Disciplina(String nome, intcargaHoraria){

this.nome = nome;this.cargaHoraria =calcCargaHoraria(cargaHoraria);

}public String getNome(){

return nome;}public int getCargaHoraria(){

return cargaHoraria;}public int calcCargaHoraria(int

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

return cargaHoraria =horasPlanejamento + qdeHoras;

}}

Atributos

Variáveistemporárias

Atributos e variáveis

Programaçã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

Sintaxe:

[<modificador>] <tipo de dado> <nome> [ = <valor inicial>];

Exemplo:

Page 94: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 94/143

94

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Exemplo de Classe

Programação Orientada a Objetos

Livro1

Legenda:1 – Objeto no mundo real2 – Modelo de implementação da classe Livro3 – 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;}

}}

L i v r o

i s b nt i t u l oa u t o r

g e t I S B N ( )s e t I S B N ( )g e t T i t u l o ( )s e t T i t u l o ( )g e t A u t o r ()s e t A u t o r ( )

2

3

Criar o objeto Livro

Page 95: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 95/143

95

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

Programação Orientada a Objetos

Abstração de Dados

Page 96: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 96/143

96

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

PessoaFísica

PessoaJurídica

getNome()

getNome() getNome()

Classe Abstrata 

Funcionário

Analista Programador

Classe concreta 

Classe concreta 

Classe Abstrata 

Programação Orientada a Objetos

Abstração de Dados

Page 97: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 97/143

97

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

}

Programação Orientada a Objetos

Abstração de Dados

Page 98: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 98/143

98

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

ProfessorPessoal

Administrativo

Terceiro

ProfessorAutônomo

PessoalOperacional

SubClasses 

SuperClasse 

Relacionamento:1 - Pessoa é a SuperClasse de Terceiro, Aluno e de Funcionário,estas são subclasse 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 subclasse de Terceiro e Funcionário.

Programação Orientada a Objetos

Relacionamento

Page 99: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 99/143

99

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

CursoUniversitário

Especialização Extensão

Hierarquia de Classes

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

extends

extends

Programação Orientada a Objetos

Herança

Page 100: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 100/143

100

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

}

ProfessorAutônomo

PessoalOperacional

ProfessorPessoal

Administrativo

Programaçã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 101: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 101/143

101

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Pessoa

AlunoTerceiro

public class ProfessorAutonomoextends Terceiro{public ProfessorAutonomo(

String nome){super(nome);

}}

public class PessoalOperacionalextends Terceiro{public PessoalOperacional(

String nome){super(nome);

}}

public class Professorextends Funcionario{public Professor(

String nome){super(nome);

}}

public class PessoalAdministrativoextends Funcionario{public PessoalAdministrativo(

String nome){super(nome);

}}

Funcionário

Programação Orientada a Objetos

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

Herança

Page 102: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 102/143

102

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Podemos usar Interfaces para simular Herança Múltipla. O que é herança múltipla ?Herança múltipla é quando uma classe tem mais que uma Superclasse associada e queherde 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.

Programação Orientada a Objetos

Simulação de Herança Múltipla

<<interface>>Mamífero

Interface:O que é interface ?Podemos dizer que Interface é forma mais pura de abstração. A interface fornece umcontrato entre ela a classe cliente, que pode ser classe concreta ou abstrata.Este contrato é garantia que todos os métodos assinados na interface serão

implementados na classe cliente.Nota: Na interface também podemos declarar constantes (public static final ).

interface IProduct{

String getName ();double getCost ();

}

SuperclasseSuperclasse

Exemplo de Interface

Page 103: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 103/143

103

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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;

   public int getQdePernas();

}

public class PessoaFisica1 extends Pessoa  implements Mamifero {

public PessoaFisica (String nome){

super(nome);}

   public int 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

Programação Orientada a Objetos

Herança Múltipla

implements

extends

extends

Page 104: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 104/143

104

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Transformando diagramas UML em código Java

Simulação de 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 dométodo assinado

na Interface Pessoa

Assinatura do método

Atributo

Métodos

Herança Múltipla

Page 105: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 105/143

105

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Super classe 

Subclasse 

public class Empregado { 

private double salario; public Empregado(){ 

salario=0.00; }

public double getSalario(){ return this.salario; 

} }

public class Gerente extends Empregado { private double bonus = .15; 

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

  super (); }public double getSalario(){ 

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

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

 }

Programação Orientada a Objetos

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

Exemplo:

Page 106: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 106/143

106

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programaçã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() {

}

}

U s u a ri o S e n h a

Associação

classe classe

Page 107: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 107/143

107

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programação Orientada a Objetos

Navegação

NavegaçãoSeta de navegação indica o direção do relacionamento.

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 a 

responsabilidade de saber a qual pedido que eles pertencem.

Exemplo do código Java:

Pedido

ItemPedido

*

Page 108: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 108/143

108

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programação Orientada a Objetos

public class Pessoa {public Empresa Empregador[];

Pessoa() {}

}

RolenameDefinição de Role Name:

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

public class Empresa {

public Pessoa Empregado;

Empresa() {

}

}

P e ss o a E m p re sa

1 . . *1

+ E m p r e g a d o r+ E m p r e g a d o

1 1 . . *

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

Page 109: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 109/143

109

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programaçã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 110: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 110/143

110

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programaçã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 criadas após aprópria composição, mas, uma vez criadas, vivem e morrem com elas; essas partestambém podem ser removidas explicitamente antes da morte do elemento composto.

Todo

Parte deum todo

Dados do PedidoN• 19069Cliente 1 – Cliente AData: 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,6004 Produto D 09 2,23

Page 111: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 111/143

111

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programação Orientada a Objetos

Multiplicidade

C l i e n t e P e d i d o

0 . . *1 0 . . *1

I t e m P e d i d o

1

1 . . *

P r o d u t o

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 deum todo

Dados do PedidoN• 19069Cliente 1 – Cliente AData: 01/01/2002

It Descrição Qt Preço--------------------------------01 Produto A 10 12,4002 Produto B 01 2,4003 Produto C 11 5,6004 Produto D 09 2,23

Page 112: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 112/143

112

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programação Orientada a Objetos

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

C l i e n t e P e d i d o

0 . . *1 0 . . *1

It e m P e d i d o

1

1 . . *

P r o d u t o

1

*

1

1 . . *

*

1

public class ItemPedido {

public Pedido m_Pedido;

public Produtom_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 113: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 113/143

113

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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

Programação Orientada a Objetos

Exemplo de modelo de classes

Page 114: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 114/143

114

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programaçã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 seus respectivos relacionamentos.

Page 115: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 115/143

115

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programaçã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/interfacepública

Dados/Atributos/propriedadesprivada

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

public class Empregado { private double salario; 

public Empregado(){ salario=0.00; 

}

public double getSalario(){ return this.salario; 

} }

O atributo salario somente poderá terum valor atribuído ou alterado,através de método público.

Através do método getSalario, quetem modificador public, podemosmanipular ou recuperar o valor doatributo salario.

Classe Empregado e métodogetSalario

O atributo salario 

priv ate double salario; 

Page 116: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 116/143

116

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programaçã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 dedependência de sua estrutura interna

Encapsulamento

public class Gerente1 extends Empregado { private double bonus = .15; 

public double getSalario(){ 

//referência ao método getSalario return super .getSalario() + (super.getSalario()*this.bonus); 

} }

public class Empregado { 

public Empregado(){ salario=0.00; 

}

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

 }

private double salario; 

Page 117: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 117/143

117

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Definição:“Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedade segundo o qual uma operação pode comportar-se diferentemente em classes diferentes” (Rumbaugh)O polimorfismo é o responsável pela extensibilidade em programação orientada aobjetos.

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étodo somar é definido várias vezes, entretanto com a lista de argumentos diferente , destaforma evitaremos problemas como ambigüidade.

Programação Orientada a Objetos

Polimorfismo

Page 118: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 118/143

118

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

public class 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 nos lucros.

Overrinding - Exemplo:

Empregado

setSalario()getSalario()

Engenheiro

getSalario()

Gerente

getSalario()

Diretor

getSalario()

Secretária

getSalario()

Programação Orientada a Objetos

Polimorfismo

Page 119: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 119/143

119

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

O método setSalario (continuação)

public class Diretor extends 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; }

 }

public class GerenteExemplo extends EmpregadoExemplo { 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); }

 }

Programação Orientada a Objetos

Polimorfismo

public class Secretaria extends EmpregadoExemplo { public static void main(String args[]){ 

Secretaria sec = new Secretaria(); 

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

 }

Page 120: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 120/143

120

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Programação Orientada a Objetos

Overrinding 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 cadatipo de Conta ele tem uma implementação diferente. Por exemplo:

- Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldo anterior) - saques Para a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros)- saques Para 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 121: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 121/143

121

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Page 122: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 122/143

122

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 e

Interface

Construtor M étodo A tributo

@see Cria um link com outrapá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 (valore 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 123: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 123/143

123

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

usage: javadoc [options] [packagenames] [sourcefiles] [classnames]

[@files]

- ov er vi ew < file > R ead over vi ew d oc um en ta tion fro m HT ML f ile

-public Show only public classes and members

-protected Show protected/public classes and members

(default)

-package Show package/protected/public classes and

members

-private Show all classes and members

-help Display command line options

- do cl et < cl ass> G ener ate ou tp ut v ia a lt erna te d ocle t

- do cl et pa th < pa th > S pe ci fy w he re t o fi nd d oc le t c la ss f il es

-1.1 Generate output using JDK 1.1 emulating doclet

- so u rc ep a th < pa t hl i st > S p ec i fy w he r e t o fi n d s o ur c e f i le s

- cl as sp at h <p at hl is t> S pe ci fy w he re t o fi nd u se r cl as s fi le s

- b o ot c l as s p at h < p at h l is t > O v e rr i d e l o ca t i on o f c l as s f i le s l o a de d

b y t h e b o o t s t ra p c l a ss l o a de r

- ex td ir s < di rl is t> O ve rr id e l oc at io n o f i ns ta ll ed e xt en si on s

-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

P r o vi d e d b y S t a nd a r d d o c le t :

-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

- wi nd ow ti tl e < te xt > B ro ws er w in do w t it le f or t he d oc um en at io n- do c ti tl e < h tm l -c od e > I n cl u de ti tl e f o r t h e p a ck a ge in de x (f ir s t)

page

- he ad er < ht ml -c od e> I nc lu de h ea de r t ext f or e ac h p ag e

- fo ot er < ht ml -c od e> I nc lu de f oo te r t ext f or e ac h p ag e

- bo tt om < ht ml -c od e> I nc lu de b ot to m t ext f or e ac h p ag e

-link <url> Create links to javadoc output at <url>

- li n ko ff l in e < u rl > < ur l 2> L i nk t o d oc s a t < ur l > u s in g p ac k ag e l is t a t

<url2>

- g r ou p < n am e > < p 1 >: < p 2> . . G r o up s p e ci f i ed p a c ka g e s t o g et h e r i n o v e rv i e w

page

-nodeprecated Do not include @deprecated information

-nosince Do not include @since information

- no de pr ec at edli st D o no t ge ne ra te d ep re ca ted 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

- ch ar se t <c ha rs et > C ha rs et f or c ro ss -p la tf or m v ie wi ng o f

generated documentation.

-helpfile <file> Include file that help link links to

- st y le sh e et f il e < pa t h> F i le t o c ha n ge s t yl e o f th e g en e ra t ed

documentation

- do ce nc od in g < na me > O ut pu t e nco di ng n am e

Javadoc

JavaDoc (Documentação)

Utilitários

Page 124: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 124/143

124

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 125: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 125/143

125

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 126: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 126/143

126

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 serespecificada

arquivo-entrada Nome dos arquivos a serem agrupados e/ou compactados

Opções Descriçãoc Cria um novo arquivot Mostra o conteúdo de um arquivo existentex Extrai todos os arquivosx <arquivo> Extrai o arquivo especificadof Indica que a operação (c,t ou x) será executada sobre o arquivo e não

sobre a entrada/saída padrão.v Mostra o status da operação (verbose)m Suprime a geração do meta-arquivoo 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.jarPara 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 127: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 127/143

127

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 é escreverum 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 128: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 128/143

128

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Javap (Desmontagem)

JavapFaz 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 arquivo

Hello.class. Para desmontar digite o comando: javap HelloCompiled from Hello.java public class Hello extends java.lang.Object {

public Hello();public static void main(java.lang.String[]);

 }

Page 129: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 129/143

129

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Page 130: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 130/143

130

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

A - Convenção de Código no JavaB - Sistema de Codificação UnicodeC - Notação UMLD - Applet

Apêndices

Page 131: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 131/143

131

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

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 escritos

em 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/jls/index.html 

Page 132: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 132/143

132

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Apêndice B

Sistema de Codificação Unicode

O que é Unicode?

Unicode é sistema de codificação que fornece um número único para cada caracter, 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, noentanto, 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 Unicode está mudando tudo isso! 

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 sejam

transportados através de muitos sistemas diferentes sem que sejam corrompidos.

Mais informações: www.unicode.org

Page 133: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 133/143

133

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

SÍMBOLO GRÁFICO NOME DIAGRAMAS EM QUEAPARECE USUALMENTE

MODELO A QUEPERTENCEM

ASSOCIAÇÂO DEAGREGAÇÃ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 ESTADODiagrama 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 C

Notação UML

Page 134: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 134/143

134

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

ESTADO INICIALDiagrama de Estados,Diagrama de Atividades.

Classes de Objetos

Caso 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 C

Notação UML

Page 135: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 135/143

135

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applets

Page 136: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 136/143

136

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

O que é um Applet?Applet são pequenos programas Java que são executado através de um browser.Opcionalmente podemos usar o Appleviewer (visualizador de Applet do JDK) paraexecutá-los.Para um browser executar um applet é necessário que ele esteja habilitado para taltarefa, ou seja tenha uma máquina virtual embutida ou um plug-in.Um applet é carregado por uma página HTML, através de utilização do tag <APPLET>.A figura abaixo exibe as etapas de construção de um Applet.

public classTappletextendsApplet {

}

Código fonte(java)

Bytcode(java)

Compilação

<HTML><body>

..</body>

</HTML>

ArquivoHTML

1 2

3

4

Principais método s:

Método Descrição

Init() Executado apenas uma vez após a carga do applet pelobrowser

start() Executado após init() e cada vez que o applet se torna ativo.stop() Final de execução do applet, toda vez o applet for

desativadodestroy() Executado toda vez que applet for complementamente

descartado, utilizado para liberar recursos alocados peloapplet, quando ativo.

paint(graphics g) Executado toda vez que o applet for redesenhado, algosimilar ao "refresh"

Apêndice D

Page 137: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 137/143

137

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

Principais tag HTML:

Tag Descrição

<APPLETCODEBASE= path

Especifica o endereço URL do diretório onde o arquivo.class pode ser encontrado

Code = "NomeClassApplet.class"

Especifica o nome da classe que vai ser carregada

Width= largura Especifica a largura do applet (em pixel)Heigth= alttura Especifica a altura do applet (em pixel)Archive="NomeClassApplet.jar"

Especifica o nome do arquivo jar onde estão as classesutilizadas pelo Applet.

<Param name ="nome" Value ="valor">

Passagem de parâmetros para Applet. onde name énome do parâmetro e value o valor.

</Applet> Fecha a tag Applet

Exemplo:O exemplo demonstra um arquivo HTML com tags Applet. A chamadado Applet fica embutido dentro arquivo.

<HTML> <CENTER> <TABLE BORDER=2> <CAPTION>Hello Applet</CAPTION> <TR><TD> <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=300></APPLET> </TD></TR> </TABLE> 

</CENTER> 

</HTML> 

A tag responsável por chamar o Applet

Apêndice D

Page 138: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 138/143

138

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

import java.awt.*; import java.applet.*; 

public class TestApplet extends Applet { public void init (){ 

System.out.println("Executando o Init"); }public void start (){ 

System.out.println("Executando o Star"); }public void stop ()

{ System.out.println("Executando o Stop"); }public void destroy (){ 

System.out.println("Executando o destroy"); }

}

O exemplo mostra um arquivo Java Applet. Note que este arquivo tem alguns métodosdiferente dos demais programas Java, por exemplo, a ausência do método main, aoinvés disto, esta assinado o init().

API

Os métodos

Apêndice D

Page 139: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 139/143

139

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

<HTML> <CAPTION>Hello</CAPTION> <TR><TD> 

<APPLET CODE="Hello.class" WIDTH=100 HEIGHT=100></APPLET> </TD></TR> 

</HTML> 

import java.awt.Graphics; import java.applet.Applet; 

public class Hello extends Applet { private int paintCount; public void init () { 

paintCount = 0; }public void paint(Graphics g){

g.drawString("Hello", 25, 25);++paintCount;g.drawString("Quantidade de vezes paint: " + paintCount, 25, 50);

}

}

Este é um exemplo completo. São exibidos os código do arquivo Java Applet e doarquivo HTML. Para executar chame através do Browser ou use AppletViewer.

Arquivo: Hello.html 

Arquivo: Hello.java 

Apêndice D

Page 140: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 140/143

140

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

Este é um exemplo completo. São exibidos os código do arquivo Java Applet e doarquivo HTML. Para executar chame através do Browser ou use AppletViewer.

import java.awt.event.*; import java.awt.*; import java.applet.*; public class TestApplet2 extends Applet implements 

Runnable,ActionListener { 

TextField b1,b2; String x; Thread k; public void init() { setLayout(new FlowLayout()); b1 = new TextField(10); b2 = new TextField(10); 

b1.addActionListener(this); b2.addActionListener(this); add(b1); add(b2); k = new Thread(this); k.start(); 

}

<HTML> <CAPTION>Hello</CAPTION> 

<TR><TD> 

<APPLET CODE=" TestApplet2.class" WIDTH=100 HEIGHT=100> </APPLET> </TD></TR> 

</HTML> 

Arquivo: TestApplet2.html 

Arquivo: TestApplet2.java 

Apêndice D

Page 141: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 141/143

141

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

Exemplo:continuação..

public void paint (Graphics g){ 

if ( x != null)g.drawString(x,50,50); 

}

public void run(){ int cont = 0; while(true){ cont = cont + 1; 

b1.setText(""+cont);}}public void stop(){ k.stop(); }public void start(){ k.resume(); }public void actionPerformed(ActionEvent e){ x = b2.getText(); repaint(); 

}}

Arquivo: TestApplet2.java 

Apêndice D

Page 142: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 142/143

142

 Linguagem de Programação  JAVA

© Copyright e-tecnologia.com, 2002

JB50 Java Básico

Applet

import java.applet.Applet; import java.awt.Graphics; 

public class Parameters extends Applet { private String toDisplay; private int speed; 

public void init() { String pv; pv = getParameter ("speed"); if (pv == null){ speed = 10; 

} else { speed = Integer.parseInt (pv); 

}

toDisplay = "Speed given: " + speed; }

public void paint(Graphics g) { g.drawString(toDisplay, 25, 25); 

} }

Exemplo:Este outro exemplo demonstra como passar parâmetro para Applet a partir de um arquivoHTML.

<html><applet code=Parameters.class width=200height=200><param name=speed value="12">

<param name=distance value="500m"></applet></html>

Arquivo: Parameters.html 

Arquivo: Parameters.class 

Passagem de

parâmetros

Captura osparâmetros

Apêndice D

Page 143: Apostila Java Basico 2

8/14/2019 Apostila Java Basico 2

http://slidepdf.com/reader/full/apostila-java-basico-2 143/143

 Linguagem de Programação  JAVA

JB50 Java Básico

Notas

Você encontrou algum problema neste documento avise ao autor: [email protected] 

Qualquer contribuição será aceita, pois, nosso objetivo é melhorar cada vez mais este trabalho.


Top Related