You are on page 1of 24

!

Tcnicas de Programao I
(CK0112 2017.1)

Universidade Federal do Cear


Departamento de Computao
Prof. Joo Bosco Ferreira Filho
(bosco@dc.ufc.br)
CLASSES E OBJETOS

2
!
Sumrio
Classes
Objetos
Atributos
Mtodos
Passagem de Parmetros
Modificadores de Acesso

3
!
Classe

Uma classe representa um conjunto de objetos


com caractersticas afins. Uma classe define o
comportamento dos seus objetos, atravs das suas
operaes/mtodos, e quais estados eles podem
alcanar, atravs das suas propriedades/atributos.

4
!
A Classe Conta

Nome da classe

Propriedades/atributos da classe

Operaes/mtodos da classe

5
!
Assinatura da Classe Conta em Java
Classe Conta: Assinatura
01 public class Conta {
02 public Conta (String numero){}
03 public void creditar(double valor){}
04 public void debitar(double valor){}
05 public String numero(){}
06 public double saldo(){}
07 }

6
!
Descrio da Classe Conta em Java
Classe Conta: Descrio
01 public class Conta {
02 private String numero;
03 private double saldo;
04
05 public Conta (String numero) {
06 this.numero = numero;
07 saldo = 0;
08 }
09 public void creditar (double valor){
10 saldo = saldo + valor;
11 }
12 public void debitar (double valor){
13 saldo = saldo - valor;
14 }
15 public String numero() {
16 return numero;
17 }
18 public double saldo() {
19 return saldo;
20 }
21 }
7
!
Objetos

Objeto uma instncia de uma classe. Um objeto


capaz de armazenar estados atravs de seus
atributos e reagir a mensagens enviadas a ele,
assim como se relacionar e enviar mensagens para
outros objetos.

8
!
Objetos
Um objeto uma entidade independente
Estado Interno: uma memria interna em que
valores podem ser armazenados e modificados ao
longo da vida do objeto (conjunto de atributos ou
variveis de instncia)

Comportamento: conjunto de aes pr-definidas


(mtodos) atravs das quais o objeto responder
a demanda de processamento por parte de outros
objetos

9
!
Um Objeto da Classe Conta

creditar() debitar()

numero saldo
21.342-7 875,32

saldo() numero()

10
!
Mudana de Estado

creditar() debitar() creditar() debitar()

creditar(10)
numero saldo numero saldo
21.342-7 875,32 21.342-7 885,32

saldo() numero() saldo() numero()

11
!
Instanciando Objetos do Tipo Conta
Programa CriaConta: Descrio
01 public class CriaConta {
02
03 public static void main(String args[]){
04 Conta conta;
05 conta = new Conta(21.342-7);
06 conta.creditar(500.87);
07 conta.debitar(45.00);
08 System.out.println(conta.saldo());
09 }
10 }

12
!
Codifique as classes Conta e CriaConta e os execute.

13
!
Atributos
So propriedades de um objeto. Basicamente
a estrutura de dados que vai representar a
classe
Exemplo: Conta possui atributos numero e saldo

Por sua vez, os atributos possuem valores


Exemplo, o atributo saldo pode armazenar o valor
500

14
!
Mtodos
Mtodos definem as habilidades dos
objetos. Um mtodo em uma classe apenas
uma definio. A ao s ocorre quando o
mtodo invocado atravs do objeto

15
!
Mtodos em Java
Podemos ver os mtodos em Java como
procedimentos e funes. Se o tipo de retorno
for void podemos interpretar o mtodo como
um procedimento, caso contrrio, uma funo
Exemplos
O mtodo creditar (double valor) da classe Conta
funciona como um procedimento
O mtodo saldo() da classe Conta funciona como
funo

16
!
Mtodos em Java: Construtor
O (pseudo-) mtodo construtor determina que aes
devem ser executadas quando da criao de um
objeto
Deve possuir o mesmo nome da classe
No deve ter indicao do tipo de retorno
Unicamente invocado no momento da criao do objeto
atravs do comando new
Exemplo: Conta conta = new Conta(10.234-x);

17
!
Passagem de Parmetros
O nmero de parmetros passados deve ser igual ao da definio

Cada parmetro individualmente, deve ter tipo compatvel com o


da definio

Para tipos primitivos, a passagem por valor

Para vetores (arrays) e objetos, uma cpia da referncia


passada

Cada chamada a um mtodo cria suas prprias instncias dos


parmetros formais

Uma expresso pode ser usada como argumento

18
!
Modificadores de Acesso
Modificador Funcionalidade
Indica que o mtodo ou atributo s pode ser acessado dentro
private
da classe em que declarado
Indica que o mtodo ou atributo s pode ser acessado de
protected dentro do pacote em que a classe na qual est declarada est
contida atravs de uma subclasse
Indica que a classe, o mtodo ou o atributo podem ser
public acessados em qualquer lugar e a qualquer momento da
execuo do programa
Usado para: criar uma varivel compartilhada que poder ser
acessada por todas as instncias de objetos de uma mesma
static
classe; e para declarar mtodos que devem ser acessados
diretamente na classe e no nas suas instncias
Indica que a classe, o mtodo ou o atributo tm uma nica
final atribuio que se mantm constante, ou seja, no pode ser
alterada no decorrer do processamento
19
!
A Classe Banco: Assinatura
Classe Banco: Assinatura
01 public class Banco {
02 public Banco(){...}
03 public void cadastrar(Conta conta){...}
04 private Conta procurar(String numero){...}
05 public void creditar(String numero, double valor){...}
06 public void debitar(String numero, double valor){...}
07 public double saldo(String numero) {...}
08 public void transferir(String origem, String destino, double valor){...}
09 }
10

20
!
A Classe Banco: Descries
Classe Banco: Descrio
01 public class Banco {
02 private Conta[] contas;
03 private int indice = 0;
04
05 public Banco(){
06 contas = new Conta[100];
07 }
08
09 public void cadastrar(Conta conta){
10 contas[indice] = conta;
11 indice++;
12 }
13 (...)

21
!
A Classe Banco: Descries
Classe Banco: Descrio
14 (...)
15 private Conta procurar(String numero){
16 int i = 0;
17 boolean achou = false;
18 while ((!achou) && (i < indice)) {
19 if (contas[i].numero().equals(numero)) {
20 achou = true;
21 } else {
22 i++;
23 }
24 }
25 if (achou == true) {
26 return contas[i];
27 } else {
28 return null;
29 }
30 }
31 (...)

22
!
A Classe Banco: Descries
Classe Banco: Descrio
32 (...)
33 public void debitar(String numero, double valor) {
34 Conta conta;
35 conta = procurar(numero);
36 if (conta != null) {
37 conta.debitar(valor);
38 } else {
39 System.out.println("Conta Inexistente!");
40 }
41 }
42 (...)
43 }

23
!
Tutorial de Programao 02

24
!

You might also like