SlideShare uma empresa Scribd logo
1 de 29
Construtores e método finalize
Prof. Artur Todeschini Crestani
Construtores
Construtores
Construtores são utilizados para criar instâncias
de objetos de uma classe sendo sempre
utilizados com a palavra reservada new.
Construtores
Todo construtor tem sempre o mesmo nome da
classe.
Sintaxe:
<nomeClasse> <nomeVariavel> = new <nomeClasse>();
Construtores
Toda classe tem, pelo menos um construtor.
Se na classe que você fizer você não declarar um
construtor o compilador irá adicionar um.
Chamamos esse construtor colocado pelo
compilador de (“construtor default”).
Exemplo: Curso.java
Vejamos o exemplo da classe Curso, em que não
foi declarado explicitamente nenhum construtor.
Exemplo: TestaCurso.java
• Note que não foi declarado explicitamente
nenhum construtor na classe Curso, no entanto,
foi possível utilizá-lo na classe TestaCurso. Isto
de deve a adição implícita do construtor default na
classe Curso.
• Isto pode ser confirmado com o utilitário javap,
que é distribuído juntamente com a JDK.
• No mesmo diretório do arquivo Curso.class
devemos executar a seguinte linha devemos
executar na linha de comando: javap Curso
Construtor padrão uso do javap
Construtor padrão adicionado pelo compilador
Construtores
Certo o compilador colocou mesmo esse tal de
construtor. Ele se parece muito com um método,
só não tem o retorno!
Declarando construtores
• Ao invés de instanciar um objeto de uma
classe e depois atribuir valores para seus
atributos, podemos criar construtores na
classe para que um objeto receba no
momento da instanciação um conjunto de
valores de inicialização.
• Sintaxe básica para declaração de construtores
<*> NomeDaClasse (ZERO ou mais parametros)
* Veremos mais adiante que pode se colocar algo que chamamos
de modificador
Declarando construtores
Construtores são rotinas (métodos) especiais de
inicialização, que devem seguir as seguinte
regras:
– Devem, obrigatoriamente, ter o mesmo nome da
classe em que são definidos;
– Não possuem nenhum valor de retorno (nem
mesmo void).
Declarando construtores
Freqüentemente declaramos construtores com
parâmetros para criarmos “regras” de
inicialização de uma classe, porque em muitas
situações não desejamos que objetos sejam
criados sem valores iniciais.
Declarando construtores
A inicialização dos atributos de uma classe
poderia ser feita por meio de um método. No
entanto, não temos como garantir que o
método será chamado, e tampouco que será
chamado uma única vez.
Declarando construtores
Na classe curso, por exemplo, não seria mais
interessante termos objetos criados sem nome,
descrição, código e duração do curso. Para isto,
vamos substituir o método inicializaCurso
por um construtor, conforme o exemplo a seguir:
Curso(String nome, String desc, String codigo, int
argaHoraria){
setNome(nome);
setDescricao(descricao);
setCodigo(codigo);
setCargaHoraria(cargaHoraria);
}
Nome da classe, sem retorno
Declarando construtores
public class TestaCurso {
public static void main(String[] args) {
String nome = “Sup. Tec. em Análise e Desenv. de Sistemas”;
String desc = “Aprender Orientação a Objetos";
String codigo = “POO";
int cargaHoraria = 200;
//Chamada ao construtor sem parametros da classe Curso
Curso c = new Curso();
c.inicializaCurso(nome, desc, codigo, cargaHoraria);
c.imprime();
}
}
Voltado a classe TestaCurso observe que há um erro de compilação
Declarando construtores
• Após recopilarmos a classe Curso, se
tentarmos compilar a classe TestaCurso
teremos os seguintes erros de:
Declarando construtores
public class TestaCurso {
public static void main(String[] args) {
String nome = “Sup. Tec. em Análise e Desenv. de Sistemas”;
String desc = “Aprender Orientação a Objetos";
String codigo = “POO";
int cargaHoraria = 200;
//Chamada construtor com parametros da classe Curso
Curso c = new Curso(nome, desc, codigo, cargaHoraria);
c.imprime();
}
}
Vamos ajustar a classe TestaCurso para que ela possa compilar
Declarando construtores
• Após fazermos os ajustes na classe Curso, se
tentarmos compilar a classe TestaCurso
vamos conseguir complicar e executa-la.
Declarando construtores
• O primeiro erro acontece porque não temos
mais o construtor default; assim, sempre que
declaramos um construtor o compilador não
adicionará o construtor default.
• O segundo erro é bastante simples, visto que
não temos mais o método
inicializaCurso.
Declarando construtores
• Para eliminarmos estes erros de compilação é
preciso incluir um construtor válido. No caso, o único
construtor válido é o construtor que recebe os
parâmetros “(String, String, String,
int)” referentes ao conjunto de atributos nome,
descrição, código e carga horária do curso.
//Chamada ao construtor com parametros de inicializacao da
classe Curso
Curso c1 = new Curso(“Analise”, “POO”, “2013/N2”, 200);
c1.imprime();
Declarando construtores
• Lembrando que construtores são utilizados
sempre em combinação com a palavra
reservada new.
Declarando construtores
• Erros comuns:
– Declarar retorno void invés de sem retorno;
– Ordem invertida dos parâmetros ou com
parâmetros a mais ou a menos
Sobrecarga de construtores
• Podemos definir mais do que um construtores
seguindo as mesmas regras de sobrecarga de
métodos.
Curso(String nome, String descricao, String codigo, int
cargaHoraria){
setNome(nome);
setDescricao(descricao);
setCodigo(codigo);
setCargaHoraria(cargaHoraria);
}
Curso(String nome, String codigo, int cargaHoraria){
setNome(nome);
setCodigo(codigo);
setCargaHoraria(cargaHoraria);
}
Utilização do objeto implícito this
Curso(String nome, String descricao, String codigo, int
cargaHoraria){
this(nome, codigo, cargaHoraria);
this.setDescricao(descricao);
}
Curso(String nome, String codigo, int cargaHoraria){
setNome(nome);
setCodigo(codigo);
setCargaHoraria(cargaHoraria);
}
Destruir objetos
Remoção de objetos e Método finalize
• Assim como temos construtores com instruções de
inicialização de objetos, em algumas situações pode ser
necessário executar algumas instruções em um objetos
antes que seja retirado da memória.
• Em outras linguagens OO assim como C++ esse método
é denominado destrutor e invocado explicitamente o
destrutor do objeto marcando o fim do seu ciclo de vida.
• Em Java não temos destrutores, pois não podemos
forçar a remoção de um objeto da memória. Na verdade
isso é uma facilidade e não uma limitação.
Método finalize
• A JVM assume a responsabilidade de remover os
objetos indesejados da memória por meio do
GarbageCollector.
• Basta um objeto não estar sendo referenciado por
nenhuma variável do tipo reference e por nenhum
outro objeto para que se torne um alvo para o
GarbageCollector.
• Em Java para descartar o objeto o programador deve
no máximo atribuir null às variáveis reference que
apontam para o objeto.
Laboratório
1. Analise o construtor da classe Agencia.
2. Substitua o método inicializaCliente na classe Cliente
por um construtor que receba os mesmos parâmetros que o
método.
3. Substitua os métodos inicializaConta na classe Conta por
construtores que recebam os mesmos parâmetros que os
métodos.
Dica: lembre-se que é possível reutilizar o construtor que recebe
menos parâmetros no construtor que recebe mais parâmetros (ou
vice-versa) por meio do uso do this()
4. Siga as instruções encontradas na classe TestaConstrutores.
Compile e execute a classe.

Mais conteúdo relacionado

Mais procurados

Java - Aula 3 - Construtores
Java - Aula 3 - ConstrutoresJava - Aula 3 - Construtores
Java - Aula 3 - ConstrutoresMoises Omena
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoArthur Emanuel
 
Construtores em Java
Construtores em JavaConstrutores em Java
Construtores em JavaEderson Lima
 
Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVAMarcio Palheta
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Natanael Fonseca
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)jose-junior89
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classesfeiosanelma
 
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosJava básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosProfessor Samuel Ribeiro
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 

Mais procurados (19)

Java - Aula 3 - Construtores
Java - Aula 3 - ConstrutoresJava - Aula 3 - Construtores
Java - Aula 3 - Construtores
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 
Construtores em Java
Construtores em JavaConstrutores em Java
Construtores em Java
 
Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVA
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classes
 
Java7
Java7Java7
Java7
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Java6
Java6Java6
Java6
 
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosJava básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetos
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Java 06
Java 06Java 06
Java 06
 

Semelhante a 07 construtores e finalize

Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Professor Samuel Ribeiro
 
Construtor em Java
Construtor em JavaConstrutor em Java
Construtor em JavaEderson Lima
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#biandamakengo08
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Saulo Arruda
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01John Godoi
 
Java & orientação a objetos
Java & orientação a objetosJava & orientação a objetos
Java & orientação a objetosMateus Parente
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaCristiano Almeida
 
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 ClasseRegis Magalhães
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 

Semelhante a 07 construtores e finalize (20)

Construtores Java
Construtores JavaConstrutores Java
Construtores Java
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
03 fundamentos java
03 fundamentos java03 fundamentos java
03 fundamentos java
 
Construtor em Java
Construtor em JavaConstrutor em Java
Construtor em Java
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
08 modificadores static
08   modificadores static08   modificadores static
08 modificadores static
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Guia Rápido Java
Guia Rápido JavaGuia Rápido Java
Guia Rápido Java
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Java & orientação a objetos
Java & orientação a objetosJava & orientação a objetos
Java & orientação a objetos
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
10 heranca
10   heranca10   heranca
10 heranca
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
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
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 

Mais de Artur Todeschini

Mais de Artur Todeschini (8)

Interface
InterfaceInterface
Interface
 
Final e aastract
Final e aastractFinal e aastract
Final e aastract
 
05 classes utilitarias
05   classes utilitarias05   classes utilitarias
05 classes utilitarias
 
04 api javadoc
04   api javadoc04   api javadoc
04 api javadoc
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
01 introducao ao java
01   introducao ao java01   introducao ao java
01 introducao ao java
 
SISTEMAS DE GESTÃO DO CONHECIMENTO EM NUVEM: A HORA DAS PEQUENAS E MÉDIAS E...
SISTEMAS DE GESTÃO DO CONHECIMENTO EM NUVEM: A HORA DAS PEQUENAS E MÉDIAS E...SISTEMAS DE GESTÃO DO CONHECIMENTO EM NUVEM: A HORA DAS PEQUENAS E MÉDIAS E...
SISTEMAS DE GESTÃO DO CONHECIMENTO EM NUVEM: A HORA DAS PEQUENAS E MÉDIAS E...
 
SGT_ERP_INTEGRACOES_DSS
SGT_ERP_INTEGRACOES_DSSSGT_ERP_INTEGRACOES_DSS
SGT_ERP_INTEGRACOES_DSS
 

Último

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxDianaSheila2
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 

Último (20)

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptx
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 

07 construtores e finalize

  • 1.
  • 2. Construtores e método finalize Prof. Artur Todeschini Crestani
  • 4. Construtores Construtores são utilizados para criar instâncias de objetos de uma classe sendo sempre utilizados com a palavra reservada new.
  • 5. Construtores Todo construtor tem sempre o mesmo nome da classe. Sintaxe: <nomeClasse> <nomeVariavel> = new <nomeClasse>();
  • 6. Construtores Toda classe tem, pelo menos um construtor. Se na classe que você fizer você não declarar um construtor o compilador irá adicionar um. Chamamos esse construtor colocado pelo compilador de (“construtor default”).
  • 7. Exemplo: Curso.java Vejamos o exemplo da classe Curso, em que não foi declarado explicitamente nenhum construtor.
  • 8. Exemplo: TestaCurso.java • Note que não foi declarado explicitamente nenhum construtor na classe Curso, no entanto, foi possível utilizá-lo na classe TestaCurso. Isto de deve a adição implícita do construtor default na classe Curso. • Isto pode ser confirmado com o utilitário javap, que é distribuído juntamente com a JDK. • No mesmo diretório do arquivo Curso.class devemos executar a seguinte linha devemos executar na linha de comando: javap Curso
  • 9. Construtor padrão uso do javap Construtor padrão adicionado pelo compilador
  • 10. Construtores Certo o compilador colocou mesmo esse tal de construtor. Ele se parece muito com um método, só não tem o retorno!
  • 11. Declarando construtores • Ao invés de instanciar um objeto de uma classe e depois atribuir valores para seus atributos, podemos criar construtores na classe para que um objeto receba no momento da instanciação um conjunto de valores de inicialização. • Sintaxe básica para declaração de construtores <*> NomeDaClasse (ZERO ou mais parametros) * Veremos mais adiante que pode se colocar algo que chamamos de modificador
  • 12. Declarando construtores Construtores são rotinas (métodos) especiais de inicialização, que devem seguir as seguinte regras: – Devem, obrigatoriamente, ter o mesmo nome da classe em que são definidos; – Não possuem nenhum valor de retorno (nem mesmo void).
  • 13. Declarando construtores Freqüentemente declaramos construtores com parâmetros para criarmos “regras” de inicialização de uma classe, porque em muitas situações não desejamos que objetos sejam criados sem valores iniciais.
  • 14. Declarando construtores A inicialização dos atributos de uma classe poderia ser feita por meio de um método. No entanto, não temos como garantir que o método será chamado, e tampouco que será chamado uma única vez.
  • 15. Declarando construtores Na classe curso, por exemplo, não seria mais interessante termos objetos criados sem nome, descrição, código e duração do curso. Para isto, vamos substituir o método inicializaCurso por um construtor, conforme o exemplo a seguir: Curso(String nome, String desc, String codigo, int argaHoraria){ setNome(nome); setDescricao(descricao); setCodigo(codigo); setCargaHoraria(cargaHoraria); } Nome da classe, sem retorno
  • 16. Declarando construtores public class TestaCurso { public static void main(String[] args) { String nome = “Sup. Tec. em Análise e Desenv. de Sistemas”; String desc = “Aprender Orientação a Objetos"; String codigo = “POO"; int cargaHoraria = 200; //Chamada ao construtor sem parametros da classe Curso Curso c = new Curso(); c.inicializaCurso(nome, desc, codigo, cargaHoraria); c.imprime(); } } Voltado a classe TestaCurso observe que há um erro de compilação
  • 17. Declarando construtores • Após recopilarmos a classe Curso, se tentarmos compilar a classe TestaCurso teremos os seguintes erros de:
  • 18. Declarando construtores public class TestaCurso { public static void main(String[] args) { String nome = “Sup. Tec. em Análise e Desenv. de Sistemas”; String desc = “Aprender Orientação a Objetos"; String codigo = “POO"; int cargaHoraria = 200; //Chamada construtor com parametros da classe Curso Curso c = new Curso(nome, desc, codigo, cargaHoraria); c.imprime(); } } Vamos ajustar a classe TestaCurso para que ela possa compilar
  • 19. Declarando construtores • Após fazermos os ajustes na classe Curso, se tentarmos compilar a classe TestaCurso vamos conseguir complicar e executa-la.
  • 20. Declarando construtores • O primeiro erro acontece porque não temos mais o construtor default; assim, sempre que declaramos um construtor o compilador não adicionará o construtor default. • O segundo erro é bastante simples, visto que não temos mais o método inicializaCurso.
  • 21. Declarando construtores • Para eliminarmos estes erros de compilação é preciso incluir um construtor válido. No caso, o único construtor válido é o construtor que recebe os parâmetros “(String, String, String, int)” referentes ao conjunto de atributos nome, descrição, código e carga horária do curso. //Chamada ao construtor com parametros de inicializacao da classe Curso Curso c1 = new Curso(“Analise”, “POO”, “2013/N2”, 200); c1.imprime();
  • 22. Declarando construtores • Lembrando que construtores são utilizados sempre em combinação com a palavra reservada new.
  • 23. Declarando construtores • Erros comuns: – Declarar retorno void invés de sem retorno; – Ordem invertida dos parâmetros ou com parâmetros a mais ou a menos
  • 24. Sobrecarga de construtores • Podemos definir mais do que um construtores seguindo as mesmas regras de sobrecarga de métodos. Curso(String nome, String descricao, String codigo, int cargaHoraria){ setNome(nome); setDescricao(descricao); setCodigo(codigo); setCargaHoraria(cargaHoraria); } Curso(String nome, String codigo, int cargaHoraria){ setNome(nome); setCodigo(codigo); setCargaHoraria(cargaHoraria); }
  • 25. Utilização do objeto implícito this Curso(String nome, String descricao, String codigo, int cargaHoraria){ this(nome, codigo, cargaHoraria); this.setDescricao(descricao); } Curso(String nome, String codigo, int cargaHoraria){ setNome(nome); setCodigo(codigo); setCargaHoraria(cargaHoraria); }
  • 27. Remoção de objetos e Método finalize • Assim como temos construtores com instruções de inicialização de objetos, em algumas situações pode ser necessário executar algumas instruções em um objetos antes que seja retirado da memória. • Em outras linguagens OO assim como C++ esse método é denominado destrutor e invocado explicitamente o destrutor do objeto marcando o fim do seu ciclo de vida. • Em Java não temos destrutores, pois não podemos forçar a remoção de um objeto da memória. Na verdade isso é uma facilidade e não uma limitação.
  • 28. Método finalize • A JVM assume a responsabilidade de remover os objetos indesejados da memória por meio do GarbageCollector. • Basta um objeto não estar sendo referenciado por nenhuma variável do tipo reference e por nenhum outro objeto para que se torne um alvo para o GarbageCollector. • Em Java para descartar o objeto o programador deve no máximo atribuir null às variáveis reference que apontam para o objeto.
  • 29. Laboratório 1. Analise o construtor da classe Agencia. 2. Substitua o método inicializaCliente na classe Cliente por um construtor que receba os mesmos parâmetros que o método. 3. Substitua os métodos inicializaConta na classe Conta por construtores que recebam os mesmos parâmetros que os métodos. Dica: lembre-se que é possível reutilizar o construtor que recebe menos parâmetros no construtor que recebe mais parâmetros (ou vice-versa) por meio do uso do this() 4. Siga as instruções encontradas na classe TestaConstrutores. Compile e execute a classe.