Buscar

Aula 03 - Declarando Membros de Classes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Disciplina: Linguagem de Programação II
Prof. MSc. Lucas Gonçalves Nadalete
 Declaração de Classes
 Criação da superclasse
 Criação da subclasse
package esporte;
public class Coletivo{
}
import esporte.Coletivo;
class Futebol extends Coletivo{
public static void main(String[] args) { }
}
 Os métodos e as atributos (variáveis de 
instância não-locais) são conhecidos 
coletivamente como MEMBROS;
 Enquanto uma classe só pode usar 2 dos 4 
níveis de controle de acesso (package-
private/sem modificador e public), os 
membros podem usar:
 public
 protected
 Default/sem modificador (package-private)
 private
 Declaração de membros simples:
String nome;
void executar(){}
 Modificadores de acesso:
 public: acessado de qualquer classe;
 protected: acessado por classes filhas;
 private: acessado dentro da mesma classe;
 Sem Modificador (package-private -> Padrão):
acessado dentro do mesmo pacote.
 O que significa o fato do código em uma 
classe ter acesso a um membro de outra 
classe?
Se a classe A tiver acesso a um 
membro da classe B, significa 
que o membro da classe B está 
visível para a classe A
 Existem duas questões relativas a acesso que 
devem ser entendidas:
 O código de um método em uma classe pode 
acessar um membro de outra classe?
 Uma subclasse pode herdar um membro da sua 
superclasse?
 O código de um método em uma classe pode 
acessar um membro de outra classe?
 Este tipo de acesso ocorre quando um método 
de uma classe tenta acessar um membro de 
outra classe, através do operador ponto (.)
 Uma subclasse pode herdar um membro da 
sua superclasse?
 Este tipo de acesso refere-se a quais membros 
de uma SUPERCLASSE podem ser acessados por 
uma SUBCLASSE por meio de herança;
 Se uma SUBCLASSE herda um membro, é 
exatamente como se a SUBCLASSE tivesse 
declarado o membro nela mesma;
 Uma subclasse pode herdar um membro da 
sua superclasse?
 Quando um membro é declarado public, 
significa que todas as outras classes, 
independente do pacote ao qual pertençam, 
podem acessar o membro em questão
 Assumindo que a própria classe esteja visível
 Perceba que as classes Goo e Sludge estão 
em PACOTES diferentes
 Entretanto, Goo pode invocar o método em 
Sludge sem problemas. Porque??????
 Tanto a classe (Sludge ) quanto o método 
(testIt) estão marcados como public
 Para uma subclasse, se um membro da sua 
superclasse for declarado como public, a 
subclasse herda esse membro
 Neste outro exemplo, a classe Roo declara o 
membro doRootThings() como public
 Se criarmos uma subclasse de Roo, qualquer 
código presente nessa subclasse Roo poderá 
chamar os membros herdados (doRootThings())
 Obs.: o código poderia ter sido escrito como 
this.doRootThings()
 Além de poder invocar o método doRootThings()
para si mesmo, exemplo anterior, o código de 
alguma outra classe poderia chamar doRootThings()
para uma instância de Cloo
 Membros marcados como private não 
podem ser acessados por nenhuma outra 
classe, a não ser aquela na qual o membro 
private foi declarado;
 Obs.: Isso caracteriza o conceito OO 
chamado Encapsulamento;
 Fazendo uma pequena alteração na classe Roo:
 Erro de Compilação: “Método Invisível”, é 
como se o método doRootThings() não existisse
 E se uma subclasse tentasse herdar um 
membro private da sua superclasse?
 Sem modificador (package-private)
 Só pode ser acessado se a classe que o estiver 
acessando pertencer ao mesmo pacote;
 Pode ser acessado (através de herança) por 
uma subclasse, mesmo se a subclasse estiver 
em um pacote diferente;
 Depois que a subclasse de fora do pacote herda o 
membro protected, ele torna-se private para 
qualquer código de fora da subclasse, com 
exceção das subclasses da subclasse
 Muito do controle de acesso se concentra em se 
as duas classes envolvidas estão no mesmo 
pacote ou em pacotes diferentes;
 Se a uma classe não for visível a outra, então 
nenhum dos seus membros será visível, nem 
mesmo se estiverem declarados como public;
 Por outro lado, se a classe estiver visível, observe 
os níveis de acesso nos membros individuais;
Visibilidade PUBLIC PROTECTED DEFAULT
(package-
private)
PRIVATE
A partir da mesma classe Sim Sim Sim Sim
A partir de qualquer classe do 
mesmo pacote
Sim Sim Sim Não
A partir de uma subclasse do 
mesmo pacote
Sim Sim Sim Não
A partir de uma subclasse de 
fora do mesmo pacote
Sim Sim, através da
herança
Não Não
A partir de qualquer classe que
não seja uma subclasse e esteja
fora do pacote
Sim Não Não Não
 Métodos:
 final: nenhuma outro método pode sobrescrever o método
 static: se torna um método da classe e não das instâncias
 abstract: não vai ser implementado na classe corrente, 
somente em um de seus filhos
 Outros que vamos ver mais tarde...
 Atributos:
 final: o valor do atributo não pode ser alterado
▪ private final String nome = ″João″;
 static: só vai ter uma instância/valor do atributo para todas as 
instâncias da classe. Se torna um atributo da classe e não das 
instâncias
 Outros que vamos ver mais tarde...
 Implementar os exemplos referente aos 
membros public e private apresentados em 
aula

Continue navegando