Aula 2 1

17
Programação Orientada a Objetos Professor Eng. Ms. Will Roger Pereira 1

Transcript of Aula 2 1

Page 1: Aula 2 1

Programação Orientada a

Objetos

Professor Eng. Ms. Will Roger Pereira

1

Page 2: Aula 2 1

Objetivos da Aula

Atributos de classe;

Métodos de classe.

2

Page 3: Aula 2 1

Problematização 1:

Vale-refeição dos funcionários

Situação:

Suponha um atributo valerefeicao da classe Funcionario;

Representa o valor do vale refeição recebido pelo funcionário;

O vale refeição é o mesmo para todos os funcionários.

Problema:

Não faz sentido ter este atributo repetido para todos os objetos,

uma vez que ele é único para todos. Não depende de nenhuma

característica do funcionário;

Para mudar este atributo, deve-se fazer a mudança em todos os

objetos da classe Funcionario. Não é prático.

3

Page 4: Aula 2 1

Atributos de Classe

Ao invés de utilizar atributos comuns, que são únicos para

cada objeto, serão utilizados atributos de classe;

Atributos de classe são COMPARTILHADOS por todos os

objetos da classe;

Ao contrário dos atributos comuns, se for mudado dentro de

um dos objetos, afetará o valor do atributo em todos os

elementos da classe.

4

Page 5: Aula 2 1

Atributos de Classe

Atributos comuns (de instância/objeto):

Atributos de classe:

5

Page 6: Aula 2 1

Criando Atributos de Classe

Utilize o modificador static.

Sintaxe de criação:

Exemplo:

6

Page 7: Aula 2 1

Utilidade dos Atributos de Classe

Utilize sempre nas seguintes situações:

Quando um atributo for referente a classe;

Quando um atributo tiver seu valor compartilhado por toda a

classe;

Quando não fizer sentido a criação de um objeto para possuir tal

valor.

Exemplos:

Atributos comuns a todos os objetos: Vale-refeição;

Contadores de objetos: Quantidade de funcionários;

Atributos referentes a classe: Total de dinheiro em todas as

contas;

Valores de classe: double pi = 3.1415. 7

Page 8: Aula 2 1

Referenciando

Atributos de Classe

O acesso a estes atributos é um pouco diferente. Não se usa

a referência de um objeto, mas sim a referência da classe;

Isto acontece pois o atributo é da classe, e não do objeto.

Sintaxe:

Para acessar o valor, basta utilizar a referência.

Para modificar o valor do atributo, simplesmente utilize o

operador de atribuição ‘=’.

8

Page 9: Aula 2 1

Referenciando

Atributos de Classe

Exemplo:

9

Criação

Acesso

Mudança

Page 10: Aula 2 1

Problematização 2:

Vale-refeição dos funcionários

Situação:

Deseja-se reajustar o valor do valerefeicao para todos os

Funcionários;

Para reajustar o valor do valerefeicao da classe Funcionario:

Se for atributo de classe: Deve-se criar um objeto funcionário.

Problema:

Como o reajuste do valor do vale refeição não depende dos

dados de um funcionário em particular, não faz sentido precisar

de uma referência de um objeto da classe Funcionario para

poder fazer esse reajuste.

Como fazer uma mudança neste atributo de classe de forma

geral??

10

Page 11: Aula 2 1

Métodos de Classe

Ao invés de utilizar métodos comuns, que devem possuir uma

referência a um objeto, utiliza-se métodos de classe.

Métodos de classe, como o nome diz, são da classe. Não é

necessário criar um objeto para invocá-lo;

Ao contrário dos métodos comuns, não depende dos dados

de um objeto em particular, não fazendo sentido precisar de

uma referência de um objeto da classe para sua execução;

CUIDADO: Dentro de um método de classe não é possível

referenciar um objeto, ou seja, não utilize this. 11

Page 12: Aula 2 1

Métodos de Classe

Utilize sempre nas seguintes situações:

Quando uma ação for referente a classe;

Quando não depender de dados de um objeto em particular;

Quando não fizer sentido criar um objeto para invocar tal

método.

Exemplos:

Modificar valores de atributos de classe: reajustaValeRefeicao();

Comportamento de função: arredondaNumero(int casas);

Mostrar valores de atributos de classe: geraRelatorio().

12

Page 13: Aula 2 1

Métodos de Classe

Sintaxe de criação:

Exemplo:

13

Page 14: Aula 2 1

Invocando Métodos de Classe

A invocação destes métodos é um pouco diferente. Não se

usa a referência a um objeto, mas sim a referência a classe;

Isto acontece pois o método é da classe, e não do objeto.

Sintaxe:

14

Page 15: Aula 2 1

Invocando Métodos de Classe

Exemplo:

15

Page 16: Aula 2 1

Erro comum

Exemplo:

Erro:

Razão: this dentro do método de classe. Dentro de um

método de classe, não pode-se referenciar um objeto. 16

Page 17: Aula 2 1

Atributos e métodos de classe no

diagrama de classe

Tudo o que for relativo à classe estará sublinhado static

17