Upload
vannguyet
View
217
Download
0
Embed Size (px)
Citation preview
POO, em Java, com Eclipse e Netbeans
LNCC
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
A classificação de entidades
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.
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
Complexidade
Divida‐o em subsistemas mais simples e expresse seu comportamento em termos do
comportamento desses subsistemas e das interações entre eles
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.
Atualmente
Árvore filogenética
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
Exemplo
Lassie
Rex
Simbad
A classe é a dos caninos
Lassie, Simbad e Rexsão instâncias da classe
dos caninos.São objetos .
Classes e objetos em JAVA
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
Classes / Objetos e abstração
Classe das cadeiras
nomebelezacabelo
Escrever()Sentar()Namorar()
Mulher
Classe das tintas
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
Atributosda classe
Modificador de acesso
Construtorda classe
Métodos da classe
Palavra chave para criar a
classeNome da classe
Declaração de classe
modificador
identificador
nome da classe
nome da interface
declaração de campos
class
extends
implements
{ }
,
Nome de classe
identificador
identificador
nome de pacote
.
• 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
• 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
• 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
• 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
• Acessibilidade Privada– Especifica que os membros da classe são acessíveis apenas pela classe estão definidos.
– Palavra‐chave: private
Acesso private
Exemplo
Atributo da classe
Palavra‐chave utilizada para criar uma classe
em Java
Nome da classe ‐Identificador único que
descreve a classe
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
Boas Práticas
Encapsulamento,campos e métodos
Encapsulamento
Métodos públicos
Campos públicos
Métodos privados
Campos privados
Desenho deuma classe
segundo a OMG
Tipos de campo
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
• Forma de declarar uma propriedade (campo) da classe
Declarando propriedades
Partes entre [ ] indicam que são valores opcionais.
Exemplo
Variáveis de instância ‐
caracterizam o objeto
Boas práticas
Exemplo
Usamos a palavra‐chave static, para indicar uma variável estática – uma
variável da classe
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
Getter’s e setter’s
• 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)
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
• Métodos modificadores– Usado para escrever ou mudar valores de variáveis de uma classe.
– Normalmente escrito como:
Métodos modificadores (Setter’s)
Métodos modificadores (Setter’s)
Parâmetro formal que será utilizado dentro
método
Também podem ser usadas para retornar valores constantes, em vez de variáveis.
Podem existir diversas
declarações return em um
método.
Métodos static
Chamadas de métodos da classe
Bicicleta
O objeto magrelachamando seus
métodos
Declaração de métodos estáticos
Boas práticas
Construtores
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
Declaração de construtor
modificador
identificador
Lista de parâmetros
( )
bloco de comandos
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
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
Objetos da classe Bicicleta
Bicicleta
aromarcacor
virar()freiar()
aro 24marca Caloicor azul
aro 22marca Monarkcor vermelha
Codificando construtores
1
2
3
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
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
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
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
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
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
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