Академический Документы
Профессиональный Документы
Культура Документы
JAVA
2001, 2003, 2005, 2008 by Jorge L. de Souza Leo maro de 2008
Sumrio
1. Introduo 2. O ambiente jdk 6 3. A linguagem bsica
JAVA
1. Introduo
Histrico e Motivao A linguagem Java um produto de desenvolvimento da SUN Microsystems. O trabalho original que levou linguagem Java foi conduzido por James Gosling e uma equipe que desenvolviam software de aplicao e sistemas operacionais para produtos eletrnicos de consumo. Eles utilizavam C++, at que a equipe de Gosling decidiu criar uma linguagem completamente nova.
JAVA 3
1. Introduo
Pode-se supor que eles desejavam consertar algumas caractersticas de C++ e introduzir outras. A esta altura, a equipe e o projeto ainda no estavam voltados para a WWW. De qualquer modo, hoje sabido que a equipe desejava atingir um bom compromisso de projeto que produzisse: uma linguagem fcil de utilizar uma linguagem poderosa uma linguagem flexvel
JAVA 4
1. Introduo
A tnica da abordagem parece ter sido: quando em dvida, deixe fora da linguagem, isto , antes de tudo, produzir uma linguagem simples. No final, pode-se dizer que eles chegaram a uma linguagem com as seguintes caractersticas:
simples, interpretada, porm com bom desempenho, portvel, independente da arquitetura hospedeira, orientada a objetos, multitarefa, distribuda, robusta, segura, com ligao dinmica, com coleta de lixo automtica, fortemente tipada.
JAVA 5
1. Introduo
Outras caractersticas importantes de Java so: - possui um conjunto de tipos bsicos concebido para uma linguagem de alto nvel (arrays, strings, booleanos), - no possui ponteiros para uso pelo programador, - possui uma interface com mtodos nativos.
JAVA
1. Introduo
A deciso por uma linguagem interpretada deveu-se a duas razes principais:
- diminuir o tempo de desenvolvimento de sistemas, acelerando o ciclo compilar-ligarcarregar-testar-falhar-depurar; - obter portabilidade imediata.
JAVA
1. Introduo
O Modelo de Execuo Java uma linguagem interpretada. Isto significa que o cdigo gerado pelo compilador java (javac) no o cdigo de mquina do processador da mquina hospedeira. Este cdigo vai ser interpretado por um programa (java) que funciona como se fosse um processador. A especificao deste interpretador conhecida como a mquina virtual java (JVM Java Virtual Machine).
JAVA 8
1. Introduo
Por isto, cada tipo de computador precisa ter um interpretador prprio. Entretanto, todos os interpretadores vo interpretar o mesmo cdigo (bytecode) gerado pelo compilador. o interpretador java que acessa o sistema operacional nativo para permitir que o programa que est sendo interpretado utilize a interface grfica, o teclado, o mouse, os arquivos, os dispositivos de acesso rede, etc. O interpretador java deve fazer isto de uma maneira consistente em todas as plataformas.
JAVA 9
2. O ambiente jdk-se
Vamos analisar o ambiente de execuo da prpria SUN conhecido como JDK (Java 2 Development Kit). A verso bsica atualmente distribuda pela SUN a: JDK 6 update 5
JAVA
10
2. O ambiente jdk-se
Este ambiente pode ser obtido gratuitamente (ler o copyright !) de um site da SUN na Internet:
http://java.sun.com
Este site possui vrias verses para as plataformas mais populares, tais como Microsoft Windows (9X, NT, etc), Apple MacIntosh e vrios tipos de Unix.
JAVA
11
2. O ambiente jdk-se
A instalao do JDK cria uma subrvore no diretrio escolhido (.../java ou outro nome) com vrios subdiretrios:
bin, demo, include, include-old, jre, lib, src
Em .../java/bin ficam os executveis tais como javac, java, jar, javadoc, appletviewer e outros. Normalmente, coloca-se este caminho na varivel PATH (do shell que for usado).
JAVA 12
2. O ambiente jdk-se
No caso do MS-Windows, poderamos ter:
set PATH=c:\PROGRA~1\java\bin;%PATH%
JAVA
13
2. O ambiente jdk-se
Uma outra varivel essencial a varivel CLASSPATH, que deve conter os caminhos de onde o interpretador Java vai carregar os arquivos das classes necessrias. As classes padro do JDK esto em .../lib/rt.jar e o compilador j as procura automaticamente. Normalmente coloca-se o diretrio atual ( . ) e alguma outra localizao que possua classes teis:
set CLASSPATH=c:\minhas_classes
JAVA 14
2. O ambiente jdk-se
Um Exemplo Os programas fonte so editados em editores de texto comuns (ASCII puro) e devem possuir a terminao .java . Vamos ento supor, por exemplo, um programa fonte chamado: EleEscreve.java
JAVA
15
2. O ambiente jdk-se
O arquivo deve ter o mesmo nome da nica classe pblica declarada (adicionado da terminao .java). Os nomes de classes devem comear com uma letra maiscula (embora isto no seja obrigatrio) :
public class EleEscreve{ public static void main(String[] args){ System.out.println(Ele escreve !); } }
JAVA 16
2. O ambiente jdk-se
O compilador, chamado javac ou javac.exe, invocado atravs de um interpretador de comandos (shell), vai gerar um arquivo compilado para cada classe existente no arquivo fonte.
Ento, teramos:
$ javac EleEscreve.java
JAVA
17
2. O ambiente jdk-se
No nosso exemplo, ele geraria um arquivo de nome EleEscreve.class, com o cdigo intermedirio conhecido como bytecode. este cdigo intermedirio que vai ser interpretado.
JAVA
18
2. O ambiente jdk-se
O interpretador, chamado java ou java.exe, tambm chamado atravs do interpretador de comandos. Ele recebe como parmetro de linha de comando o nome da classe (no nosso exemplo, o nome do arquivo com o cdigo intermedirio, mas agora sem a terminao .class ! )
JAVA
19
2. O ambiente jdk-se
No nosso caso teramos:
JAVA
20
3. A linguagem bsica
Java uma linguagem orientada a objetos e, por isto, vamos comear com os conceitos bsicos de orientao a objetos. Os conceitos de objetos e classes podem ser vistos, respectivamente, como extenses dos conceitos de variveis e tipos.
JAVA
21
3. A linguagem bsica
Uma varivel , antes de tudo, simplesmente um nome. Associada a cada varivel, ainda existem: (i) um conjunto de valores, chamado a sorte da varivel; (ii) uma funo chamada estado da varivel (ou atribuio), que mapeia cada varivel do programa em um valor da sua sorte; (iii) um conjunto de funes, ou operadores, que mapeiam valores das variveis, e outros valores, em um outro conjunto de valores.
JAVA 22
3. A linguagem bsica
Exemplo: Seja uma varivel de nome contador. Suponhamos que a sorte desta varivel seja o conjunto dos nmeros inteiros de -2.147.483.648 a +2.147.483.647 . Suponhamos que os operadores associados a esta varivel sejam: a soma (+), a subtrao (-), a multiplicao(*), a diviso inteira (/), o resto (%), a troca de sinal (-), etc. Humm, acho que j vi isto antes.
JAVA
23
3. A linguagem bsica
Imaginemos agora o conjunto de todas as variveis, possveis e imaginveis, com a mesma sorte de contador e com os mesmos operadores associados.
Este conjunto, infinito, chamado de tipo das variveis correspondentes. Em C, C++ e Java, o tipo do exemplo o nosso velho e conhecido tipo int (ou long).
JAVA 24
3. A linguagem bsica
Quando declaramos uma varivel:
int contador;
estamos dizendo que escolhemos, ou instanciamos, uma varivel com este nome do conjunto infinito de variveis que o tipo int. Em geral, a maioria das linguagens no permite que, para um dado programa, se escolham variveis com o mesmo nome de uma outra j escolhida, em situaes que possa haver ambigidade.
JAVA 25
3. A linguagem bsica
Um objeto, ao contrrio de uma varivel, no tem nome. Os objetos so annimos ! Um objeto um conjunto que possui basicamente as seguintes espcies de membros: - variveis (tambm chamadas de campos / fields); - mtodos, que so funes definidas pelo programador (correspondentes aos operadores das variveis);
26
JAVA
3. A linguagem bsica
Assim como um tipo um conjunto infinito de variveis, uma classe um conjunto infinito de objetos com as mesmas variveis e mtodos.
A declarao de uma classe (no confundir com a classe propriamente dita) pode ser vista como um gabarito, modelo ou descrio dos objetos que a constituem. No jargo do dia a dia, confundem-se os termos classe e declarao de classe...
JAVA 27
3. A linguagem bsica
Em Java, devido a flagrante semelhana entre o que acabamos de chamar tipos de variveis e classes de objetos, as classes tambm so chamadas de tipos.
3. A linguagem bsica
Alm disto, existem: regras que vo controlar a visibilidade externa de uma classe (ou objeto) e seus componentes, ou regras de encapsulamento; regras que vo permitir definir outras classes a partir de uma classe, ou regras de herana; regras que vo permitir utilizar o mesmo nome para objetos diferentes sem que haja ambigidade, ou para relaxar os requisitos de tipagem forte, as regras de polimorfismo.
JAVA 29
3. A linguagem bsica
Vejamos o seguinte exemplo: class Point{ double x,y,z; } Point agora um novo tipo, criado pelo programador.
JAVA
30
3. A linguagem bsica
Como os objetos no tm um nome a priori, eles vo ser identificados e manipulados atravs o nono tipo de varivel, as variveis de referncia. Por exemplo:
JAVA
31
3. A linguagem bsica
A declarao de uma varivel de referncia, ou simplesmente referncia, no instancia um objeto. Um objeto tem que ser instanciado explicitamente, seja separadamente ou em conjunto com a declarao da referncia.
JAVA
32
3. A linguagem bsica
Por exemplo, um objeto da classe Point poderia ser instanciado da forma abaixo: p2 = new Point(); A declarao da referncia e a instanciao do objeto tambm poderiam ser feitas em conjunto: Point p3 = new Point();
JAVA
33
3. A linguagem bsica
Observao: Os exemplos mostrados at aqu foram simplesmente esquemticos. No foram utilizados modificadores como public ou private, como seria mais realstico.
JAVA
34
3. A linguagem bsica
Vistos os conceitos mais bsicos, podemos ver alguns detalhes a mais. Os detalhes que vamos ver envolvem os conceitos de: packages; modificadores de classes, variveis e mtodos; herana e interfaces;
35
JAVA
A maior parte dos sistemas armazena os pacotes em sistemas de arquivos, mas tambm h previso para que os pacotes sejam armazenados em outros tipos de bases de dados.
JAVA 36
JAVA
package meuExemplo; public class MinhaClasse{ public static int contador; public static void main (String[] args){ } }
JAVA 38
JAVA
39
CLASSPATH=/home/leao/javaprogs/
Neste diretrio estariam subdiretrios com os vrios pacotes existentes, inclusive o diretrio do pacote meuExemplo.
JAVA
42
JAVA
43
Localizao completa:
/home/leao/javaprogs/meuExemplo/MinhaClasse.class
JAVA
44
Os pacotes tambm podem possuir uma estrutura hierrquica como a dos diretrios. Assim sendo, um pacote pode possuir subpacotes, que so mapeados em subdiretrios do pacote pai.
JAVA 46
JAVA
47
GTA
simul
JAVA 48
JAVA
52
S S S N
S S N N
S N N N
JAVA
54
JAVA
56
JAVA
57
JAVA
58
JAVA
62
JAVA
65
JAVA
67
JAVA
68
Embora Java s permita herana simples para classes, para interfaces, Java permite herana mltipla.
JAVA 69
JAVA
70
EstoqueIF v;
herana mltipla :
JAVA
71
3. A linguagem bsica
Na verdade, a prpria declarao da classe poderia ser feita em conjunto com a declarao da referncia e a instanciao do objeto, dispensando ento o uso de um nome para a classe (classe annima): Point p4 = new Point(){ boolean fixado = true; }
JAVA
72
3. A linguagem bsica
O objeto referenciado por p4 pertence a uma classe annima que descende da, ou estende a classe Point, acrescentando primeira a varivel fixado. O acesso a variveis e mtodos de uma classe ou objeto feito atravs a notao pontuada tradicicional: p4.x = 1.0; p4.y = 1.2; p4.z = 1.4;
JAVA 73
Java utiliza o conjunto Unicode, um conjunto de caracteres de 16 bits que suporta lnguas e alfabetos, como o cirlico, o rabe, o chins e outras.
Em particular, o conjunto de carcteres ASCII um subconjunto do Unicode.
JAVA 74
JAVA
75
JAVA
77
JAVA
78
JAVA
80
JAVA
81
JAVA
83
JAVA
84
double else extends final finally float for goto if implements import instanceof
int interface long native new package private protected public return short static
super switch synchronized this throw throws transient try void volatile while
85
A terceira categoria de lexemas de Java constituda de caracteres e conjuntos de caracteres que no precisam obrigatoriamente estar separados dos outros lexemas por espaadores.
So sinais de pontuao e os operadores.
JAVA
86
Funo adio subtrao multiplicao diviso mdulo(resto) incremento decremento E dos bits Ou dos bits Xordos bits
Funo E lgico Ou lgico Desl.p/dir. c/sinal Desl.p/dir. c/zero Desl.p/esq.. c/sinal Desl.p/esq. c/zero Concat. de cadeias Condicional ternrio Atribuio Igual
Funo Menor que Maior que Maior ou igual Menor ou igual Diferente incr. e atrib. decr. e atrib mult. e atrib. div. e atrib. mod. e atrib.
88
JAVA
90
JAVA
92
Valor mnimo
Valor mximo
char
\u0000
\uFFFF
\u0000
0 0 0 0
JAVA
96
JAVA
98
float[][] matriz;
ou float matriz [][];
(forma preferida)
Observe que o tamanho do array no declarado. Este s vai ser definido quando da instanciao do array propriamente dito: matriz = new float[20][20];
JAVA 100
JAVA
103
JAVA
104
ou
if ( <expresso lgica> ) <instruo> else <instruo>
JAVA
105
108
JAVA
109
JAVA
111
JAVA
114
JAVA
115
JAVA
116
JAVA
Error
JAVA
119
JAVA
120
JAVA
122
JAVA
123
//============================================= class MinhaExcessao extends Exception{ //--------------------------------------------public MinhaExcessao(){ super(); } //--------------------------------------------} //=============================================
JAVA
129