lnccwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · complexidade divida‐o...
TRANSCRIPT
![Page 1: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/1.jpg)
POO, em Java, com Eclipse e Netbeans
LNCC
![Page 2: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/2.jpg)
Tópicos da aula
1. Classificação de entidades2. Classes e objetos em Java3. Encapsulamento, campos e métodos4. Getter’s e setter’s5. Construtores
![Page 3: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/3.jpg)
A classificação de entidades
![Page 4: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/4.jpg)
Categorias ‐ katêgoriai
ARISTÓTELES384 a.C. - 322 a.C.
The word "category" (katêgoria) means "predication".First, …Second, …Third, the categories may be seen as kinds of entity, as highest genera or kinds of thing that are. A given thing can be classified under a series of progressively wider genera: Socrates is a human, a mammal, an animal, a living being. The categories are the highest such genera. Each falls under no other genus, and each is completely separate from the others. This distinction is of critical importance to Aristotle's metaphysics.
![Page 5: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/5.jpg)
Reducionismo
Descartes introducedreductionism, the study of the world as an assemblage of physical parts that can be broken apart and analyzed
separately.
[Edward O. Wilson. Consilience. The unity of knowledge. A.A. Knoff. New York.
1998, p. 29]
René Descartes1596 ‐ 1650
![Page 6: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/6.jpg)
Complexidade
Divida‐o em subsistemas mais simples e expresse seu comportamento em termos do
comportamento desses subsistemas e das interações entre eles
![Page 7: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/7.jpg)
Carolus Linnaeus1707‐1778
A sua principal obra, a SystemaNaturae, teve 12 edições durante a sua vida (com a 1.ª edição em 1735).
Nesta obra, a natureza é dividida em três reinos: mineral, vegetal e animal.
Em cada reino usou um sistema hierárquico de cinco categorias: classe, ordem, gênero, espécie e variedade.
![Page 8: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/8.jpg)
Atualmente
![Page 9: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/9.jpg)
Árvore filogenética
![Page 10: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/10.jpg)
O paradigma de orientação a objetos
Um objeto é um modelode uma entidade real
através da abstração de suas características e comportamentos
![Page 11: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/11.jpg)
Exemplo
Lassie
Rex
Simbad
A classe é a dos caninos
Lassie, Simbad e Rexsão instâncias da classe
dos caninos.São objetos .
![Page 12: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/12.jpg)
Classes e objetos em JAVA
![Page 13: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/13.jpg)
Características de uma classe
Campo 1...
Campo N
Método 1...
Método M
Classe A
Nome da classe
Propriedades da classe
Comportamentos da classe
NotaçãoUML
![Page 14: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/14.jpg)
Classes / Objetos e abstração
Classe das cadeiras
nomebelezacabelo
Escrever()Sentar()Namorar()
Mulher
Classe das tintas
![Page 15: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/15.jpg)
Campo 1...
Campo N
Método 1...
Método M
Classe A
Um objeto é uma instância de uma classe
O estado de um objeto é definido pelos valores
de seus atributos
As ações realizáveis por um objeto são descritas pelos
métodos
Classes e objetos
Criado em tempo de execução, por um construtor
De classe ou de instância
Modificar seus atributos ou trocarmensagens com outros objetos
Variáveis de classe ou de instância
![Page 16: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/16.jpg)
Atributosda classe
Modificador de acesso
Construtorda classe
Métodos da classe
Palavra chave para criar a
classeNome da classe
![Page 17: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/17.jpg)
Declaração de classe
modificador
identificador
nome da classe
nome da interface
declaração de campos
class
extends
implements
{ }
,
![Page 18: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/18.jpg)
Nome de classe
identificador
identificador
nome de pacote
.
![Page 19: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/19.jpg)
• Existem quatro tipos diferentes de modificadores acesso em Java: – public (menos restritivos) – protected
– private (mais restritivos)– default
• Os três primeiros modificadores de acesso são explicitamente escritos no código para indicar o tipo de acesso, para o quarto, que é o default, nenhuma palavra‐chave é utilizada.
Modificadores de acesso
![Page 20: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/20.jpg)
• Acesso padrão – Especifica que só classes no mesmo pacote podem ter acesso à classe.
– Nenhuma palavra‐chave para o modificador de acesso default; ele é aplicado na ausência de um modificador de acesso.
Acesso default
![Page 21: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/21.jpg)
• Acesso público – Especifica que membros da classe (variáveis ou métodos) são acessíveis a qualquer classe.
– Qualquer objeto que interage com a classe pode ter acesso público aos membros da classe.
– Palavra‐chave: public
Acesso public
![Page 22: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/22.jpg)
• Acesso protegido– Indica que os membros da classe são acessíveis apenas aos métodos das sub‐classes da classe.
– A subclasse pode ser em diferentes pacotes
– Palavra‐chave: protected
Acesso protected
![Page 23: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/23.jpg)
• Acessibilidade Privada– Especifica que os membros da classe são acessíveis apenas pela classe estão definidos.
– Palavra‐chave: private
Acesso private
![Page 24: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/24.jpg)
Exemplo
Atributo da classe
Palavra‐chave utilizada para criar uma classe
em Java
Nome da classe ‐Identificador único que
descreve a classe
![Page 25: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/25.jpg)
Acesso e visibilidade
Private Default Protected Public
Mesma classe Sim Sim Sim Sim
Outra classe, mesmo pacote
Não Sim Sim Sim
Sub‐classe, outro pacote
Não Não Sim Sim
Fora de sub‐classe, outro pacote
Não Não Não Sim
Visibilidade da classe
Tipo de acesso
![Page 26: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/26.jpg)
Boas Práticas
![Page 27: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/27.jpg)
Encapsulamento,campos e métodos
![Page 28: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/28.jpg)
Encapsulamento
Métodos públicos
Campos públicos
Métodos privados
Campos privados
Desenho deuma classe
segundo a OMG
![Page 29: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/29.jpg)
Tipos de campo
![Page 30: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/30.jpg)
Classe Carro Objeto Carro 1
Objeto Carro 2
Variáveis de
instância
placa KTU 2234 MPV 9860
cor Preto Azul
montadora Fiat Ford
VelocidadeAtual 55Km/h 80Km/hVariáveis
estáticas
Count=2
Métod
os Acelerar
Virar
Freiar
Exemplo
Valores que caracterizam cada objeto
Valores associados à classe
![Page 31: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/31.jpg)
• Forma de declarar uma propriedade (campo) da classe
Declarando propriedades
Partes entre [ ] indicam que são valores opcionais.
![Page 32: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/32.jpg)
Exemplo
Variáveis de instância ‐
caracterizam o objeto
![Page 33: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/33.jpg)
Boas práticas
![Page 34: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/34.jpg)
Exemplo
Usamos a palavra‐chave static, para indicar uma variável estática – uma
variável da classe
![Page 35: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/35.jpg)
Declarando um método
6 modificador 7 6 tipo de retorno 7 6 nome 7 ( 6 valores 7 ) { . . .
}
Um dentre os diversos
modificadores de visibilidade
Qualquer tipo de dado
( inclusive void )
qualquer identificador
válido
nome tipo, nome tipo,
. . . ,nome tipo
![Page 36: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/36.jpg)
Getter’s e setter’s
![Page 37: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/37.jpg)
• Métodos de acesso– Usado para ler valores de variáveis de uma classe.
– Normalmente escritos como:
– Ele também retorna um valor.
Métodos de acesso (Getter’s)
![Page 38: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/38.jpg)
Métodos acesso (Getter’s)
( ) significa que o método não contem parâmetros
O método pode ser chamado por objetos de fora da classe
Tipo de retorno do método
Nome do método
![Page 39: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/39.jpg)
![Page 40: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/40.jpg)
• Métodos modificadores– Usado para escrever ou mudar valores de variáveis de uma classe.
– Normalmente escrito como:
Métodos modificadores (Setter’s)
![Page 41: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/41.jpg)
Métodos modificadores (Setter’s)
Parâmetro formal que será utilizado dentro
método
![Page 42: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/42.jpg)
![Page 43: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/43.jpg)
Também podem ser usadas para retornar valores constantes, em vez de variáveis.
Podem existir diversas
declarações return em um
método.
![Page 44: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/44.jpg)
Métodos static
Chamadas de métodos da classe
Bicicleta
O objeto magrelachamando seus
métodos
![Page 45: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/45.jpg)
Declaração de métodos estáticos
![Page 46: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/46.jpg)
![Page 47: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/47.jpg)
Boas práticas
![Page 48: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/48.jpg)
Construtores
![Page 49: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/49.jpg)
Construtores
Estão no programa para estabelecer o estado inicial
de cada objeto de uma classe
O valor das variáveis que definem os
campos não‐estáticos da classe
![Page 50: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/50.jpg)
Declaração de construtor
modificador
identificador
Lista de parâmetros
( )
bloco de comandos
![Page 51: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/51.jpg)
Características de um construtorTodo construtor
possui o mesmo nome de sua classe
pois:
Não possui valor de retorno
Não pode ser chamado
diretamente
![Page 52: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/52.jpg)
Classes e construtores
Uma classe precisa possuir pelo menos um
construtor
Caso o programador não escreva nenhum construtor
para uma classe, o compilador Java cria, automaticamente,
um construtor padrão para ela
Uma classe pode possuir mais de um
construtor
![Page 53: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/53.jpg)
Objetos da classe Bicicleta
Bicicleta
aromarcacor
virar()freiar()
aro 24marca Caloicor azul
aro 22marca Monarkcor vermelha
![Page 54: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/54.jpg)
Codificando construtores
1
2
3
![Page 55: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/55.jpg)
Crie uma classe Televisao:• Atributos :
– status (on/off);– canal.
• Defina um construtor que inicialize o campo status como off e o campo canal como 11.
• Defina um método ligaDesliga• Se estiver ligado ele desliga e se estiver desligado ele liga.• Defina um método trocaCanal• Recebe troca o canal da tv, pedindo o canal a ser trocado.• Essa televisão só vai até o canal 15, se for um canal inválido permaneça no
mesmo canal.• Defina um método verStatus que irá exibir uma mensagem dizendo se a tv
está ligada ou desligada e se estiver ligada mostrar também o canal em que ela está.
• Defina um método main para testar a classe
Exercício 1
![Page 56: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/56.jpg)
Crie uma classe Termometro:– Atributos: temperatura– Defina um construtor que não receba nenhum parâmetro e
inicialize o campo temperatura com o valor de 15.– Defina um método aquecer.
• A temperatura é alterada de 5 em 5.– Defina um método esfriar.
• A temperatura e alterada de 5 em 5.– Defina um método para retornar o valor de temperatura.– Defina o método main
1. Crie um objeto da classe Termometro.2. Teste o aumento e a baixa da temperatura.
Exercício 2
![Page 57: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/57.jpg)
Crie uma classe Carro:• Atributos:
– cor;– marca;– modelo;– combustível.
• Defina um construtor que receba: cor, marca, modelo, combustível.• Defina um método mostrarCarro, para mostrar os atributos do
carro.• Defina o método main para testar a classe.
1. Criar um objeto a classe Carro.2. Chamar o método mostrarCarro.
Exercício 3
![Page 58: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/58.jpg)
Crie uma classe Livro:• Atributos :
– titulo;– autor– editora– quantidade de páginas.
• Defina métodos que retornem os valores de cada atributo da classe• Defina métodos que alterem os valores q de cada atributo da classe• Defina um método main para testar a classe.
1. Criar um objeto da classe livro.2. Popular o objeto pelos métodos get e set.3. Mostrar o título do livro e o nome do autor.4. Mostrar o título do livro a editora e a quantidade de páginas.5. Alterar a quantidade de páginas.6. Mostrar título do livro,nome do autor e quantidade de páginas.
Exercício 4
![Page 59: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/59.jpg)
Crie uma classe Retangulo:• Atributos:
– altura;– largura.
• Defina um construtor que chame o método “ObterAlturaLargura”.
• Defina um método calcular área (área=altura*largura)• Defina um método para ler altura e largura.• Defina um método main para testar a classe.
1. Criar um objeto da classe Retângulo.2. Chamar o método que calcula a área.
Exercício 5
![Page 60: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/60.jpg)
Crie uma classe Tempo:• Atributos:
– hora;– minutos;– segundos.
• Defina um construtor que receba hora, minuto e segundo.• Defina um método para mostrar a hora no formato hora,
minuto e segundo.• Defina um método para retornar a hora em segundos.• Defina um método main para testar a classe.
1. Criar um objeto da classe Tempo.2. Chamar o método para mostar a hora3. Chamar o método parar mostrar a hora em segundos
Exercício 6
![Page 61: LNCCwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · Complexidade Divida‐o em subsistemas mais simples e expresse ... em três reinos: mineral, vegetal e animal](https://reader030.vdocuments.pub/reader030/viewer/2022013017/5bf3e55209d3f280068c60d6/html5/thumbnails/61.jpg)
Crie uma classe Funcionario:• Atributos:
– nome;– RG;– salário– quantidade de anos que o funcionário está na firma.
• Defina um construtor que receba nome, RG, salário e quantidade de anos.
• Defina um método que calcule e altere o salário.– A cada ano que o funcionário está na firma tem um aumento de 10%
• Defina um método que mostre todos os dados do funcionário.• Defina o método main para testar a classe.
1. Crie três objetos da classe Funcionário2. Mostre os dados dos funcionários.3. Calcule seus salários.4. Mostre os dados dos funcionários.
Exercício 7