Sie sind auf Seite 1von 31

Prof.

Mauricio Prado Catharino

Mudanas de requisitos;
Mudana de desenvolvedor;
Muitas pessoas responsveis por colocarem
o mesmo cdigo em vrios lugares

Mudana de desenvolvedor.
Necessidade de ler o cdigo que foi
escrito por outro desenvolvedor, e
descobrir como ele funciona, isso se torna
impossvel em sistemas de grande porte.

O problema do paradigma procedural que


no existe um forma simples de criar
conexo entre os dados e funcionalidades.

No paradigma orientado a objetos muito


fcil ter essa conexo atravs de recursos da
linguagem.

Exemplo clssico da validao CPF.


Validar o CPF em todos os formulrios do
programa.

Problemas como:

Rescrita e cdigo;
Manuteno do cdigo;
Possibilidade de erro em um dos formulrios;
Custo de programao.

Benefcios:
Escrever menos cdigos;
Concentrar responsabilidades nos locais
certos;
Flexibilizao da aplicao;
Encapsular lgica de negcio.
Polimorfismo (variao de comportamento)

Uma classe representa um tipo de dados.


Uma classe uma estrutura definida pelo
programador.
LIVRO

Atributos

-ISBN
-Ttulo
-Autor
-Editora
-Pgina

A palavra classe vem da taxonomia da


biologia. Todos os seres vivos de uma mesma
classe biolgica tm uma srie de atributos e
comportamentos em comum, porem no so
iguais.
Por exemplo o homem da classe dos
mamferos.

Emprestar

Devolver

Reservar

Obter Autor

Mtodos
9

Atributos
Caracterstica da classe.
Representados por substantivos.

Mtodos
Operaes que as classes so capazes de
realizar.
Representados por verbos.

10

Classes

so estruturas utilizadas
para construir os objetos que so
instanciados por estas.

11

Livro 1

Livro
Instncia

objeto
Livro 2
Instncia

objeto
Classe
Instncia

Livro 3

objeto
12

Um outro exemplo bacana uma receita de


bolo. A pergunta : voc come um receita
de bolo?
No, mas podemos instanci-la, criar um
bolo a partir das especificaes dessa
classe.
Podemos criar a partir dessa receita centena
de bolos, semelhantes ou mesmo idnticos,
porem so objetos diferentes

13

No Java as classes so declaradas utilizando a


palavra class.
public class livro {
................
}

Uma arquivo .java pode ter apenas uma


classe declarada como pblica dentro dele.

14

Atributos

public class Livro {


String isbn;
int numPagina;
.......
void emprestrar (Cliente c) {
........
}

Mtodos

void devolver ( ) {
.......
}

15

Assinatura

void emprestar (Cliente c)

Tipo de
retorno

nome

Parmetros
Ou
Argumentos

16

Se o mtodo no retorna valores, utilizado


o void.
Um mtodo pode ter zero ou mais
parmetros, e todo o parmetro deve ter
um tipo definido

17

Sobrecarga de um mtodo significa criar


outros mtodos com o mesmo nome, mas
com assinaturas diferentes.
reservar
void reservar

(int dias)

reservar
void reservar

(Date data)

(int)
(Date)

reservar (Cliente c, Date Data)


void reservar
Nome o
Mtodo no
Muda

(Cliente,Date)

Apesar de serem parecidos so


mtodos totalmente diferentes
18

reservar

(10);

void reservar

reservar

(int dias)

(new date() );

void reservar

(Date data)

reservar

(new Cliente (), new Date() );

void reservar

(Cliente c, Date data)


19

Um objeto sempre uma instncia de uma


classe.
Para instanciar objetos utilizado o new.
Livro livro1 = new Livro();
Cliente cliente1 = new Cliente();

O objeto possui acesso ao que foi definido na


sua estrutura (classe) atravs do .
Livro1. titulo = Java;
Livro1.emprestrar = (Cliente1);
20

Cada objeto criado com o new nico.


Os atributos de objetos diferentes pertencem
apenas ao objeto.
Livro livro1 = new Livro();
livro1.isbn = 1234;
Livro livro2 = new Livro();
livro2.isbn = 4321;
Livro livro3= new Livro();
livro3.isbn = 1212;

21

Uma varivel cujo o tipo uma classe no


guarda o objeto diretamente.
A varivel guarda uma referncia ao objeto.
O new aloca um rea de memria e retorna a
referncia da rea de memria alocada.
As variveis declaradas em mtodos so
criadas em uma rea de memria conhecida
como stack.
Os objetos so criados em uma rea de
memria conhecida com heap.
22

void calc ( ) {
int x = 2;
int y = 3;
int r = somar(x, y);
}

Quando o mtodo termina


tudo que
Chama
o foi declarado na
mtodoStack
somar removido

int somar (int n1, int n2) {


int s = n1 + n2;
Retorno do
return s;
mtodo
}

somar( )

somar( )

n2

somar(
calc( ))

n1
r

2
5

calc( )

calc( )

Stack
Armazena as variveis locais e
de mtodos

23

double n = 10.0;
Computador comp = new Computador();
Telefone tel = new Telefone();

O operador new
cria um objeto
no Heap

Heap
<Computador>

n
comp

10.0
<Telefonre

tel
24

Computador c1 = new Computador();


Computador c2 = new Computador();
Computador c3 = c2;
c1 = null;

Heap
c1
<Computador>

c2
<Computador>
c3

25

Servio da JVM que executado em segundo


plano.
Procura objetos no Heap que no so mais
utilizados pela aplicao e os remove.
No pode ser controlado pelo desenvolvedor.
Heap

c1
<Computador>
c2

Garbage
Collector

<Computador>
c3
26

Usado basicamente em duas situaes:


Diferenciar um atributo do objeto de um argumento
do mtodo.
Fornecer a referncia do prprio objeto para outro
mtodo.
public class Circulo {

Atributo da
classe

private double raio;

public void setRaio (double raio) {


this.raio = raio;
}

Parmetro
do mtodo
27

28

29

30

1.

2.

Crie um programa em java que acesse uma


classe conta que possua os mtodos sacar e
depositar, o programa dever passar o
nome do cliente o valor do deposito e o
valor do saque e apresentar o nome, o
nmero da conta e o saldo do referido
cliente.
Em relao a sobrecarga de mtodos crie
um exemplo de uma classe que apresente
esta caracterstica.

31

Das könnte Ihnen auch gefallen