3. Arrays
São estruturas de dados capazes de representar uma coleção
de variáveis de um mesmo tipo.
Sintaxe:
<tipoElemento>[] <nomeVariavel>;
ou
<tipoElemento> <nomeVariavel>[];
Exemplo:
int[] umArray;
Int umArray[];
Arrays 3
4. Caracteristicas
• Todo array é uma variável do tipo Reference;
• Quando declarado em escopo local deve ser inicializado
antes de seu uso;
• Quando declarado fora de um método será inicializado
como null;
• Todo Array é indexado a partir do 0;
• A forma mais utilizada de inicialização é usando a palavra
reservada new.
Exemplo: int[] umArray = new int[5];
Arrays 4
5. Valores de Inicialização
• Ao declarar um array e inicializa-lo utilizando a palavra
reservada new, todos os elementos do array são inicializados
seguindo a seguinte tabela de valores padrão:
Arrays 5
Tipo Valor de inicialização
byte 0
short 0
int 0
long 0
float 0
double 0
char ‘u0000’
boolean false
reference null
7. Iterando por um Array
Utilizando um loop for:
class Principal{
public static void main(String[] args){
float[] teste = { 1F, 2.5F, 3F, 4.12F, 5.6F};
for( int i = 0; i< teste.length;i++ ){
System.out.println( “[ ” + teste[i] + “ ]” );
}
}
}
Arrays 7
8. Arrays Bidimensionais
[0] *
[1] *
[2] *
Arrays 8
Java não tem um estrutura especial para representar arrays de
duas dimensões, no entanto, podemos representar um array
bidimensional declarando um array composto por outros arrays.
Exemplo:
Int[][] array1 = new int[3][2]; [0] *
[1] *
[0] *
[1] *
[0] *
[1] *
9. Arrays Multidimensionais
Arrays 9
Mesmo conceito visto anteriormente, portanto, fica fácil criar
arrays das mais diversas dimensões.
Alguns exemplos:
//Declaração de um array de três dimensões
char[][][] array3 = new char[2][2][2];
//Declaração de inicialização em um único comando de um array
de três dimensões
char[][][] array4 = { {{1,1},{1,2}}, {{2,1},{2,2}}, {{3,1},{3,2}} };
10. Pontos Negativos dos Arrays
Arrays 10
De um modo geral, a utilização de arrays em um programa é
essencial, contudo, ainda vale mencionar alguns pontos
negativos:
• Não permite redimensionamento;
• Em se tratando de tipos primitivos, são estruturas de um tipo
só, o que dificulta sua utilização em cenários mais complexos;
• Índice 0 para o primeiro elemento pode gerar confusão;
11. Enhanced For
Recurso incluído na versão 1.5 do JavaSE. Considerada uma melhoria, pois melhora a
navegação dos elementos de uma coleção de objetos (Arrays, Coleções, Mapas, etc.).
Sintaxe:
for( <Object<Tipo dos dados do Array> oObjeto : array ){
}
Exemplo:
class Principal{
public static void main(String[] args){
int arr[] = {1,2,3,4};
for(int valor: arr){
System.out.println(valor);
}
}
}
Arrays 11
12. Método main
O método main recebe como parâmetro um array de Strings que representa
os argumentos que podem ser passados via linha de comando. Ou seja, cada
valor passado (separado por espaço) depois do nome da classe na execução
da classe e considerado um elemento do array recebido pelo método main.
Declaração :
public static void main(String[] args){}
Exemplo:
class Principal{
public static void main(String[] args){
for( String valor : args ){
System.out.println( valor );
}
}
}
Ao Rodar este programa com o comando:
java Principal param1 param2 param3
Irá imprimir
param1 param2 param3
Arrays 12
13. Exercício
Escreva um programa que exiba a soma dos
valores do tipo double vindos do console.
Ex: java MeuPrograma 2.3 5.4 6.5 7.8
Arrays 13
14. Exercício
Utilize um array bidimensional para resolver o seguinte
problema: Uma empresa tem 3 equipes de venda, sendo
que uma vez por dia cada vendedor informa ao programa
as seguintes informações:
• O número do vendedor;
• O número do produto;
• O valor total em reais desse produto vendido nesse dia;
Escreva um aplicativo que utilize a classe Scanner para ler
dos três vendedores as informações necessárias e em
seguida armazene-as no array criado. Ao final da coleta
dos dados exibe um resumo dessas informações.
Arrays 14
15. O que é uma Classe ?
Uma classe é definida pelo usuário pelas especificações
que a identificam.
Classe = Características + comportamentos
Como exercício, vamos pensar em possíveis classes, mas
não vamos ficar presos no básico !
Classes malucas :
Classe Eletricidade ? Classe Travesseiro ? Classe de uma
Classe ? Classe Deus ?
Introdução a criação de classes 15
16. O que é um Objeto ?
Uma vez definida a classe, podemos imaginar
ocorrências especificas desta, basta pensarmos
na relação modelo x instancia.
A classe Carro pode carregar características
comuns a diversos veículos existentes, mas o
que seriam os objetos/instancias ?
Ex: Golf, Vectra, Mercedez, Astra, Gol e etc.....
Introdução a criação de classes 16
17. Conceitos Importantes
No dia a dia é comum encontrarmos softwares que não
seguem a risca os conceitos abaixo:
• Granularidade;
• Coesão;
• Acoplamento;
Vocês conhecem algum exemplo ?
Isso se aplica apenas ao mundo Java e orientação a objeto ?
Introdução a criação de classes 17
18. Estrutura de uma Classe.
Como dito anteriormente, um programa em java
normalmente é composto por várias classes,
portanto, o bom entendimento deste tópico é
fundamental para o restante do curso.
Observe o exemplo abaixo que declara a classe Pessoa :
****************************************
public class Pessoa{
//Variaveis
//Construtores
//Metodos
}
****************************************
Introdução a criação de classes 18
19. Criando um método
Uma classe pode ter N métodos, cada método deve ser declarado
conforme sintaxe a seguir:
Sintaxe :
<modificador> <tipoRetorno> <nomemetodo>(<parametros>){
//Corpo do Método
}
Exemplo:
public class Pessoa{
public void andar(){
System.out.println(“Andando......”);
}
}
Introdução a criação de classes 19
20. Retorno de um método
Os métodos em Java podem retornar um valor
para o código que os chamou, As regras são:
• Utilizar a palavra reservada return seguida pelo valor a ser
retornado.
• O valor de retorno deve ser compatível com o tipo declarado
na assinatura do método;
• O valor de retorno pode ser um literal;
• O retorno pode ser obtido por meio da avaliação de uma
expressão ou até mesmo a chamada de outro método;
• Quando um método não retorna valor algum, indica-se em
sua declaração que seu tipo de retorno é void;
Introdução a criação de classes 20
21. Chamando um método
Para chamar um método de uma classe, você primeiramente deve criar uma
instancia daquela classe e então chamar o método a partir desta.
public Principal{
public static void main(String[] args){
Pessoa p = new Pessoa(); //Criando uma instancia da classe Pessoa
p.andar(); //Chamando método andar da classe pessoa
}
}
Introdução a criação de classes 21
22. Variáveis de instancia
São variáveis(atributos) declaradas dentro da declaração da classe, mas fora
do corpo das declarações de método da classe.
Quando uma classe é instanciada cada objeto mantém uma copia dos
atributos declarados na classe.
Caso não forneça um valor para a variável, esta irá receber um valor padrão.
public class Pessoa{
String nome; //variável de instancia
public void andar(){
System.out.println( “Sr.” + nome + “Andando......” );
}
}
Introdução a criação de classes 22
23. Modificando uma variável de instancia
Cada objeto possui sua copia da variável, portando, qualquer alteração em um
objeto não afeta o outro objeto.
public Principal{
public static void main(String[] args){
Pessoa objeto1 = new Pessoa();
objeto1.nome = “Joaozinho”;
Pessoa objeto2 = new Pessoa();
objeto2.nome = “Pedrinho”;
objeto1.andar();
objeto2.andar();
}
}
Introdução a criação de classes 23
24. Varargs
Introduzido no Java 5, apresenta uma maneira bastante prática para passar
inúmeros argumentos para um método.
Exemplo:
public int somar(int... x){
int res = 0;
for(int val : x ){
res +=x;
}
return res;
}
Ao chamar o método somar acima, pode-se passar n parâmetros do tipo int,
pois o Java irá converte-los em um array.
Introdução a criação de classes 24
25. Vale Lembrar
Em Java sempre ocorre passagem de parâmetro por cópia, isso
gera bastante confusão, principalmente quando temos variáveis
do tipo Reference.
Exercício :
Para testar este conceito, vamos criar um método que recebe
um parâmetro do tipo date e altere-o para um valor qualquer, do
método main, experimente criar uma variável local que já
possua um valor prévio. Vamos ver o que acontece com a
variável antes de depois da chamada do segundo método.
Introdução a criação de classes 25
26. Modificadores de Acesso
Existem basicamente 4 modificadores de acesso na linguagem Java, podendo ser aplicados em
nível de classe, método e variável.
1) Modificador padrão ( Sem modificador )
– Classes, Variáveis ou métodos definidos sem qualquer modificador são acessíveis
apenas por outra classe do mesmo pacote.
2) Privado
– Métodos, variáveis e construtores declarados como private são acessíveis somente
dentro da própria classe a qual foram declarados;
– Classes e Interfaces não podem ser privadas;
3) Publico
– Uma classe, método, construtor, interface declarado como publico pode ser acessível
de qualquer outra classe.
4) Protegido
– uma variavel, metodo e construtor declarado como protected possui um
comportamento semelhante ao modificador default, podem com um pouco menos
restritivo, uma vez que ainda podem ser acessados por subclasses que estejam
externas ao pacote(herança).
Introdução a criação de classes 26
27. Exercício
Crie um classe chamada Empregado com três variáveis de instancia: nome,
salário mensal e RG. Além disso cria uma segunda classe chamada Principal a
qual será responsável por ler via prompt de comando os dados de cada
empregado. Por último, crie um menu para seu software com as seguintes
opções:
• Digite 1 para inserir um novo empregado;
• Digite 2 para receber um resumo de todos os empregados cadastrados;
• Digite -1 para sair;
Introdução a criação de classes 27