Aula 2 __comandos_eletricos___ligacao_de_motores___imprimir (1)
Aula 2 1
-
Upload
iftm-instituto-federal-de-educacao-ciencia-e-tecnologia-do-triangulo-mineiro -
Category
Technology
-
view
16 -
download
0
Transcript of Aula 2 1
Programação Orientada a
Objetos
Professor Eng. Ms. Will Roger Pereira
1
Objetivos da Aula
Atributos de classe;
Métodos de classe.
2
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
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
Atributos de Classe
Atributos comuns (de instância/objeto):
Atributos de classe:
5
Criando Atributos de Classe
Utilize o modificador static.
Sintaxe de criação:
Exemplo:
6
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
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
Referenciando
Atributos de Classe
Exemplo:
9
Criação
Acesso
Mudança
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
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
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
Métodos de Classe
Sintaxe de criação:
Exemplo:
13
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
Invocando Métodos de Classe
Exemplo:
15
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
Atributos e métodos de classe no
diagrama de classe
Tudo o que for relativo à classe estará sublinhado static
17