Você está na página 1de 20

Programação Orientada a Objetos

Aula 10 – Arrays de
Referência

Fernando Kenji Kamei


fkenjikamei@gmail.com
O que vimos na aula passada...

} O que são Arrays


} Como declarar e instanciar arrays
} Atribuir valores e percorrer arrays
} Arrays Muldimensionais

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 2 de 20


O que veremos hoje...

} O que são Arrays de referências


} Como se beneficiar do uso dos Arrays de referências

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 3 de 20


Relembrando arrays…

} Vimos que Arrays são estruturas que armazenam


dados de um mesmo tipo.
} As Arrays quando iniciadas, devem possuir um
tamanho definido. E, esse tamanho não pode ser
alterado.
} Vimos que podemos percorrer as arrays, mas para
isso,precisamos saber o seu tamanho
} Propriedade length retorna o tamanho do array

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 4 de 20


Arrays de Referências
O que são?

} As arrays podem armazenar valores de um mesmo


tipo.
} Exemplos:
} int[] numerosSorteados;
} String[] nomesAlunos

} E também podem armazenar referências à


objetos

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 5 de 20


Arrays de Referências
O que são?

} Como assim armazenar referências à objetos?

} Se criarmos uma instância de um carro, um Uno por


exemplo, então podemos criar uma array que
referencie o objeto Uno.

} Vamos ver como funciona na prática?

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 6 de 20


Arrays de Referências
Como utilizar…

} Vamos elaborar uma classe para Carro, que deve


possuir o nome do carro, e o ano de fabricação. E, por
enquanto, apenas as funcionalidades para receber e
retornar o nome do carro, e o ano de fabricação.

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 7 de 20


Para saber…

} Métodos que:
} Tem o papel de apenas receber um valor e passar este
para um atributo, denominamos set;

} E aqueles que apenas retornam o valor de um atributo,


denominamos get.

} Isso faz parte do Java Code Convention.

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 8 de 20


Para saber…

} Métodos set para a classe Carro:

void setNome(String nomeCarro) {


this.nome = nomeCarro;
}

void setAnoFabricacao(int ano) {


this.anoFabricacao;
}

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 9 de 20


Para saber…

} Métodos get para a classe Carro:

String getNome() {
return this.nome;
}

int getAnoFabricacao() {
return this.anoFabricacao;
}

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 10 de 20


Arrays de Referências
Inserindo um array de referência

Carro[] carros = new Carro[2];

Carro c1 = new Carro();


c1.setNome(“Uno”);
c1.setAnoFabricacao(2006);

Carro c2 = new Carro();


c1.setNome(“Fiesta”);
c1.setAnoFabricacao(2014);

carros[0] = c1;
carros[1] = c2;

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 11 de 20


Arrays de Referências
Acessando um array de referência

//Imprimir os nomes dos carros

System.out.println(carros[0].getNome());
System.out.println(carros[1].getNome());

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 12 de 20


Arrays de Referências
Inserindo por loop
Carro[] carros;
carros = new Carro[2];
Scanner in = new Scanner(System.in);

for (int i=0; i<carros.length; i++) {


Carro carro = new Carro();
System.out.println("\nQual o nome do "+(i+1)+"o. carro?");
carro.setNome(in.nextLine());
System.out.println("\nQual o ano de fabricação do "+(i+1)+"o. carro?");
carro.setAnoFabricacao(in.nextInt());
in.nextLine();
carros[i] = carro;
}

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 13 de 20


Arrays de Referências
Acessando por loop

System.out.println("\n\n*** Carros inseridos ***\n");

for (int i=0; i<carros.length; i++) {


System.out.println(carros[i].getNome());
}

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 14 de 20


Arrays de Referências
Vamos praticar…

Exercício 01:

Vamos criar uma Escola de Inglês Virtual! Ela deve possuir as


Turmas para determinados anos. Ou seja, para cada ano escolar, a
escola pode possuir diversas turmas.

A EscolaInglesVirtual possui apenas um nome, e a quantidade


de turmas que são passados pelo construtor da classe. Ainda,
deve possuir a funcionalidade de criarTurmas para cada ano.

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 15 de 20


Arrays de Referências
Vamos praticar…

Exercício 02:

Cada Turma deve possuir um codigo – númerico e positivo, nível


da turma (básico, intermediário, avançado) - texto, turno (manhã,
tarde, noite) – texto, e a capacidade de alunos (não pode ser
maior do que 15) – numérico.

A turma deve ter as funcionalidades para cada característica: get


e set.

Criar as validações necessárias.

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 16 de 20


Arrays de Referências
Vamos praticar…

Exercício 03:

Implementar no método main da classe da escola, uma chamada


para criar as turmas necessárias. E também para poder mostrar
os dados de todas as turmas inseridas.

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 17 de 20


Arrays de Referências
Vamos praticar…

Exercício 04:

Modifique o método main, retirando a parte que mostra os


dados de todas as turmas inseridas, e crie um método
mostrarTurmas que faça essa funcionalidade. Chame o método
criado no método main.

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 18 de 20


Arrays
Um pouco mais sobre as Arrays I

Como podemos encontrar um elemento dentro de uma Array?

Por exemplo, se tivermos uma Array de nomes. Como saber se


um nome já foi inserido?

Podemos percorrer a array, e comparar o valor que queremos.


Utilizando para isso o método .equals();

Ex.: nomes[i].equals(“Kenji”);

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 19 de 20


Perguntas?

Não esqueçam de
ler os slides da
próxima aula

Programação Orientada a Objetos | Prof. Fernando Kenji Kamei 20 de 20

Você também pode gostar