Você está na página 1de 36

Introduo Orientao a Objetos em Java

Prof. Gustavo Wagner (Alteraes) Slides originais: Prof. Tiago Massoni


Desenvolvimento de Sistemas FATEC-PB

Centro de Informtica, UFPE

Programao estruturada x Orientao a Objetos


Programao estruturada (Pascal,C)
Funes so abstraes para resolver, no mundo computacional, um problema Estruturas para armazenar os dados

Programao Orientada a Objetos


Foco nos dados ao invs de operaes Representao de objetos do mundo real (estado + comportamento)
2

Programao orientada a objetos


Uso de abstraes bem mais prximas do mundo do problema
Objetos, no funes

Em um programa, tudo objeto Um programa um monte de objetos dizendo aos outros o que fazer
Mensagens
3

Objeto = DVD
Estado atual do DVD o que ele est fazendo

PLAY

> 1:38

> >>|
|<<

Operaes que o DVD executa


4

Objeto Conta Bancria


Creditar

Saldo

Nmero

875,32

21.342-7

Debitar
5

Estados do Objeto Conta


Creditar(20)
Creditar

Crdito

Creditar

Crdito

Saldo

Saldo

Nmero

Nmero

Saldo

Saldo

Nmero

Nmero

875,32

875,32

21.342-7

21.342-7

895,32

875,32

21.342-7

21.342-7

Debitar

Debitar

Dbito

Dbito

Orientao a Objetos
O objeto uma estrutura que possui dados e operaes
Os dados, inclusive, podem ser outros objetos (atributos) As operaes manifestam o comportamento de um objeto quando solicitado (mtodos)

Estado encapsulado
Incluir dentro de um objeto tudo que lhe diz respeito
7

Classe de Contas Bancrias

Objetos semelhantes moldados por uma classe

Modelagem
Vamos modelar uma locadora de vdeo!

Criando moldes: classes em Java


modificador class Nome { CORPO }

public class Conta { (atributos) (mtodos) }


Botes = comportamento

Visor = estado

10

Padro de nome de classe


Nome de classe deve comear com letra maiscula
Ex: Conta, Cliente, Banco, Endereco

Nomes compostos no so separados por _. A primeira letra da palavra seguinte maiscula.


Ex: PessoaJuridica, PessoaFisica

Evite abreviaes no nome e use nomes com alguma relao com o que a classe modela. 11

Atributos em Java
public class Livro { private int anoDePublicacao; private String titulo; ... }

Cada atributo tem um tipo especfico que caracteriza as propriedades dos objetos da classe int e String denotam os tipos cujos elementos so inteiros e strings
12

Tipos em Java
Primitivos
char int boolean double
...

Referncia
classes (String, Object, Livro, Conta, etc.)

Os elementos de um tipo primitivo so valores, enquanto os elementos de um tipo referncia so (referncias para) objetos!
13

Objetos e Classes
Programa uma sequncia de operaes em objetos de vrias classes
Objetos: rea de memria Precisamos do tipo referncia para us-los
Varivel do tipo Conta
Creditar

saldo

Saldo

numero

Nmero

895,00

875,32

21.342

21.342-7

c.numero = 21342; c.saldo = 895.0;

Debitar 14

Modificadores de acesso e informao escondida


Atributos podem ser
public: acesso sem restries em qualquer usurio do objeto private: restringe o acesso apenas classe

Boa prtica esconder os atributos


Sempre private

15

Informao Escondida e Java


public class Livro { private int anoDePublicacao; ... }

A palavra reservada private indica que os atributos s podem ser acessados (isto , lidos ou modificados) pelas operaes internas da classe correspondente
16

Definindo Atributos em Java


public class Pessoa { private int anoDeNascimento; private String nome, sobrenome; private boolean casado = false; ... }

Vrios atributos de um mesmo tipo podem ser declarados conjuntamente Podemos iniciar um atributo com um valor especfico
17

Tipos de variveis
Variveis locais
Devem ser iniciadas Mtodos, funes, main

Atributos
Iniciadas automaticamente Classes

18

Padro de nome de atributo


Nomes de atributos devem comear com letra minscula Nomes compostos no so separados por _. A primeira letra da palavra seguinte maiscula. Evite abreviaes e use nomes com alguma relao com o que o atributo modela.
19

Ex: int ano;

Ex: int anoDePublicao;

Aula 2
Mtodos e Acesso;

20

Definindo Mtodos em Java


public class Empregado { do mtodo ... public void aumentarSalario(double valor) { salario = salario + valor; } }
Modificador de acesso

parmetros

tipo de retorno

corpo do mtodo

21

Mtodos em Java
public class Empregado { String nome; double salario; Endereco moradia; void aumentarSalario(double valor) { salario = salario + valor; } ... Por que no tem o }
Um mtodo uma operao que age e modifica os valores dos atributos do objeto onde ele executa parmetro cdigo do funcionrio?

22

O Corpo do Mtodo
Comandos que determinam as aes do mtodo Estes comandos podem
realizar simples atualizaes dos atributos de um objeto retornar valores executar aes mais complexas como se comunicar com outros objetos
23

Tipos de variveis
Variveis locais Atributos Parmetros
Iniciadas na chamada Mtodos, funes

24

Comunicao entre Objetos (Mensagens)

Crdito
nome

Saldo

salrio ender.

rua

Nmero

Saldo

bairro

CEP

Zeca

875,32

200,00

A-1

21.342-7

875,32

Bessa

58048-493

mensagem
mudarRua

mudarRua

Endereo de Zeca Empregado Zeca


25

Sobrecarga de Mtodos
Mtodos diferentes podem ter o mesmo nome, diferenciados pela quantidade de parmetros
class Conta{ ... public void debitar(double v){ saldo = saldo v; } public void debitar(int v){ saldo = saldo v; } }
26

Mtodos de Acesso
Tentar ler ou escrever em um atributo privado do objeto resulta em erro de compilao Podemos definir 2 mtodos que acessam o atributo (na prpria classe onde o atributo se encontra), para leitura e escrita Mtodos de acesso
getXXX() setXXX()
27

Colocar public?

Mtodos de Acesso
public class Livro { private int anoDePublicacao; private String titulo; public int getTitulo(){ return titulo; } public void setTitulo(String novoTit){ titulo = novoTit; }
}
Mtodo que retorna valores

28

Informao Escondida e Mtodos


Java no obriga o uso de private, mas isso considerado uma prtica de programao orientada a objetos Grande impacto em manuteno Exemplo: Pessoa e sua idade

29

Referncia this
public class Livro { private int anoDePublicacao; private String titulo; public int getTitulo(){ return this.titulo; } public void setTitulo(String titulo){ this.titulo = titulo; }
}
Varivel que referncia ESTE objeto, o corrente

30

Encapsulamento em uma classe

Mtodos pblicos Mtodos privados

Atributos pblicos Atributos privados


31

Modificadores de acesso
Mtodo privados
S podem ser chamados partir da mesma classe Para operaes teis apenas internamente Seguem encapsulamento

Atributos pblicos
Dificilmente usados (apenas para constantes)

32

Exerccio
Criar classe Ponto, que possui duas coordenadas x e y e mtodos de acesso (get,set) Criar classe Reta, que possui dois pontos, e o seguinte mtodo:
public void mudaPosicao(int x1,int y1,int x2,int y2){...}

33

Aula Prtica Orientao a Objetos 1

Atividades
Criar novo projeto (Banco) Crie uma classe Cliente contendo como atributos o cpf e o nome do cliente Criar os mtodos de acesso (get/set)

35

Atividades
Criar classe Conta
Dados: nmero (int) e saldo (double) Gerar mtodos de acesso automaticamente creditar, debitar transferirDe(Conta destino) transferirPara(Conta origem)

Você também pode gostar