0% acharam este documento útil (0 voto)
3 visualizações38 páginas

02 ElementosJava

O documento aborda a estrutura e elementos fundamentais da linguagem de programação Java, incluindo a definição de classes, métodos, tipos de dados, variáveis, operadores e controle de fluxo. Ele também discute a criação de applets, a utilização de pacotes e a manipulação de arrays, além de apresentar exemplos práticos de código. Por fim, menciona a importância da API Java e a criação de objetos a partir de classes.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações38 páginas

02 ElementosJava

O documento aborda a estrutura e elementos fundamentais da linguagem de programação Java, incluindo a definição de classes, métodos, tipos de dados, variáveis, operadores e controle de fluxo. Ele também discute a criação de applets, a utilização de pacotes e a manipulação de arrays, além de apresentar exemplos práticos de código. Por fim, menciona a importância da API Java e a criação de objetos a partir de classes.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Estrutura e elementos de programas Java

Java, como qualquer linguagem de programação tem elementos


básicos. Há uma sintaxe que deve ser obedecida, podemos escrever
constantes, definir variáveis, expressões, fazer atribuições de
valores às variáveis, captar entrada de dados, produzir saída de
dados, executar loop e fazer decisões.

Um programa Java é um conjunto de 1 ou mais elementos


chamados classes.

Em geral, em um projeto Java, cada classe é salva em um arquivo,


que deve ter o mesmo nome da classe e a extensão .java, do mesmo
jeito que um programa, por exemplo em Pascal, termina seu nome
com .pas, em geral.
Uma das classes deve ter uma rotina interna chamada main
(principal), que é o ponto de início e término de execução do
programa.

Um projeto criado no ambiente Netbeans, por exemplo, cria uma


classe básica com uma rotina interna chamada main. Nomes de
classes usualmente se escrevem com inicial maiúscula.
Considere o programa Java abaixo:

0 import [Link].*;
1 public class Fibo {
2 /** imprime sequência de Fibonacci até 50 */
3 public static void main(String[] args) {
4 int a = 1;
5 int b = 1;
6
7 [Link](a);
8 while (b < 50) {
9 [Link](b);
10 b = a + b; // novo b
11 a = b - a; // novo a=soma – a antigo
12 }
13 }
14 }
O programa imprime a sequência de Fibonacci (1,1,2,3,5,8,…), em
que os dois primeiros termos são iguais a um e a partir do terceiro,
cada termo é a soma dos dois anteriores.

No exemplo, vemos imediatamente que um programa Java é escrito


como uma classe (class), como está na linha 1. Vemos também a
importação de um pacote de classes (linha 0), e tipos diferentes de
comentários (linhas 2, 10 e 11). A linha 3 tem a definição da rotina
(ou método) principal (main) que deve ter sempre esse formato.
Vemos que chaves são usadas para definir blocos. Podemos
declarar variáveis (linhas 4 e 5), imprimir valores (linhas 7 e 9), a até
fazer loops (linha 8).
Applets são programas embutidos em páginas da WEB e a
estrutura do programa difere dos programas stand-alone que rodam
sem auxílio de navegador WEB, como este visto no exemplo.

Uma vez codificadas e compiladas, as Applets são executadas


quando abrimos uma página HTML que tenha um marcador
<APPLET … > que manda carregar o arquivo .class da rede. A JVM
(máquina virtual Java) embutida (plugin) no navegador (se este a
tiver) irá executar a Applet.
<HTML>
<HEAD>
<TITLE>
Testando Applets.."
</TITLE>
</HEAD>
<BODY>
<APPLET CODE="[Link]" WIDTH=400
HEIGHT=300></APPLET>
</BODY>
</HTML>
Os pacotes de classes (“packages”) que vêm com o JDK são
muitos, com aplicações muito variadas, e em grande parte
responsáveis pela popularização da linguagem Java entre os
programadores.

Esses pacotes de classes prontas formam aa API Java.

Programadores podem criar suas próprias classes, colocá-las em


seus próprios pacotes, e importá-las em seus programas toda vez
que precisarem. Assim se desenvolve software em Java !!!
Comentários
Neste exemplo abaixo vemos dois tipos de comentários internos: um
tipo escrito entre os delimitadores /* e */, que pode assim ocupar
várias linhas, e outro após o símbolo //, que define o restante da
linha como comentário.

Exemplos:

/* Programa que calcula e imprime


area de circulo */

private double x, y, raio; // atributos


Tipos de dados fundamentais (escalares – ou não objetos)
Observamos acima que foi usado o tipo de dados de nome double
para definir dados para um círculo.
Java possui alguns tipos de dados fundamentais, não são classes,
são tipos escalares, que usamos para definir elementos de classes
e variáveis que são usadas nos programas.

double Números de ponto flutuante com


precisão dupla, 8 bytes e 15 dígitos
significativos
float Ponto flutuante com 4 bytes e 7
dígitos significativos
int Inteiro com 4 bytes desde
aproximadamente 2 bilhões negativo até
2 bilhões positivo
short Inteiro de 2 bytes variando de –32768
até 32767
long Inteiro de 8 bytes e faixa muito ampla
byte Inteiro de 1 byte variando de –128 até
127
char Um único caractere escrito entre
apóstrofes
boolean Valor lógico com duas possibilidades:
true ou false
void Tipo especial que significa ausência
de valor.
Constantes

Os valores numéricos constantes são escritos de várias formas,


inteiros ou com ponto decimal. O ponto decimal faz com que sejam
considerados double.

Exemplos:

123 inteiro(int)
2.34 double
-34 inteiro(int)
-0.4567 double
Os valores do tipo char são escritos entre aspas simples e permite
algumas formas, além de caracteres especiais.

Exemplos:

‘a’ caractere minúsculo


‘A’ caractere maiúsculo

A tabela de caracteres usada é a Unicode, com 65536 caracteres,


cada um com um código de 2 bytes.
Caracteres especiais podem ser especificados com sintaxe
específica:

\b backspace
\t Tab
\n line feed
\r retorno
\” aspas duplas
\’ aspas simples
\\ contra barra
Strings em Java são escritas entre aspas duplas, como em C ou
C++. Não há tipo fundamental equivalente a string, como em C#.
Na verdade, a API Java traz uma classe de nome String que
usamos para criar objetos string, que armazenam seqüencias de
caracteres e que usamos para manipular esses caracteres.

“Geraldo ribeiro filho”

Podemos concatenar (juntar) strings:

“Geraldo” + “ Ribeiro Filho”

Podemos juntar string com outros tipos, e teremos string.


int i = 21;
“idade = ” + i; // ficará “idade = 21”
Variáveis, atribuição e operadores.

Java requer que o programador defina variáveis para armazenar


dados na memória a fim de processá-los. A declaração de uma
variável se faz especificando seu nome (ou identificador) e o tipo da
informação que será nela armazenada. Em Java a declaração se faz
indicando o tipo, seguido pelos nomes de variáveis deste tipo,
separados por vírgula. Ao final, um ponto e vírgula é necessário.

byte b;
int i, j, k;
double x;
Atribuição e inicialização.
Depois que uma variável estiver declarada podemos armazenar um
valor nesta variável atribuindo-lhe um conteúdo. A atribuição se faz
com o nome da variável, seguido pelo sinal de igualdade (‘=’) e uma
expressão cujo valor será calculado e passará a ser o “conteúdo” da
variável.

int k;
k = 0;
float x;
x = k * y;
char ch;
ch = ‘A’;
ch = ‘\u0041’; // equivalente
Podemos ainda atribuir um primeiro valor à variável no momento em
que a declaramos, o que se chama “inicializar” a variável.

Exemplo:

double imposto_iss = 0.05;

int i = 0, j = 1, k = 2;

Variáveis podem ser declaradas em qualquer parte do código,


diferentemente de outras linguagens como Pascal ou C. No entanto,
costuma-se declarar as variáveis no início das rotinas em que serão
utilizadas. Variáveis declaradas dentro de um bloco (chaves) são
ditas “locais” e valem apenas dentro desse bloco.
Conversão entre tipos numéricos.
Java não tem problemas em fazer operações com dados de tipos
numéricos diferentes. Neste caso o tratamento é o seguinte:

Se um dos operandos é double, o outro será considerado double


para fazer a operação, e deste mesmo tipo será o resultado. Caso
contrário, se um dos operandos é float, o outro será considerado
float na operação. Assim sucessivamente para os tipos int, short e
byte, nesta ordem.
Por outro lado, há situações em que o programador deseja fazer
uma conversão no sentido oposto, por exemplo, para considerar um
dado float como sendo int. Java permite qualquer conversão, mesmo
que acarrete perda de informação, através de uma sintaxe especial.
A sintaxe abaixo é chamada de “type cast” e é indicada nesses
casos.

Int jovens = 100;


int velhos = 240;
double jovensPorVelhos;
jovensPorVelhos = (double)jovens/velhos;

No exemplo abaixo são perdidas as casas decimais:


double x = 9.997;
int i = (int) x; // i tem valor 9
Podemos ainda fazer uma conversão implícita atribuindo um valor
de um tipo a uma variável de outro tipo, desde que isso não envolva
perda de precisão nos dados. As atribuições válidas são indicadas
abaixo:

double ← float ← long ← int ← short ← byte


Operadores e expressões.
Operações aritméticas são feitas com os operadores usuais em
linguagens de programação: +, -, * e /. A operação de divisão é
sempre feita com o operador / , e para o resto de divisão entre
inteiros, o operador é %.

Por exemplo, 15/4 é 3, 15%2 é 1, e 11.0/4 é 2.75.

Podemos usar operações em inicializações, como por exemplo:

int n = 5; a = 2 * n;

Há operadores que simplificam a sintaxe de certas atribuições. Por


exemplo:
x = x + 4; // equivale a
x += 4; // esta outra forma

O mesmo vale para os demais operadores aritméticos.

Java tem operadores unários de incremento e decremento de


unidades (++ e --) que funcionam de modo diferente quando escritos
antes ou depois dos operandos.

int m = 7;
int n = 7;
int a = 2 * ++m; // a = 16 e m = 8
int b = 2 * n++; // b = 14 e n = 8
Java tem ainda operadores relacionais, usados para comparações,
e operadores lógicos.

== igual a
!= diferente de
> maior que
< menor que
>= maior ou igual a
<= menor ou igual a

&& conjunção e (and)


|| disjunção ou (or)
Há ainda uma série de outros operadores na linguagem Java e uma
consulta a um livro ou site é aconselhável em caso de necessidade
muito específica.

Os operadores obedecem a uma hierarquia de prioridade nas


expressões que pode ser alterada com o uso de parênteses.
ab
Por exemplo, queremos fazer x 
c  d e devemos então escrever
a atribuição da seguinte forma:

x = (a + b)/(c - d);
Arrays, decisões e repetições.
Um array é uma sequência de N grupos de bytes adjacentes (lado-
a-lado) na memória, em que N >= 1. Cada um dos N grupos de bytes
é tratado nos programas como sendo uma variável, porém todas
com o mesmo nome, e diferenciadas entre si por um índice inteiro,
a partir de zero, escrito entre colchetes.

Quando criamos um array em um programa devemos declarar o


nome do array (nome dos elementos) e um tipo de dados (seguido
por colchetes), este será o tipo de conteúdo de todos os elementos
do array. Isso faz com que os arrays sejam chamados de estruturas
de dados “homogêneas”.

Exemplo: int[] vet;


Vemos que falta ainda declarar quantos elementos terá o array. Isto
se faz de dois modos: de modo explícito como na sintaxe abaixo:

int[] vet = new int[5];


o que equivale a
int[] vet;
vet = new int[5];

ou de modo implícito já especificando os valores dos elementos do


array.

int[] vet = { 2, 4, -1, 0, 1 };


Depois de declarado o array, cada elemento é acessado através do
nome do array seguido por seu índice entre colchetes, e pode ser
tratado como uma variável comum.

Exemplo:
vet[0] = 23;
x = 2 * vet[2]/vet[1];
[Link](vet[0]);
Repetições
Uma necessidade comum nos programas é repetir a execução de
trechos de programa, isto é, fazer o que se chama de um “loop”. O
número de repetições deve ser controlado através de um teste que
é uma expressão lógica cujo valor (true ou false) determina se a
repetição ocorre ou não.

Java tem comandos de repetição com teste de controle no início do


loop ou no final do loop.

O comando de loop com o teste no início é:


while (condição) {
. . .
. . .
}

O comando funciona de tal modo que “enquanto” a condição for


verdadeira, o que estiver dentro das chaves será executado. Dentro
das chaves pode haver qualquer sequência de instruções, inclusive
outros loops.

O comando com teste no final tem funcionamento análogo:


do {
. . .
. . .
} while (condição);

Uma aplicação comum é a simples repetição de um trecho de


programa.

int i = 0;
while (i<10) {
[Link](“i=”+i);
i++;
}
Outra aplicação muito comum para as repetições é o processamento
de arrays. Monta-se um loop de modo que, a cada execução, uma
variável que é usada como índice dos elementos do array tem seu
valor alterado. Desta forma percorre-se o array para processar seus
elementos.

int[] a = { 1,2,3,5 };
int i = 0;
while (i<4) {
[Link](“a[“+i+”]=”+a[i]);
i++;
}
Outro comando muito usado é uma alternativa ao comando de teste
no início, e é apenas uma forma diferente de escrever o comando
while em que se gasta menos linhas de programa. O mesmo trecho
de programa do exemplo anterior poderia ser escrito assim:

int[] a = { 1,2,3,5 };
int i;
for (i=0;i<4;i++) {
[Link](“a[“+i+”]=”+a[i]);
}

Pense e pesquise a sintaxe do comando for e seu funcionamento.


for (exp1; exp2; exp3) {
. . .
}

Funciona como:

exp1;
while (exp2) {
. . .
exp3;
}
Decisões
Uma habilidade importante dos programas é seguir sequências
diferentes de instruções dependendo de uma determinada condição
ser verdadeira ou falsa. Como em outras linguagens, Java tem um
comando if que é o mais usado nessas situações. Sua sintaxe é:

if (condição) {
. . .
. . .
}
else
{
. . .
. . .
}
Objetos
Criamos objetos a partir de classes, nossas classes ou importadas.

Objetos são criados usando uma operação new e seu endereço de


memória fica numa “referência” (um nome) que é usado para termos
acesso ao objeto.

Exemplo:

String minhaStr;
minhaStr = new String();

Poderia ser também: String minhaStr = new String();


A operação de criação do objeto usa um método “construtor” da
classe. Muitas classes um construtor padrão, com mesmo nome da
classe (sempre assim para qualquer construtor) e sem parâmetros.
Apesar de que métodos podem receber parâmetros entre
parênteses.

Uma vez criado o objeto, acessamos seus componentes públicos


através de um ponto à frente da referência.

Carro objCarro = new Carro();


[Link](10);
[Link](90);
[Link](7);
Entrada de dados pelo teclado.

Neste caso temos que usar objetos. Por exemplo, da classe


Scanner, do pacote útil.

import [Link];

public class TestaDeclaracaoScanner {


public static void main(String[] args) {
//Lê a partir da linha de comando
Scanner sc1 = new Scanner([Link]);
String textoString = "Maria Silva";
//Lê a partir de uma String
Scanner sc2 = new Scanner(textoString);
}
}
Exemplos:

Scanner sc = new Scanner([Link]);

float numF = [Link]();


int num1 = [Link]();
byte byte1 = [Link]();
long lg1 = [Link]();
boolean b1 = [Link]();
double num2 = [Link]();
String nome = [Link]();

Você também pode gostar