Apostila Java Basico 2
-
Upload
sergio-lima -
Category
Documents
-
view
257 -
download
1
Transcript of 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
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
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;
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)
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
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
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
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
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++.
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."
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
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
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.
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.
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.
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
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
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
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
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
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());
}}
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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:
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:
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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:
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
8/14/2019 Apostila Java Basico 2
http://slidepdf.com/reader/full/apostila-java-basico-2 62/143
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));
}
}
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]);
}
}
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
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:
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
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
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
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);
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.
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
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
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
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
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
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
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
8/14/2019 Apostila Java Basico 2
http://slidepdf.com/reader/full/apostila-java-basico-2 79/143
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
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
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);
}
}
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
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)
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
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>]}
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
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.
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
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) { }
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;
}}
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:
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:
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
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
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
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
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
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
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 "";};
}
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
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
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
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
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:
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
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
*
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).
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
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
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
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() {
}
}
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
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.
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;
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;
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
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
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()); }
}
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.
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
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>
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
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;
}}
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.
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
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.
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[]);
}
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.