SlideShare uma empresa Scribd logo
1 de 41
UNIDADE 4
Linguagem de Programação II
Ciência da Computação
Escopo de Declarações
• Entidades Java:
• Classes, métodos, variáveis e parametros
• Declarações introduzem nomes que podem ser
utilizados para referenciar essas entidades;
• O escopo de uma declaração é a parte do
programa que pode referenciar a entidade
declarada pelo seu nome;
Escopo de Declarações
• O escopo de uma declaração de parâmetro é o
corpo do método em que a declaração aparece
• O escopo de uma declaração de variável local vai
do ponto em que a declaração aparece até o final
desse bloco
• O escopo de uma declaração de variável local que
aparece na inicialização do cabeçalho de uma
instrução FOR é o corpo da instrução FOR com as
outras expressões do cabeçalho
Escopo de Declarações
• O escopo de um método ou campo de uma classe é o
corpo inteiro dessa classe
• Qualquer bloco pode conter declarações de variáveis

• SOMBREAMENTO: quando um parametro ou uma
variável local em um método tiver o mesmo nome de
um campo, então o campo permanece OCULTO até
que o bloco termine a execução
• EXEMPLO NO NETBEANS
Escopo de Classe
• Os modificadores de acesso PUBLIC e PRIVATE
controlam o acesso ás variáveis e métodos de uma
classe

• MÉTODOS PUBLIC: apresentam aos clientes da
classe uma visualização dos serviços que a classe
fornece
• Os clientes da classe não precisam se preocupar
com a maneira como a classe realiza as tarefas
Escopo de Classe
• VARIÁVEIS E MÉTODOS PRIVATE: não permanecem
diretamente acessíveis aos clientes da classe. Os
detalhes de implementação da classe ficam
ocultos.
REFERÊNCIA THIS
• A palavra reservada THIS permite que cada objeto
faça uma referencia a si próprio.
• Quando um método NÃO-STATIC é chamado por
um objeto particular, o corpo do método utilizada
implicitamente a palavra-chave THIS para
referenciar as variáveis de instância do objeto e
outros métodos.
• Evite nomes de parametros ou variaveis local nos
métodos que conflitem com nomes de campos
REFERÊNCIA THIS
• THIS também pode ser utilizado de forma explicita
no corpo de um método NÃO-STATIC.
• Frequentemente é um erro de lógica quando um
método contém ump arametro ou variavel local
com o mesmo nome de um campo da classe

• Utilize a referencia THIS se desejar acessar o
campo da classe, caso contrário, o parametro ou
variavel local do método será referenciado
SOBRECARGA DE
CONSTRUTORES
• Funciona como os métodos sobrecarregados,
entretanto, é importante lembrar que:
• CONSTRUTORES não possuem tipo
• Construtores não possuem retorno
• Podemos ter vários construtores em uma classe
desde que eles tenham números de parâmetros
diferentes
• Construtor sem argumentos: é o construtor padrão
da classe
GET E SET
• Métodos SET são
MODIFICADORES

chamados

de

métodos

• Métodos GET são chamados de métodos de acesso
ou de consulta
• Com SET e GET é possível manipular campos
privados de uma classe, entretanto, o acesso é
restrito pela maneira como os métodos foram
implementados pelo programador, garantindo a
integridade dos dados.
GET E SET
• GET pode controlar como o cliente acessa a
variável private
• SET pode avaliar cuidadosamente as tentaivas de
modificar o valor da variável a fim de assegurar
que o novo valor é apropriado para esse item de
dados.

• Lembre-se: o programador deve fornecer a
verificação de validade, isso não ocorre de forma
automática!
MÉTODOS PREDICADOS
• São métodos que testam se uma condição é
verdadeira ou falsa.
• DICA: métodos set e get facilitam a depuração do
software quando há problemas na compilação e
execução do mesmo
COMPOSIÇÃO
• É quando uma classe pode ter referencias a
objetos de outras classes como membros
• Também conhecida como RELACIONAMENTO TEM
UM
• É uma forma de reutilização de software
• Uma classe tem referencias a objetos de outras
classes
ENUMERAÇÃO
• Define um conjunto de constantes representadas
como identificadores únicos.
• Os tipos ENUM são tipos por referencia: é possível
referencias um objeto de um tipo enum com uma
referencia

• Uma declaração de um tipo ENUM é declarado
como uma declaração ENUM
ENUMERAÇÃO
• Cada declaração ENUM declara uma classe ENUM com
as restrições seguintes:
• Tipos ENUM são implicitamente FINAL, porque
declaram constantes que nao devem ser modificadas
• Constantes ENUM são implicitamente STATIC

• Qualquer tentativa de criar um objeto de um tipo
ENUM com um operador NEW resulta em um erro de
compilação
ENUMERAÇÃO
• As constantes ENUM podem ser utilizadas em
qualquer lugar em que constantes podem ser
utilizadas (switch/case, for, etc)

• MÉTODO VALUES: é um método STATIC que
retorna um ARRAY das constantes de ENUM na
ordem em que elas foram declaradas
• MÉTODO RANGE: exibe o intervalo das constantes
do ENUM
Coleta de Lixo e o Método
Finalize
• RARAMENTE UTILIZADO!!!!!!!!!
• Toda classe JAVA contém métodos da classe
OBJECT (pacote.java.lang)
• Você NÃO DEVE
FINALIZE!!!!!!!

UTILIZAR

o

MÉTODO

• A JVM realiza coleta de lixo automatica para
reivindicar a memória ocupada por objetos que
não estão mais em uso
Coleta de Lixo e o Método
Finalize
• Todo objeto criado utiliza recursos do sistema
computacional, particularmente a memória.
• É necessário devolver ao sistema os recursos
quando eles não estão mais em uso.
• Exemplo: um aplicativo abre um arquivo no disco
para modificar seu conteúdo. Se o aplicativo não
fechar o arquivo, nenhum outro aplicativo poderá
usar o arquivo até que ele seja fechado
Coleta de Lixo e o Método
Finalize
• O MÉTODO FINALIZE é chamado pelo COLETOR DE
LIXO para faze a limpeza de terminação sobre um
objeto um pouco antes de o coletor de lixo
reivindicar a memória do objeto
• O MÉTODO FINALIZE não recebe parâmetros e tem
o tipo de retorno VOID
• O COLETOR DE LIXO nunca pode executar antes de
um programa terminar
Coleta de Lixo e o Método
Finalize
• A razão pela qual programadores NÃO DEVEM usar
o MÉTODO FINALIZE é que não se sabe quando o
método finalize será chamado.

• Não há garantias de que o coletor de lixo executrar
em uma data/hora específica.
• Muitas classes JAVA fornecem métodos para
liberação de recursos.
Relembrando: STATIC
• Estático, parado, constante
• Quando definimos uma classe e criamos vários
objetos dela, já sabemos que cada objeto será uma
cópia fiel da classe, porém com suas próprias
variáveis e métodos em lugares distintos da
memória.
Relembrando: STATIC
• Quando definimos variáveis com a palavra static
em uma classe ela terá um comportamento
especial: ela será a mesma para todos os objetos
daquela classe.
• Não haverá um tipo dela em cada objeto. Todos os
objetos, ao acessarem e modificarem essa variável,
acessarão a mesma variável, o mesmo espaço da
memória, e a mudança poderá ser vista em todos
os objetos.
Relembrando: STATIC
• Quando usar variáveis static em Java?????
• Quando você quiser ter um controle sobre os
objetos ou quando todos os objetos devem
partilhar uma informação
• Evitar ter que fazer Composição ou chamar
métodos de outros objetos
MEMBROS DA CLASSE STATIC
• Um campo STATIC é utilizado no caso em que
apenas UMA CÓPIA de uma variável particular
deve ser compartilhada por todos os objetos de
uma classe
• Também chamado de VARIÁVEL DE CLASSE

• Uma variável STATIC representa INFORMAÇÕES DE
ESCOPO DE CLASSE (todos os objetos
compartilham os mesmos dados)
MEMBROS DA CLASSE STATIC
• Portanto, UTILIZE uma variável static quando todos
os objetos de uma classe precisarem utilizar a
mesma cópia da variável

• Variáveis estáticas tem escopo de classe
• Membros PUBLIC STATIC podem ser acessados por
meio de uma referencia a qualquer objeto da
classe
MEMBROS DA CLASSE STATIC
• Membros PUBLIC STATIC podem ser acessados
qualificando o nome de membro com o nome de
classe e um ponto.

• Uma CLASSE de membros da classe PRIVATE STATIC
pode ser acessada somente por métodos da classe.
• Variáveis e métodos de classe estática existem e
podem ser utilizados, mesmo que nenhum objeto
dessa classe tiver sido instanciado
MEMBROS DA CLASSE STATIC
• Para acessar um MEMBRO PRIVATE STATIC quando
nenhum objeto da classe existe, um MÉTODO
PRIVATE STATIC deve ser fornecido e o método
deve ser chamado qualificando seu nome com o
nome da classe e um ponto.
• EXEMPLO NO NETBEANS
• (8.12 E 8.13)
MEMBROS DA CLASSE STATIC
• Objetos STRINGS originais em Java são imutáveis:
eles não podem ser modificados depois de criados!
• Quando concatenamos STRINGS na verdade
estamos criando um novo objeto STRING.
• Dica: ter muitas referências a um objeto STRING é
seguro!!!
MEMBROS DA CLASSE STATIC
• MÉTODO STATIC GC:
• Classe java.lang

• Indica que o coletor de lixo deve tentar fazer o
melhor que puder para reivindicar os objetos que
são elegíveis para a coleta de lixo
• Isso não quer dizer que tudo será coletado!!!!
MEMBROS DA CLASSE STATIC
• REFORÇANDO: A JVM não garante quando o
coletor de lixo será executado
• IMPORTANTE: um método declarado STATIC não
pode acessar membros de clsse NÃO-STATIC,
porque um método STATIC pode ser chamado
mesmo quando nenhum objeto da classe foi
instanciado.
MEMBROS DA CLASSE STATIC
• A referencia THIS não pode ser utilizada em um
MÉTODO STATIC pela mesma razão
• A referencia THIS deve referenciar um objeto
específico da classe
• Quando um método STATIC é chamado, talvez não
haja nenhum objeto da sua classe na memória.
• A referencia THIS é exigida para permitir que um
método de uma classe acesse outros membros NÃOSTATIC da mesma classe
IMPORT STATIC
• Permite que os programadores referenciem
membros STATIC importados como se fossem
declarados na classe que os utiliza

• O nome da classe e o ponto não são necessários
para utilizar um membro static importado
IMPORT STATIC
• Duas formas:
• Import static simples: importa um membro static
particular.
Exemplo:
import
static
nomeDoPacote.nomeDaClasse.nomeDoMembro
• Import static por demanda: importa todos os
membros static de uma classe. Exemplo: import
static nomeDoPacote.nomeDaClasse.*;
• Exemplo no netbeans
VARIÁVEIS DE INSTÂNCIA
FINAL
• PRINCÍPIO DO MENOR PRIVILÉGIO: deve ser concedido
ao código somente a quantidade de privilégio e acesso
que o código precisa para realizar sua tarefa
designada, e não mais que isso.
• FINAL: especifica que uma variavel não é modificável,
isto é, uma constante. Qualquer tentativa de modificála é um erro
• Não é necessário inicializar as variáveis final. Elas
podem ser inicializadas em cada construtor.
• Exemplo no netbeans
Reutilização de software
• Quando um programa JAVA executa em um
computador, é trabalho da JVM traduzir os
comandos JAVA em comandos que o computador
local possa entender.
• Fazer uso das APIs

• RAD: desenvolvimento rapido de aplicações ou
rapid applications development
Abstração de dados e
encapsulamento
• Ocultamento de informações: quando classes
ocultam detalhes de implementação dos seus
clientes.

• ABSTRAÇÃO DE DADOS: um cliente de uma classe
não precisa se preocupar com a forma com que
aquela classe foi implementada. O cliente se
preocupa apenas com a funcionalidade que a
classe lhe oferece, não com o modo com que essa
funcionalidade foi implementada.
Abstração de dados e
encapsulamento
• ADT: abstract data type ou tipos de dados
abstratos
• INT: é uma representação abstrata de um número
inteiro
• ESTOURO ARITMÉTICO: quando um valor muito
grande é gerado e não cabe em uma variável do
tipo INT, já que esta é limitada em tamanho de
bytes
Abstração de dados e
encapsulamento
• ADT:
• Captura uma representação dos dados
• Captura as operações que podem ser realizadas
nesses dados
• O programador java não pode alterar a base da
linguagem por conta própria, mas ele pode
estender via novos tipos, pode criar tipos por meio
de novas classes
Abstração de dados e
encapsulamento
• Exemplos no netbeans
• Pacotes faciliam a reutilização de sotware
permitindo que programas importem classes de
outros pacotes
• Pacotes fornecem uma convenção para nomes de
classes, ajudando a evitar conflitos
Acesso de pacote
• É quando nenhum modificador de acesso é
especificado para um método ou variável quando esse
método ou variável é declarado em uma classe
• MODIFICADORES DE ACESSO: public, private ou
protected
• Importante: se um programa utilizar multiplas classe
no mesmo pacote, essas classes poderão acessar
diretamente os membros de acesso de pacote de
outras classes por meio de referências a objetos das
classes apropriadas.
Acesso de pacote
• Exemplos no netbeans
• EXERCÍCIOS

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
04 api javadoc
04   api javadoc04   api javadoc
04 api javadoc
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
 
Sincronização - Glêdson Elias
Sincronização - Glêdson EliasSincronização - Glêdson Elias
Sincronização - Glêdson Elias
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 

Destaque (6)

Square One All Practice Capability 2015 BLANK
Square One All Practice Capability 2015 BLANKSquare One All Practice Capability 2015 BLANK
Square One All Practice Capability 2015 BLANK
 
Vetores
VetoresVetores
Vetores
 
Poo
PooPoo
Poo
 
Matrizes
MatrizesMatrizes
Matrizes
 
Virus09
Virus09Virus09
Virus09
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 

Semelhante a Pacotes (20)

JAVA - Pacotes
JAVA - PacotesJAVA - Pacotes
JAVA - Pacotes
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
08 modificadores static
08   modificadores static08   modificadores static
08 modificadores static
 
JSP: Etiquetas
JSP: EtiquetasJSP: Etiquetas
JSP: Etiquetas
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 
Java & orientação a objetos
Java & orientação a objetosJava & orientação a objetos
Java & orientação a objetos
 
Refatorações
RefatoraçõesRefatorações
Refatorações
 
Curso C# - Métodos e escopo
Curso C# - Métodos e escopoCurso C# - Métodos e escopo
Curso C# - Métodos e escopo
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 
Interfaces
InterfacesInterfaces
Interfaces
 
Interfaces
InterfacesInterfaces
Interfaces
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
 
Aula 1 5
Aula 1 5Aula 1 5
Aula 1 5
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
SCJP
SCJPSCJP
SCJP
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Pacotes

  • 1. UNIDADE 4 Linguagem de Programação II Ciência da Computação
  • 2. Escopo de Declarações • Entidades Java: • Classes, métodos, variáveis e parametros • Declarações introduzem nomes que podem ser utilizados para referenciar essas entidades; • O escopo de uma declaração é a parte do programa que pode referenciar a entidade declarada pelo seu nome;
  • 3. Escopo de Declarações • O escopo de uma declaração de parâmetro é o corpo do método em que a declaração aparece • O escopo de uma declaração de variável local vai do ponto em que a declaração aparece até o final desse bloco • O escopo de uma declaração de variável local que aparece na inicialização do cabeçalho de uma instrução FOR é o corpo da instrução FOR com as outras expressões do cabeçalho
  • 4. Escopo de Declarações • O escopo de um método ou campo de uma classe é o corpo inteiro dessa classe • Qualquer bloco pode conter declarações de variáveis • SOMBREAMENTO: quando um parametro ou uma variável local em um método tiver o mesmo nome de um campo, então o campo permanece OCULTO até que o bloco termine a execução • EXEMPLO NO NETBEANS
  • 5. Escopo de Classe • Os modificadores de acesso PUBLIC e PRIVATE controlam o acesso ás variáveis e métodos de uma classe • MÉTODOS PUBLIC: apresentam aos clientes da classe uma visualização dos serviços que a classe fornece • Os clientes da classe não precisam se preocupar com a maneira como a classe realiza as tarefas
  • 6. Escopo de Classe • VARIÁVEIS E MÉTODOS PRIVATE: não permanecem diretamente acessíveis aos clientes da classe. Os detalhes de implementação da classe ficam ocultos.
  • 7. REFERÊNCIA THIS • A palavra reservada THIS permite que cada objeto faça uma referencia a si próprio. • Quando um método NÃO-STATIC é chamado por um objeto particular, o corpo do método utilizada implicitamente a palavra-chave THIS para referenciar as variáveis de instância do objeto e outros métodos. • Evite nomes de parametros ou variaveis local nos métodos que conflitem com nomes de campos
  • 8. REFERÊNCIA THIS • THIS também pode ser utilizado de forma explicita no corpo de um método NÃO-STATIC. • Frequentemente é um erro de lógica quando um método contém ump arametro ou variavel local com o mesmo nome de um campo da classe • Utilize a referencia THIS se desejar acessar o campo da classe, caso contrário, o parametro ou variavel local do método será referenciado
  • 9. SOBRECARGA DE CONSTRUTORES • Funciona como os métodos sobrecarregados, entretanto, é importante lembrar que: • CONSTRUTORES não possuem tipo • Construtores não possuem retorno • Podemos ter vários construtores em uma classe desde que eles tenham números de parâmetros diferentes • Construtor sem argumentos: é o construtor padrão da classe
  • 10. GET E SET • Métodos SET são MODIFICADORES chamados de métodos • Métodos GET são chamados de métodos de acesso ou de consulta • Com SET e GET é possível manipular campos privados de uma classe, entretanto, o acesso é restrito pela maneira como os métodos foram implementados pelo programador, garantindo a integridade dos dados.
  • 11. GET E SET • GET pode controlar como o cliente acessa a variável private • SET pode avaliar cuidadosamente as tentaivas de modificar o valor da variável a fim de assegurar que o novo valor é apropriado para esse item de dados. • Lembre-se: o programador deve fornecer a verificação de validade, isso não ocorre de forma automática!
  • 12. MÉTODOS PREDICADOS • São métodos que testam se uma condição é verdadeira ou falsa. • DICA: métodos set e get facilitam a depuração do software quando há problemas na compilação e execução do mesmo
  • 13. COMPOSIÇÃO • É quando uma classe pode ter referencias a objetos de outras classes como membros • Também conhecida como RELACIONAMENTO TEM UM • É uma forma de reutilização de software • Uma classe tem referencias a objetos de outras classes
  • 14. ENUMERAÇÃO • Define um conjunto de constantes representadas como identificadores únicos. • Os tipos ENUM são tipos por referencia: é possível referencias um objeto de um tipo enum com uma referencia • Uma declaração de um tipo ENUM é declarado como uma declaração ENUM
  • 15. ENUMERAÇÃO • Cada declaração ENUM declara uma classe ENUM com as restrições seguintes: • Tipos ENUM são implicitamente FINAL, porque declaram constantes que nao devem ser modificadas • Constantes ENUM são implicitamente STATIC • Qualquer tentativa de criar um objeto de um tipo ENUM com um operador NEW resulta em um erro de compilação
  • 16. ENUMERAÇÃO • As constantes ENUM podem ser utilizadas em qualquer lugar em que constantes podem ser utilizadas (switch/case, for, etc) • MÉTODO VALUES: é um método STATIC que retorna um ARRAY das constantes de ENUM na ordem em que elas foram declaradas • MÉTODO RANGE: exibe o intervalo das constantes do ENUM
  • 17. Coleta de Lixo e o Método Finalize • RARAMENTE UTILIZADO!!!!!!!!! • Toda classe JAVA contém métodos da classe OBJECT (pacote.java.lang) • Você NÃO DEVE FINALIZE!!!!!!! UTILIZAR o MÉTODO • A JVM realiza coleta de lixo automatica para reivindicar a memória ocupada por objetos que não estão mais em uso
  • 18. Coleta de Lixo e o Método Finalize • Todo objeto criado utiliza recursos do sistema computacional, particularmente a memória. • É necessário devolver ao sistema os recursos quando eles não estão mais em uso. • Exemplo: um aplicativo abre um arquivo no disco para modificar seu conteúdo. Se o aplicativo não fechar o arquivo, nenhum outro aplicativo poderá usar o arquivo até que ele seja fechado
  • 19. Coleta de Lixo e o Método Finalize • O MÉTODO FINALIZE é chamado pelo COLETOR DE LIXO para faze a limpeza de terminação sobre um objeto um pouco antes de o coletor de lixo reivindicar a memória do objeto • O MÉTODO FINALIZE não recebe parâmetros e tem o tipo de retorno VOID • O COLETOR DE LIXO nunca pode executar antes de um programa terminar
  • 20. Coleta de Lixo e o Método Finalize • A razão pela qual programadores NÃO DEVEM usar o MÉTODO FINALIZE é que não se sabe quando o método finalize será chamado. • Não há garantias de que o coletor de lixo executrar em uma data/hora específica. • Muitas classes JAVA fornecem métodos para liberação de recursos.
  • 21. Relembrando: STATIC • Estático, parado, constante • Quando definimos uma classe e criamos vários objetos dela, já sabemos que cada objeto será uma cópia fiel da classe, porém com suas próprias variáveis e métodos em lugares distintos da memória.
  • 22. Relembrando: STATIC • Quando definimos variáveis com a palavra static em uma classe ela terá um comportamento especial: ela será a mesma para todos os objetos daquela classe. • Não haverá um tipo dela em cada objeto. Todos os objetos, ao acessarem e modificarem essa variável, acessarão a mesma variável, o mesmo espaço da memória, e a mudança poderá ser vista em todos os objetos.
  • 23. Relembrando: STATIC • Quando usar variáveis static em Java????? • Quando você quiser ter um controle sobre os objetos ou quando todos os objetos devem partilhar uma informação • Evitar ter que fazer Composição ou chamar métodos de outros objetos
  • 24. MEMBROS DA CLASSE STATIC • Um campo STATIC é utilizado no caso em que apenas UMA CÓPIA de uma variável particular deve ser compartilhada por todos os objetos de uma classe • Também chamado de VARIÁVEL DE CLASSE • Uma variável STATIC representa INFORMAÇÕES DE ESCOPO DE CLASSE (todos os objetos compartilham os mesmos dados)
  • 25. MEMBROS DA CLASSE STATIC • Portanto, UTILIZE uma variável static quando todos os objetos de uma classe precisarem utilizar a mesma cópia da variável • Variáveis estáticas tem escopo de classe • Membros PUBLIC STATIC podem ser acessados por meio de uma referencia a qualquer objeto da classe
  • 26. MEMBROS DA CLASSE STATIC • Membros PUBLIC STATIC podem ser acessados qualificando o nome de membro com o nome de classe e um ponto. • Uma CLASSE de membros da classe PRIVATE STATIC pode ser acessada somente por métodos da classe. • Variáveis e métodos de classe estática existem e podem ser utilizados, mesmo que nenhum objeto dessa classe tiver sido instanciado
  • 27. MEMBROS DA CLASSE STATIC • Para acessar um MEMBRO PRIVATE STATIC quando nenhum objeto da classe existe, um MÉTODO PRIVATE STATIC deve ser fornecido e o método deve ser chamado qualificando seu nome com o nome da classe e um ponto. • EXEMPLO NO NETBEANS • (8.12 E 8.13)
  • 28. MEMBROS DA CLASSE STATIC • Objetos STRINGS originais em Java são imutáveis: eles não podem ser modificados depois de criados! • Quando concatenamos STRINGS na verdade estamos criando um novo objeto STRING. • Dica: ter muitas referências a um objeto STRING é seguro!!!
  • 29. MEMBROS DA CLASSE STATIC • MÉTODO STATIC GC: • Classe java.lang • Indica que o coletor de lixo deve tentar fazer o melhor que puder para reivindicar os objetos que são elegíveis para a coleta de lixo • Isso não quer dizer que tudo será coletado!!!!
  • 30. MEMBROS DA CLASSE STATIC • REFORÇANDO: A JVM não garante quando o coletor de lixo será executado • IMPORTANTE: um método declarado STATIC não pode acessar membros de clsse NÃO-STATIC, porque um método STATIC pode ser chamado mesmo quando nenhum objeto da classe foi instanciado.
  • 31. MEMBROS DA CLASSE STATIC • A referencia THIS não pode ser utilizada em um MÉTODO STATIC pela mesma razão • A referencia THIS deve referenciar um objeto específico da classe • Quando um método STATIC é chamado, talvez não haja nenhum objeto da sua classe na memória. • A referencia THIS é exigida para permitir que um método de uma classe acesse outros membros NÃOSTATIC da mesma classe
  • 32. IMPORT STATIC • Permite que os programadores referenciem membros STATIC importados como se fossem declarados na classe que os utiliza • O nome da classe e o ponto não são necessários para utilizar um membro static importado
  • 33. IMPORT STATIC • Duas formas: • Import static simples: importa um membro static particular. Exemplo: import static nomeDoPacote.nomeDaClasse.nomeDoMembro • Import static por demanda: importa todos os membros static de uma classe. Exemplo: import static nomeDoPacote.nomeDaClasse.*; • Exemplo no netbeans
  • 34. VARIÁVEIS DE INSTÂNCIA FINAL • PRINCÍPIO DO MENOR PRIVILÉGIO: deve ser concedido ao código somente a quantidade de privilégio e acesso que o código precisa para realizar sua tarefa designada, e não mais que isso. • FINAL: especifica que uma variavel não é modificável, isto é, uma constante. Qualquer tentativa de modificála é um erro • Não é necessário inicializar as variáveis final. Elas podem ser inicializadas em cada construtor. • Exemplo no netbeans
  • 35. Reutilização de software • Quando um programa JAVA executa em um computador, é trabalho da JVM traduzir os comandos JAVA em comandos que o computador local possa entender. • Fazer uso das APIs • RAD: desenvolvimento rapido de aplicações ou rapid applications development
  • 36. Abstração de dados e encapsulamento • Ocultamento de informações: quando classes ocultam detalhes de implementação dos seus clientes. • ABSTRAÇÃO DE DADOS: um cliente de uma classe não precisa se preocupar com a forma com que aquela classe foi implementada. O cliente se preocupa apenas com a funcionalidade que a classe lhe oferece, não com o modo com que essa funcionalidade foi implementada.
  • 37. Abstração de dados e encapsulamento • ADT: abstract data type ou tipos de dados abstratos • INT: é uma representação abstrata de um número inteiro • ESTOURO ARITMÉTICO: quando um valor muito grande é gerado e não cabe em uma variável do tipo INT, já que esta é limitada em tamanho de bytes
  • 38. Abstração de dados e encapsulamento • ADT: • Captura uma representação dos dados • Captura as operações que podem ser realizadas nesses dados • O programador java não pode alterar a base da linguagem por conta própria, mas ele pode estender via novos tipos, pode criar tipos por meio de novas classes
  • 39. Abstração de dados e encapsulamento • Exemplos no netbeans • Pacotes faciliam a reutilização de sotware permitindo que programas importem classes de outros pacotes • Pacotes fornecem uma convenção para nomes de classes, ajudando a evitar conflitos
  • 40. Acesso de pacote • É quando nenhum modificador de acesso é especificado para um método ou variável quando esse método ou variável é declarado em uma classe • MODIFICADORES DE ACESSO: public, private ou protected • Importante: se um programa utilizar multiplas classe no mesmo pacote, essas classes poderão acessar diretamente os membros de acesso de pacote de outras classes por meio de referências a objetos das classes apropriadas.
  • 41. Acesso de pacote • Exemplos no netbeans • EXERCÍCIOS