Beruflich Dokumente
Kultur Dokumente
É uma sequência finita de passos para execução de uma tarefa.
Podemos descrever um algoritmo para qualquer tarefa, como chupar uma
bala:
1.Pegar a bala
2.Abrir o papel
3.Colocar a bala na boca
4.Chupar a bala
5.Jogar o papel fora
Ou somar dois números quaisquer:
1.Inserir o primeiro número
2.Inserir o segundo número
3.Realizar a soma do primeiro com o segundo número
4.Exibir o resultado
1A) Descreva um algoritmo para Escovar os Dentes.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
1B) Descreva um algoritmo para subtrair um número x de um número y e
multiplicar o resultado por 2.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
1C) Descreva um algoritmo para ir de casa ao trabalho.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Programas
Programas são algoritmos escritos numa linguagem de programação
(Pascal, Java, C, C#, etc.) e interpretados e executados pelo
computador.
Desenvolvimento de Algoritmos
Vimos que algoritmo é uma sequência lógica e finita de passos e que
qualquer tarefa pode ser descrita por um algoritmo:
1.Fazer um pudim de leite.
2.Realizar uma transação bancária pela Internet.
Para que desenvolvamos algoritmos, devemos dividílo em três partes:
ENTRADA → PROCESSAMENTO → SAÍDA
Entrada: Os dados de entrada do algoritmo.
Processamento: Procedimentos utilizados para atingir o objetivo
final.
Saída: Os dados processados.
Exemplo
Algoritmo para realizar média final de alunos de uma determinada
escola. Os alunos realizam quatro provas no ano (P1, P2, P3 e P4).
A média final é a média aritmética dessas quatro provas.
Quais são os dados de entrada desse algoritmo?
Resposta: O valor das quatro provas.
P1, P2, P3 e P4.
Qual o processamento desse algoritmo?
Resposta: Somar as quatro notas e dividir por quatro.
(P1 + P2 + P3 + P4)
____________________
4
Quais os dados de saída desse algoritmo?
Resposta: O dado de saída é o resultado da média aritmética.
2B) Crie um algoritmo para calcular o valor do dólar, dado um valor
em real (1 real equivale a 1,8 dólares). Descreva o(s) dado(s) de
entrada, o processamento e o(s) dado(s) de saída para esse algoritmo.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Java
Hoje em dia, com a tecnologia tão presente em nossas vidas, não
valorizamos o fato de que podemos acessar e nos conectar a aplicações
e conteúdo de qualquer lugar, a qualquer hora. Graças ao Java,
esperase que dispositivos digitais sejam mais inteligentes, mais
funcionais e mais divertidos.
No início dos anos 90, extender o poder da computação em rede nas
nossas atividades diárias, era um sonho radical. Em 1991, um pequeno
grupo de engenheiros da Sun, chamados de “Green Team” (time verde),
acreditavam que a próxima grande coisa em computação seria a união de
eletrodomésticos digitais de largo consumo e computadores. Liderados
por James Gosling, esse grupo criou a linguagem de programação que
revolucionaria o mundo: Java.
Eles fizeram uma demonstração dessa nova linguagem com um controle
interativo (originalmente desenhado para a indústria de tv a cabo),
mas infelizmente, o conceito da linguagem era muito avançado para o
propósito desejado naquela época. Porém, eles perceberam que essa
linguagem seria perfeita para a Internet, que dava seus primeiros
passos nessa mesma época. Em 1995, o grupo de desenvolvedores da
linguagem anunciou que o navegador Netscape incorporaria a tecnologia
Java.
Atualmente, Java não somente permeia a Internet como também é a força
invisível por trás de muitas aplicações e dispositivos que utilizamos
em nosso diaadia. De telefones celulares, jogos e sistemas de
navegação a soluções ebusiness, Java está em toda parte.
Não se preocupe caso não consiga entender alguns desses termos. Eles
serão descritos posteriormente.
Para que possamos ver o resultado desse programa na prática, devemos
colocar esse código em um arquivo de texto. Salve o arquivo com o
nome AloPessoal.java (o nome do arquivo deve ser o mesmo da classe
com a extensão .java).
Abra o terminal (ALT + F2 e em seguida digite xterm). Vá até o
diretório onde foi salvo o arquivo AloPessoal.java e digite o
comando:
>javac AloPessoal.java
Esse comando irá compilar o arquivo .java para um arquivo .class.
Agora para executar o programa, digite:
>java AloPessoal
Deve ser exibida a mensagem “Alô Pessoal!” no terminal.
3A) Altere o programa para exibir seu nome completo ao invés de “Alô
Pessoal!”.
3B) Altere o programa para exibir seu nome completo em duas linhas.
Netbeans
O Netbeans é um IDE (Integrated Development Environment – Ambiente
Integrado de Desenvolvimento) para programarmos em diversas
linguagens, principalmente Java. Ele facilita muitas das tarefas do
diaadia: exibe erros e sugestões para solucionar problemas,
armazena tarefas repetitivas em macros para facilitar a utilização,
permite que acompanhemos o processamento de nossos aplicativos linha
alinha para análise de erros, etc.
O Netbeans é opensource e pode ser “baixado” gratuitamente em
http://netbeans.org/.
Criando Projetos no Netbeans
1) Abra o Netbeans.
2) Escolha a opção Arquivo → Novo Projeto.
5) Clique em Terminar.
Agora os seguintes componentes são exibidos:
System.out.println(“Hello World!”);
Salve as alterações em Arquivo → Salvar (ou pressione CRTL + S).
Como o Netbeans tem a opção de Compilar ao Salvar, não é necessário
compilarmos manualmente o projeto para que ele seja executado. Para
executar o programa HelloWorldApp, vá em Executar → Executar Projeto
Principal (ou pressione F6).
A seguinte mensagem deve ser exibida:
Orientação a Objetos
Pudemos perceber que um programa é uma série de instruções que
mandamos para o computador e ele as executa sequencialmente. O grande
desafio para nós programadores é estabelecer a associação entre o
modelo que o computador usa e o que nós usamos.
Objeto
É um conjunto de estados e comportamentos. Objetos de software são
comumente utilizados para modelar objetos do mundo real, com o qual
temos contato no nosso diaadia.
Olhe em volta e você verá dezenas de objetos do mundo real: sua mesa,
caneta, lâmpada, computador, etc. Cada objeto tem um estado (o
computador pode estar ligado, desligado, em espera...) e um
comportamento (ligar, desligar, processar, armazenar...).
“Objetos são conjuntos de variáveis e métodos que representam seus
estados e comportamentos”
Objetos armazenam seus estados em campos, ou variáveis, e expõem seus
comportamentos através de métodos (ou em algumas linguagens funções).
Tomemos como exemplo o objeto bicicleta. Alguns de seus estados, ou
variáveis, são a marcha, velocidade, altura do selim. Seus métodos
são mudar marcha, brecar, etc. A utilização desses métodos alteram as
variáveis do objeto: não manipulamos diretamente as variáveis, mas
métodos que alteram essas variáveis. Essa estratégia de manipular
estados através de comportamentos é conhecida como encapsulamento.
Classes
No mundo real você encontrará diversos objetos do mesmo tipo. Podem
existir centenas de bicicletas, mas todas tem características que as
definem como bicicletas e não como carroças, por exemplo. Todas as
bicicletas, portanto, foram criadas utilizando um mesmo padrão (uma
mesma “fôrma”), logo contém os mesmos componentes. Em termos de
orientação a objetos, dizemos que bicicleta é uma instância da classe
de objetos conhecida como bicicletas.
“Classe é o padrão (a fôrma) no qual objetos individuais são criados”
//Estados
int cadencia = 0;
int velocidade = 0;
int marcha = 1;
//Comportamentos
void mudarCadencia(int novoValor) {
cadencia = novoValor;
}
void mudarMarcha(int novoValor) {
marcha = novoValor;
}
void aumentarVelocidade(int valor) {
velocidade = velocidade + valor;
}
void acionarFreios(int valor) {
velocidade = velocidade – valor;
}
void imprimeEstados() {
System.out.println(“Cadencia: ” + cadencia);
System.out.println(“Velocidade: ” + velocidade);
System.out.println(“Marcha: ” + marcha);
}
}
A sintaxe da linguagem Java pode ser nova para você, mas o design da
classe é baseado em nossa discussão anterior. Os campos cadencia,
velocidade e marcha representam os estados do objeto. Os métodos
mudarCadencia, mudarMarcha, aumentarVelocidade, etc. definem o
comportamento do objeto e a forma como ele interage com o mundo
exterior.
O símbolo “//” representa um comentário de linha. Esses comentários
são ignorados pelo compilador. Servem apenas para que possamos
descrever uma operação, variável ou explicar um trecho do aplicativo.
Você deve ter percebido que, diferentemente de nosso programa
AloPessoal, a classe Bicicleta não tem um método main. Isso porque
Bicicleta não é um aplicativo completo; é apenas um padrão para
bicicletas que pode ser utilizado em um aplicativo. A
responsabilidade de criar e usar novos objetos do tipo Bicicleta
pertence a outras classes numa aplicação.
Exemplo de classe utilizando um objeto Bicicleta:
class DemonstracaoBicicleta {
public static void main(String args[]) {
//Criamos duas bicicletas...
Bicicleta bike1 = new Bicicleta();
Bicicleta bike2 = new Bicicleta();
//Invocamos métodos desses objetos:
bike1.mudarCadencia(5);
bike1.mudarMarcha(10);
bike1.aumentarVelocidade(20);
bike2.mudarCadencia(1);
bike2.mudarMarcha(2);
bike2.aumentarVelocidade(7);
//Imprimimos os estados dos objetos...
bike1.imprimeEstados();
bike2.imprimeEstados();
}
}
Ao executarmos DemostracaoBicicleta, nos serão exibidas as mensagens:
>java DemonstracaoBicicleta
>Cadencia: 5
>Velocidade: 20
>Marcha: 10
>Cadencia: 1
>Velocidade: 7
>Marcha: 2
>
Podemos perceber claramente que, ao passarmos valores para os métodos
de Bicicleta, seus campos são modificados.
5A) Crie uma classe para representar um objeto Automovel. Deve haver
um método para exibição dos campos na tela (como o imprimeEstados da
classe Bicicleta).
5B) Construa uma classe que cria três objetos do tipo Automovel.
Atribua valores a esses objetos e então exiba seus estados na tela
(de forma similar à DemonstracaoBicicleta).
Herança
Diferentes objetos algumas vezes tem certas similaridades. Mountain
Bikes, Estradeiras e Bicicletas Ergométricas, por exemplo, dividem
características de bicicletas (velocidade, cadência atual de
pedaladas, marcha atual). Porém, cada um dos tipos de bicicleta
define características adicionais que as fazem ser diferentes umas
das outras: Mountain Bikes podem ter uma coroa adicional, atribuindo
uma faixa de marchas mais pesadas, ou uma estradeira pode ter o
guidom rebaixado. Uma bicicleta ergométrica é estacionária, quer
dizer, não vai a lugar algum, etc.
A programação orientada a objetos permite que classes herdem estados
e comportamentos de outras classes. Em nosso exemplo, Bicicleta agora
tornase uma superclasse de MountainBike, Estradeira ou Ergometrica.
Em Java, é permitido que cada classe tenha uma superclasse direta. E
cada superclasse tem o potencial de ter ilimitadas subclasses.
Bicicleta
A sintaxe para criar uma subclasse é simples. No início da declaração
da classe, utilize a palavra reservada (palavras que não servem como
identificadores de métodos e variáveis por ter um significado
especial na linguagem) extends, seguida do nome da classe do qual se
herdará:
class MountainBike extends Bicicleta {
//novos campos e métodos que definem uma Mountain Bike vão aqui.
interface Bicicleta {
void mudarCadencia(int novoValor);
void mudarMarcha(int novoValor);
void aumentarVelocidade(int valor);
void acionarFreios(int valor);
class MountainBike implements Bicicleta {
//Implementação dos métodos descritos na interface
//Bicicleta.
Nota: caso você queira compilar e testar a interface Bicicleta e a
classe MountainBike, as declarações dos métodos de Bicicleta devem
ser precedidas da palavra reservada public:
public void mudarMarcha(int valor);
As razões para utilização de public serão descritas posteriormente.
6A) Crie uma interface Veiculo. Construa em seguida três classes que
implementam essa interface: Caminhao, CarroPasseio e Motocicleta.
Cada uma dessas classes deve ter estados e comportamentos que as
diferenciem.
Pacotes
Pacote é um domínio que organiza um conjunto de classes relacionadas
e interfaces. Conceitualmente, você pode pensar em pacotes como
diferentes pastas num computador, por exemplo. Como softwares
escritos em Java podem ser compostos de centenas ou milhares de
classes individuais, faz sentido manter tudo organizado colocando
classes relacionadas e interfaces em pacotes.
A plataforma Java provê uma enorme biblioteca de classes (um conjunto
de pacotes) disponível para uso em nossas próprias aplicações. Esta
biblioteca é conhecida como “Application Programming Interface”
(API). Estes pacotes representam as tarefas mais comuns associadas
com propósitos gerais de programação. Por exemplo: Um objeto String
contém estados e comportamentos para textos (cadeia de caracteres).
Objetos File permitem ao programador facilmente criar, remover,
inspecionar, comparar ou modificar um arquivo no sistema de arquivos.
Um objeto Socket permite a criação e uso de sockets de rede. Diversos
objetos GUI (Graphical User Interface) controlam botões, caixas de
seleção e várias opções relacionadas à interface gráfica com usuário.
Há, literalmente, milhares de classes que podemos utilizar. Isso
permite a você, programador, focar seus esforços no design de sua
aplicação particular ao invés de perder tempo com a infraestrutura
necessária para fazer sua aplicação funcionar.
Java Básico
Aqui aprenderemos a sintaxe básica para criarmos aplicativos em java.
Variáveis
Como aprendemos, objetos armazenam seus estados em campos.
int cadencia = 0;
int velocidade = 0;
int marcha = 1;
Mas quais são as regras e convenções para nomear um campo? Além de
int (número inteiro), quais os outros tipos de dados disponíveis?
Campos devem ser inicializados no momento da declaração? Campos
recebem um valor padrão caso não sejam inicializados? Exploraremos as
respostas para essas e outras perguntas aqui. Mas antes que
comecemos, há algumas distinções técnicas que devemos conhecer.
Na linguagem de programação Java, os dois termos, campo e variável,
podem ser utilizados para descrever estados.
Java define os seguintes tipos de variáveis:
class Radio {
//Variáveis de estância.
int volume = 10;
float estacao = 107.3;
public void trocarEstacao(float novaEstacao) {
//Variável local. Só existe dentro do método
//trocarEstacao.
float diferenca = estacao – novaEstacao;
...
}
}
Parâmetros Você já viu exemplos de parâmetros neste tutorial. Tanto
na classe Bicicleta quanto no método main da classe AloPessoal. A
assinatura do método main é public static void main(String args[]). A
variável args é o parâmetro do método main. Lembrese de que
parâmetros são sempre classificados como variáveis e não como campos!
Isso se aplica a outras construções que aceitam parâmetros também
(como construtores e manipuladores de exceções) que iremos discutir
ao longo deste tutorial.
7A) Dado o trecho de código abaixo:
class Cachorro {
static final int BULDOGUE = 0;
static final int PODDLE = 1;
static final int PITBULL = 2;
int raca;
String nome;
int idade;
boolean vacinado;
public void comer(int comidaEmKilos) {
float peso = 5.0;
if(comidaEmKilos <= peso) {
System.out.println(“Au, au! Slept!”);
}
else {
System.out.println(“GRRRRRR!!!!!!!”);
}
}
public void correr(float velocidade) {
System.out.println(nome + “ correndo a ” + velocidade
+ “km/h!”);
}
public void vacinar() {
vacinado = true;
}
}
Identifique as variáveis de instância, variáveis de classe, as
variáveis locais e os parâmetros da classe Cachorro.
Nomenclatura
Cada linguagem de programação tem seu conjunto de regras e convenções
para os tipos de nomes que podem ser usados. Java não é diferente. As
regras e convenções para nomear variáveis em Java são:
Java é uma linguagem estaticamente tipada. Isso significa que todas
as variáveis devem ser declaradas antes que possam ser utilizadas.
Isso envolve definirmos o tipo e o nome da variável, como já foi
visto:
int marcha = 1;
Variável do tipo int, de nome marcha recebendo valor 1.
Ao declararmos a variável, dizemos ao programa que o campo chamado de
marcha existe, armazena dados numéricos do tipo inteiro e tem um
valor inicial de 1. O tipo da variável determina os valores que ela
pode conter mais as operações que podem ser realizadas nela. Além do
tipo int, Java suporta sete outros tipos primitivos de dados. Um tipo
primitivo é prédefinido pela linguagem (a linguagem se encarrega de
disponibilizálo) e seu nome é uma palavra reservada (não podemos
nomear nossa variável de int, por exemplo). Valores primitivos não
compartilham estado com outros valores primitivos. Os oito tipos
primitivos disponíveis em Java são:
1. byte Esse tipo de dados é um inteiro de 8 bits com sinal. Seu
valor mínimo é 128 e seu valor máximo é 127. O byte é muito
usado para representar informação binária em largos vetores.
byte memoria = 30;
2. short O tipo de dados short é um inteiro de 16 bits com sinal.
Seu valor mínimo é 32768 e seu máximo é 32767.
short notaProva = 6657;
3. int Esse tipo de dados é um inteiro de 32 bits com sinal. Tem um
valor mínimo de 2147483648 e um máximo de 2147483647. Para
valores integrais, esse tipo de dados é geralmente a escolha
padrão. Um int provavelmente será grande o suficiente para
armazenar a maioria dos números inteiros que seu programa irá
utilizar. Caso o tipo int não seja suficiente para armazenar os
números inteiros de sua aplicação, utilize o tipo de dados long.
int idadeMatusalem = 564412;
4. long O tipo de dados long é um inteiro de 64 bits com sinal. Seu
valor mínimo é 9223372036854775808 e seu máximo é
9223372036854775807. Use esse tipo se precisar de um valor maior
do que o int pode prover.
long valorEnorme = 546885454588746008;
5. float Tipo de dados de precisão única com 32 bits e ponto
flutuante (aceita valores numéricos reais). Esse tipo de dados
nunca deve ser utilizado para valores precisos, como valores
monetários. Para isso, utilize a classe java.math.BigDecimal.
float taxaJuros = 1.4;
6. double Esse tipo de dados é de precisão única com 64 bits e
ponto flutuante. double é comumente a escolha padrão na
utilização de números reais. Como mencionado para o tipo float,
esse tipo de dados não deve ser utilizado para valores precisos.
double mediaFinal = 8.75;
7. boolean Tipo com apenas dois valores possíveis: true
(verdadeiro) e false (falso). Esse tipo de dados é utilizado
para simples marcações que sigam condições verdadeiro/falso.
boolean temCarroProprio = true;
8. char Representa um único caractere de 16 bits Unicode. Seu valor
mínimo é '\u0000'(0) e seu máximo é '\uffff' (65535).
char sexo = 'F';
Além dos oito tipos primitivos de dados listados acima, Java fornece
suporte especial para cadeia de caracteres (texto) através da classe
java.lang.String. Ao declarar um texto entre aspas duplas, Java
criará um novo objeto do tipo String. Por exemplo, o trecho a seguir:
String s = “Isso é uma String!”; atribui a String “Isso é uma
String!” à variável s. Objetos do tipo String são imutáveis, quer
dizer, uma vez criados não podem ter seu valor alterado.
Técnicamente, String não é um tipo primitivo. Mas considerando o
suporte especial que a linguagem dá a classe (como atribuir um texto
entre aspas duplas diretamente ao objeto), normalmente vemos Strings
como um tipo primitivo.
Como foi dito acima, uma vez atribuído um valor à uma variável do
tipo String, o valor não pode ser alterado; mas a variável pode
receber um valor diferente. Por exemplo:
//Atribuímos um valor à variável texto. Esse valor não pode ser
//alterado, mas a variável texto sim!
String texto = “Isso é um texto”;
//Mas podemos reconstruir a variável texto com um outro valor!
texto = “Isso já é outro texto!”;
Os valores padrão para os tipos de dados em Java são os seguintes:
Tipo Primitivo Valor Padrão (para campos)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
String (ou qualquer outro objeto) null
boolean false
Tenha em mente que para variáveis locais, o compilador nunca atribui
um valor padrão na declaração. Se você não puder inicializar sua
variável local quando ela é declarada, defina um valor a ela antes de
usála. Acessar uma variável local nãoinicializada resultará num
erro em tempo de compilação.
8A) Crie uma classe Pessoa. Essa classe deve ter os seguintes
campos: nome (String), idade (int), sexo (char), profissão (String),
altura (double) e peso (double). Crie métodos que exponham e definam
os campos de Pessoa. Crie uma outra classe executável (com o método
main) e construa duas instâncias de Pessoa. Altere os valores dos
campos das Pessoas instanciadas.
Exemplo com métodos para receber e definir campos:
class Girafa {
//Os campos...
int tamanhoPescoco;
int tamanhoLingua;
//Métodos para expor os campos de Girafa
public int getTamanhoPescoco() {
//Retornamos o valor do campo tamanhoPescoco.
return tamanhoPescoco;
}
public int getTamanhoLingua() {
//Retornamos o valor do campo tamanhoLingua.
return tamanhoLingua;
}
//Métodos para definição dos campos de Girafa
public void setTamanhoPescoco(int novoValor) {
//Definimos o valor para o campo tamanhoPescoco.
tamanhoPescoco = novoValor;
}
public void setTamanhoLingua(int novoValor) {
//Definimos o valor para o campo tamanhoLingua.
tamanhoLingua = novoValor;
}
}
Literais
Pudemos perceber que a palavra reservada new não é utilizada para
inicialização de tipos primitivos. Tipos primitivos são dados
especiais construidos dentro da linguagem; não são objetos criados de
uma classe. Um literal é a representação em código fonte de um valor
fixo. Literais são representados diretamente no código sem necessitar
de computação. Abaixo seguem exemplos de literais em Java:
boolean resultado = true; //true é o valor literal.
char cMaiusculo = 'C'; //'C' é o literal.
byte posicoes = 100; //100 é o valor literal.
short frangosAssados = 3455; //3455 é o literal.
int valorDecimal = 26; //Número 26 na base decimal.
int valorOctal = 032; //Número 26 na base octal.
int valorHexadecimal = 0x1a; //O número 26 na base hexadecimal.
double d1 = 1.234e2 //Ou 123.4 sem notação científica.
double d2 = 44.766d; //Significa a mesma coisa que 44.766.
double d3 = 89.433; //Sem símbolos!
float f1 = 77.343f; //O mesmo valor que 77.343.
Arrays
Um array, é um objeto container que armazena um número fixo de
valores dum mesmo tipo. O tamanho de um array é definido no momento
de sua criação. Após a criação, o tamanho do array não pode ser
alterado. Você já viu um exemplo de array nesse tutorial. Se lembra
do método main? Ele recebe um array de Strings como parâmetro.
Exemplo de um array com 10 posições.
Os itens do array são chamados de elementos, e cada elemento é
acessado por seu índice numérico. Como mostrado na ilustração
anterior, a primeira posição de um array tem índice 0. Em nosso
exemplo, a última posição do array tem índice 9 (o tamanho do array
menos um). O quinto valor no array, por exemplo, seria acessado pelo
índice 4.
Segue exemplo de classe utilizando array:
class TesteArray {
public static void main(String args[]) {
//A declaração de tipo “int[]” define que criamos um array
//do tipo inteiro. O trecho “new int[10]” diz que nosso
//array v terá 3 posições.
int[] a = new int[3];
//Atribuímos o valor 300 à primeira posição do array.
a[0] = 300;
//Atribuímos o valor 150 à segunda posição do array.
a[1] = 150;
//Atribuímos o valor 50 à última posição de nosso array.
a[2] = 50;
//Exibimos os valores armazenados no array.
System.out.println(“Elemento na 1ª posição: ” + a[0]);
System.out.println(“Elemento na 2ª posição: ” + a[1]);
System.out.println(“Elemento na 3ª posição: ” + a[2]);
}
}
Ao executarmos esse programa, nos será exibido:
>300
>150
>50
Similarmente, podemos declarar arrays de outros tipos:
byte[] b = new byte[100];
String[] frases = new String[50];
Bicicleta[] bykes = new Bicicleta[10];
Na declaração, podemos definir que estamos criando um array no tipo
do dado (int[]) ou no nome da variável:
//Note que os colchetes ([]) definem nossa variável numeros como um
//array.
int numeros[] = new int[30];
Podemos também, caso já saibamos de antemão os valores que serão
armazenados no array, já definilos no momento da instanciação:
String[] nomes = {“Daniel”, “Fernando”, “Alex”, “Melissa”};
O array nomes será criado com 4 posições, sendo que a 1ª posição terá
o valor “Daniel”, a 2ª posição o valor “Fernando”, a 3ª posição o
valor “Alex” e a última posição o valor “Melissa”.
Um array de uma dimensão (como os vistos anteriormente) é conhecido
como vetor.
Podemos também criar arrays multidimensionais (com duas ou mais
dimensões). Segue exemplo de um array bidimensional (ou matriz):
//Criamos uma matriz de 4x4...
int[][] matriz = new int[4][4];
6 7 3
2 8 0
4 1 5
int[][] m = new int[3][3];
Utilizemos o exemplo da imagem anterior. Para acessarmos o valor 7:
//Valor 7 está na primeira linha (0), segunda coluna (1).
int valor7 = m[0][1];
Acessando valor 5:
//Valor 5 está na terceira linha (2), terceira coluna (2).
int valor5 = m[2][2];
A matriz da figura poderia ser criada da seguinte forma...
int[][] m = {{6,7,3},{2,8,0},{4,1,5}};
ou...
int[][] m = new int[3][3];
//1ª linha...
m[0][0] = 6;
m[0][1] = 7;
m[0][2] = 3;
//2ª linha...
m[1][0] = 2;
m[1][1] = 8;
m[1][2] = 0;
//3ª linha.
m[2][0] = 4;
m[2][1] = 1;
m[2][2] = 5;
Double[] valores = {1.4, 7.66, 98.333};
System.out.println(“Tamanho do vetor valores: ” + valores.length);
O programa exibiria a mensagem “Tamanho do vetor valores: 3”
9A) Construa uma classe executável (com método main) e crie um array
unidimensional do tipo int. Insira valores no array e os exiba na
tela (System.out.println()).
9B) Construa um classe executável e crie um array bidimensional 3x3
de Strings. Insira nomes de pessoas conhecidas nessa matriz e, então,
exiba esses nomes na tela.