lnccwiki.martin.lncc.br/bcorrea-istparacambi-oo1/file/java-oo-aula3... · complexidade divida‐o...

Post on 20-Nov-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related