Buscar

LPI 04 - Pacotes - Visibilidade - Referências a Objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Linguagem de Programação I
Pacotes
Visibilidade
Referências a Objetos
Joinvile Batista Junior
UFGD - LPI 04 - Joinvile Batista Junior 2
Agrupando Classes em Pacotes
Classe
• cada arquivo fonte java (<arquivo>.java) está associado a uma única 
classe pública : public class Aluno
– o arquivo pode conter, adicionalmente, mais de uma classe não 
pública
Pacote
• um pacote é um diretório utilizado para agrupar arquivos de classes
• um pacote é definido no primeiro statement no arquivo da classe
– package controle;
• um pacote também pode ser composto por uma árvore de diretórios
– java.util.Vector : classe Vector pertence ao subdiretório util do 
diretório java
UFGD - LPI 04 - Joinvile Batista Junior 3
Visibilidade entre Pacotes distintos
Importando Classes de outros Pacotes
• uma classe precisa importar outra classe pública de outro pacote para 
poder referenciá-la
– importando a classe Aluno do pacote entidade logo após o 
statement que define o pacote controle da classe Principal
• package controle;
• import entidade.Aluno;
– uma classe não precisa importar outra classe pública do mesmo 
pacote
• excepcionalmente, as classes públicas do pacote java.lang são visíveis, 
por default, para qualquer classe de qualquer pacote
– observe que a classe String que pertence ao pacote java.lang não 
precisa ser importada
UFGD - LPI 04 - Joinvile Batista Junior 4
Visibilidade de Dados e Métodos
Modificadores de Visibilidade
• o modificador public indica que um dado ou método pode ser visível 
para uma classe que importou a classe pública que os define
• o modificador private indica que um dado ou método é visível somente 
para os métodos de sua própria classe
• a ausência do modificador de visibilidade indica que um dado ou método 
de uma classe é visível para outras classes do mesmo pacote
Visibilidade de Dados
• é aconselhável restringir a visibilidade dos dados aos métodos de sua 
própria classe
Visibilidade de Métodos
• métodos que podem ser chamados por classes de outros pacotes 
precisam ser públicos
• métodos restritos a métodos da própria classe devem ser privados
UFGD - LPI 04 - Joinvile Batista Junior 5
Definindo uma Classe com Atributos e Referências a Objetos
Possíveis Dados para a definição de uma Classe Aluno
• atributos
– idade : utiliza o tipo simples int
– sexo : utiliza o tipo simples boolean
– altura : utiliza o tipo simples float
– nome : exceção que não utiliza um tipo simples
• referencia um objeto da classe genérica String
• referências a objetos
– endereco : referencia um objeto da classe definida para uma 
aplicação específica Endereço
UFGD - LPI 04 - Joinvile Batista Junior 6
Definindo Endereço como Classe
package entidade;
public class Endereço {
private String rua;
private int número;
private String bairro;
public Endereço (String rua, int número, String bairro) {
this.rua = rua;
this.numero = número;
this.bairro = bairro;
}
public String getRua () { return rua; }
public void setRua (String rua) { this.rua = rua; }
public int getNúmero () { return número; }
public void setNúmero (String número) { this.número = número; }
public String getBairro () { return bairro; }
public void setBairro (String bairro) { this.bairro = bairro; }
}
UFGD - LPI 04 - Joinvile Batista Junior 7
Referenciando Objeto da Classe Endereço na Classe Aluno
package entidade;
public class Aluno {
private String nome;
private Endereço endereço;
public Aluno (String nome, Endereço endereço) {
this.nome = nome; 
this.endereço = endereço;
}
public String getNome () { return nome; }
public void setNome (String nome) { this.nome = nome; }
public Endereço getEndereço () { return endereço; }
public void setEndereço (Endereço endereço) { this.endereço = endereço; }
}
UFGD - LPI 04 - Joinvile Batista Junior 8
Classe Principal importa Classes de outro Pacote
package controle;
import entidade.Aluno;
import entidade.Endereço;
public class Principal {
public static void main (String[] args) {
imprimir ();
}
private void imprimir () {
Endereço endereço = new Endereço ("Alecrins", 128, "Cambuí");
Aluno aluno = new ("Pedro Almeida", endereço);
System.out.print ("O aluno " + aluno.getNome());
System.out.println (" mora na rua " + endereço.getRua());
}
}
UFGD - LPI 04 - Joinvile Batista Junior 9
Exercícios - 4
• 4.1 – Edite um programa com as seguintes classes : Ator, Diretor e Filme. 
Para a classe Ator defina os seguintes atributos : nome, idade, n_oscars
(número de Oscars conquistados). Para a classe Diretor defina os atributos 
: nome, ganhador_Oscar. Para a classe Filme defina o atributo titulo e as 
referências : diretor, ator_principal, atriz_principal. Defina a classe 
Principal para criar um diretor, um ator, uma atriz e um filme, e imprimir, em 
cada linha, a seguinte descrição para o filme: título do filme, nome do 
diretor, nome do ator principal, nome da atriz principal.
• 4.2 – Altere o programa do exercício 4.1 da seguinte forma: acrescente a 
referência principal_filme à classe Diretor e crie um construtor na classe 
Diretor para deixar a inicialização de principal_filme para ser realizada 
através do método setPrincipalFilme, referenciando o filme criado 
inicialmente. Imprima, adicionalmente, uma descrição para o diretor 
contendo em cada linha: nome do diretor, nome do principal filme.

Outros materiais