Você está na página 1de 28

Orientao a Objetos e Java

Graduao em Cincia da Computao

Srgio Soares scbs@cin.ufpe.br http://www.cin.ufpe.br/~scbs


Centro de Informtica, UFPE

Objetos, classes, mtodos e atributos

Programao Orientada a Objetos


Foco nos dados (objetos) do sistema, no nas funes Estruturao do programa baseada nos dados, no nas funes As funes mudam mais do que os dados

Objeto Vdeo

PLAY

> 1456

>
>>> <<<

DI

Objeto Conta Bancria

Creditar

Saldo

Nmero

875,32

21.342-7

Debitar

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

Objetos
Objetos comportamento + caractersticas mtodos + atributos estado encapsulado

Classes
Classes agrupamento de objetos do mesmo tipo
Animais
Mamferos
Macaco Cachorro
Jacar

Invertebrados
Gafanhoto

Definindo Classes em Java


public class NomeDaClasse { CorpoDaClasse }

O corpo de uma classe pode conter atributos mtodos construtores (inicializadores) outras classes...

Estrutura mnima de um programa em Java


public class <nome> { public static void main (<parametros>) { <declaraes> <comandos> } }

Onde, main: mtodo por onde se inicia a execuo public: parmetro de acesso static: indica que main se aplica classe void: indica que main no retorna um valor

Exemplo
public class LeImprime { /** L e imprime um string */ public static void main(String[] args) { String nome; nome = Util.readStr(); System.out.println(nome); } }

Definindo Atributos em Java


public class Livro { private int anoDePublicacao; private int numeroDePaginas; 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

Tipos em Java
Primitivos
char int boolean double

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

...

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

Strings (String)
No um tipo primitivo e sim uma classe Literais: a DI \n UFPE \n
Operadores: + (concatenao)
ex.: maio + de + 99 = maio de 99

Note a converso de inteiro para string H uma converso implcita para todos os tipos primitivos

Mais operadores sobre strings


Comparao (igualdade) de dois strings a e b String a ... String b ... a.equals(b) ou b.equals(a)
Tamanho de um string a

a.length()

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

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

Information Hiding e Java


Java no obriga o uso de private, mas vrios autores consideram isto uma pr-condio para programao orientada a objetos O bug do ano 2000 e private... Grande impacto em extensibilidade Usem private!

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 especificar que um atributo deve ser inicializado com um valor especfico

Definindo Mtodos em Java


public class Conta { private String numero; private double saldo; public void creditar(double valor) { saldo = saldo + valor; } ... }

Um mtodo uma operao que realiza aes e modifica os valores dos atributos do objeto responsvel pela sua execuo

Definindo Mtodos em Java


public class Conta { ...

parmetros do mtodo

public void debitar(double valor) { saldo = saldo - valor; } }

tipo de retorno

corpo do mtodo

Por qu o debitar no tem como parmetro o nmero da conta?

Definindo Mtodos em Java


O tipo do valor a ser retornado pelo mtodo Nome do mtodo Lista, possivelmente vazia, indicando o tipo e o nome dos argumentos a serem recebidos pelo mtodo
Usa-se void para indicar que o mtodo no retorna nenhum valor, apenas altera os valores dos atributos de um objeto

Definindo Mtodos em Java


public class Conta { private String numero; private double saldo; public String getNumero() { return numero; } public double getSaldo() { return saldo; } ...

Os mtodos que retornam valores como resultado usam o comando return

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

Comunicao entre objetos


Os objetos se comunicam para realizar tarefas A comunicao feita atravs da troca de mensagens ou chamada de mtodos Cada mensagem uma requisio para que um objeto execute uma operao especfica
conta.creditar(45.30)
varivel contendo referncia para objeto nome do mtodo a ser executado

Imprimindo na tela
public class Conta { private String numero; private double saldo; concatenao de strings e converso de tipos

public void imprimirSaldo() { System.out.println("Conta: " + numero + " Saldo: R$" + saldo); } ... }

A tela do computador representada em Java por um objeto especial, armazenado na varivel System.out

Imprimindo na tela
O cdigo de impresso na tela faz parte da GUI do sistema

e no deve ser misturado ao


cdigo inerente ao negcio, como acontece no exemplo anterior

Exerccio
Implemente o mtodo transferir da classe Conta, para realizar a transferncia de uma conta para outra
Dica: a palavra reservada this denota uma referncia para o objeto que est executando o mtodo no qual ela se encontra

Exerccio
Utilizando apenas os conceitos ilustrados at aqui, defina parcialmente em Java as classes que fazem parte dos sistemas sendo desenvolvidos

Você também pode gostar