Sunteți pe pagina 1din 50

A1LG2 Lgica de Programao 2

Introduo Programao Orientada a Objetos (POO) com Java

Crditos do Material: Prof. Me. Vladimir Camelo

1
Diferenas entre Programao Estruturada Vs POO

Programao Estruturada Programao OO


Procedimentos e funes Mtodos
Dados Atributos
Chamadas Mensagens
Tipos de dados Classes

No existe Herana
Linear Controle do usurio

2
Evoluo das linguagens de POO

3
Vantagens da Programao Orientada a Objetos
Cdigo mais lgico;
Melhor encapsulada;
Facilidade de manuteno e extenso do cdigo;
Reaproveitamento de cdigo;
Melhor gerenciamento;
Entre outros.

4
Desvantagens da Programao Orientada a Objetos
Aprendizado mais complexo;

Para comear a programar necessrio ter estabelecido uma srie de


conceitos bastante complexos se comparado a programao procedural
tradicional;

Dificilmente uma linguagem orientada a objetos conseguir ter um


desempenho em tempo de execuo superior a linguagens no
orientadas a objetos.

5
Exemplo de Objetos

6
Conceitos gerais introduzidos pela POO
Classes
Instncias
Objetos
Mtodos

7
Programao Orientada a Objetos
Classes especificam a estrutura e o comportamento dos objetos

Classes so como "moldes" para a criao de novos objetos

Objetos so instncias de classes.

Um objeto representa uma entidade do mundo real

Todo objeto tem:

8
Classes
Uma classe uma abstrao que define um tipo de objeto e suas
caractersticas (atributos) e as aes que pode realizar (mtodos).

As classes no tem vida so apenas conceitos, j os objetos possuem


vida.

Definio:

As classes so declaraes de objetos ou tambm se poderiam


definir abstraes de objetos.

O objeto uma instncia de uma determinada classe, o que


significa que ele possui o comportamento e as caractersticas
definidos pela classe para suas instncias, este processo
chamado de instanciao.

9
Classes
Agrupamento de objetos do mesmo tipo

10
Classes
Representao:

Uma classe representada por um retngulo dividido em trs


partes:

Na primeira esta o nome da classe

Na segunda os atributos dos objetos descritos na classe

Na terceira esto os mtodos desses objetos

11
Classes

12
Classes

public class Circulos {

private float raio;


private float x;
private float y;

public void Move (float x, float y) {


....
}
public void Resize (float r) {
....
}
}

13
Classes & Objetos

14
Classes
Algumas observaes:

Os objetos de uma determinada classe no so iguais.

A similaridade consiste apenas no fato de que possuem


propriedades idnticas.

No instante em que um objeto instanciado, reservado um


espao em memria para ele e automaticamente executado seu
construtor. A partir deste momento o objeto est pronto para ser
utilizado.

Quando o objeto eliminado ele automaticamente executa o seu


destrutor.

15
Instanciao
Instanciar uma classe significa criar um novo objeto a partir dela.
Lembrando que todo objeto pertence a uma classe.

Todo objeto precisa ser declarado e instanciado.

A declarao de objetos feita utilizando a seguinte sintaxe:

<nome da classe> <nome do objeto>

A declarao de um objeto sempre iniciar com o nome de uma classe.

Exemplos:

ClasseTeste obj;

String st;

16
Instanciao
Depois de declarado o objeto precisa ser instanciado da seguinte forma:

<nome do objeto> = new <construtor>([<argumentos>]);

O responsvel pela instanciao do objeto o construtor da classe.

O construtor possui o mesmo nome da classe e cada classe tem um


construtor padro sem argumentos.

A instanciao feita atravs de uma operao de atribuio em que o


objeto recebe o espao na memria que lhe for reservado pelo
construtor.

O operador new sempre preceder o construtor utilizado nessa


operao.

17
Instanciao
Caso seja utilizado o construtor padro, o nome do construtor ser
seguido de um par de parnteses sem nada dentro.

Exemplos:
obj = new ClasseTeste();
st = new String(Texto);
A declarao e a instanciao podem ser feitas numa nica instruo
atravs da seguinte sintaxe:
<nome_classe> <nome_objeto>= new
<construtor>([<argumentos>]);
Exemplos:
ClasseTeste obj = new ClasseTeste();
String st = new String(Texto);

18
Instanciao
possvel criar objetos annimos (aqueles que no possuem nome).

Para isso no necessrio criar o nome do objeto durante a


instanciao.

Esses objetos so utilizados no caso em que a instncia de classe


utilizada uma nica vez, diferente dos objetos com nome que podem
ser utilizados enquanto estiverem na memria.

Exemplos:

new ClasseTeste();

19
Objetos
Definio:

Um objeto qualquer entidade, no necessariamente palpvel que


apresenta atributos e/ou mtodos.

Ele deve ser visto como algo que tenha vida, mesmo que seja a
abstrao de algo inanimado.

Representao:

Um objeto normalmente representado por um crculo com o


nome na sua parte interna.

Sinnimos:

Objeto = Instncia = Ocorrncia

20
Objetos
Identidade

Todo objeto nico e pode ser distinguido de outros objetos

Estado

Todo objeto tem estado, que determinado pelos dados contidos no


objeto

Comportamento

O comportamento de um objeto definido pelos servios/operaes


que ele oferece

21
Objetos
Exemplos:

Um objeto fsico: Carro, Pessoa, Casa, Cadeira, Mesa, Prdio,


Navio, Avio, Computador, etc.

Objeto conceitual: Organograma de uma empresa.

Objeto de software: Boto em uma GUI.

22
Objetos - Atributos
Os atributos definem o estado interno de um objeto, ou seja, suas
caractersticas. Caractersticas de um Objeto:

Estante: tamanho, cor tipo e estrutura.

Carro: marca, modelo, fabricante, cor, etc.

Frao: numerador e denominador.

Observaes:

Os atributos de um objeto devem ser acessados apenas pelo


prprio objeto.

Um atributo de um objeto pode ser outro objeto (um atributo de um


carro o seu motor)

23
Objetos - Mtodos
Os mtodos so as funes que operam sobre o objeto.

Exemplos:

Com o objeto caneta podemos escrever e desenhar.

So estas as funes oferecidas pelo objeto caneta.

Ao objetivo frao podemos associar os seguintes mtodos:

simplificar,

somar com outra frao ou nmero,

subtrair com outra frao,

etc.

24
Objetos - Mtodos
O comportamento do objeto ser resultado da ao efetuada sobre ele, e
da funo que esta ao chamou.

Exemplo:

Tanto o rdio quanto a TV possuem um boto para lig-los.

Quando apertamos este boto (ou seja, efetuamos uma ao sobre


este objeto), o comportamento apresentado por ambos diferente.

Ligar o rdio significa emitir som.

Ligar a TV significa emitir som e imagem.

25
Objetos - Mensagens
Os objetos comunicam-se entre si atravs de mensagens que emitem e
recebem.

Quando uma mensagem enviada deve se especificar:

Um receptor;

uma requisio de servios;

argumentos ou parmetros (se necessrio);

Caso o servio no possa ser atendido, o emissor notificado e o


receptor no realiza nenhum processamento.

Caso o servio solicitado possa ser atendido, o receptor aceita e


responde mensagem ativando o mtodo correspondente.

26
Objetos - Mensagens
O atendimento de ma mensagem envolve a execuo de algum tipo de
cdigo (mtodo) sobre algum dado associado quela operao
(atributo).

Quando um objeto criado, o acesso a suas caractersticas feito


atravs de mensagens.

Para cada mensagem recebida pelo objeto, existe um mtodo


associado para respond-la.

As operaes podem ter parmetros de entrada e sada com tipos


determinados.

Esta caracterstica, juntamente com o seu nome, definem a assinatura


de uma mensagem.

27
Mtodos
Os mtodos permitem modularizar um programa.

As variveis declaradas em um mtodo so variveis locais.

A maioria dos mtodos tem uma lista de parmetros que fornece o meio
de passar informaes entre os mtodos atravs de chamadas de
mtodos.

Os parmetros de um mtodo tambm so variveis locais.

A vrias razes para modularizar um programa em mtodos:

Dividir para conquistar;

Capacidade de reutilizao do cdigo.

28
Mtodos
Formato genrico de uma definio de mtodo:

Modificador tipo_do_valor_de_retorno nome_do_mtodo (lista de parmetros) {

declaraes e instrues

Public int soma_valores (int a, int b) {

int resultado;
resultado = a + b;
return resultado;
}

29
Mtodos
O nome do mtodo qualquer identificador vlido.

O tipo de valor de retorno o tipo de dado do resultado retornado pelo


mtodo chamador.

O tipo de valor de retorno void indica que um mtodo no retorna


nenhum valor.

Os mtodos podem retornar no mximo um valor ou uma coleo por


meio do uso de collections.

A lista de parmetros separada por vrgula.

O return devolve o valor solicitado ao mtodo chamador.

30
Definindo Classes em Java
public class NomeDaClasse {
CorpoDaClasse
}

31
Estrutura bsica de uma classe

32
Estrutura mnima de um programa Java

33
Exemplo de um programa Java

public class LeImprime {


/** Imprime um string */
public static void main(String[] args) {
String nome;
nome = Prof. Msc. Vladimir Camelo;
System.out.printf(%s,nome);
}
}

34
Declarao de atributos

35
Declarao de atributos em Java

36
O que so mtodos
Mtodos so operaes que realizam aes e modificam os valores dos
atributos do objeto responsvel pela sua execuo

37
Definindo mtodos em Java

38
O corpo dos mtodos
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;

39
Comunicao entre mtodos
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

40
Modificadores de acesso

41
Modificadores de acesso
Controlam o acesso aos membros de uma classe

Membros de uma classe:

A prpria classe

Atributos

Mtodos e construtores (um tipo especial de mtodos)

No so aplicados variveis

42
Modificadores de acesso
Uma classe public pode ser instanciada por qualquer classe
Atributos public podem ser acessados (lidos, alterados) por objetos de
qualquer classe
Mtodos public podem ser chamados por mtodos de qualquer classe

43
Modificadores de acesso
Usado somente para atributos e mtodos.
Atributos protected podem ser acessados (lidos, alterados) por objetos
de classes dentro do mesmo pacote ou de qualquer subclasse da classe
ao qual ele pertence.
Mtodos protected podem ser chamados por objetos de classes dentro
do mesmo pacote ou de qualquer subclasse da classe ao qual ele
pertence.

44
Modificadores de acesso
A classe visvel somente por classes do mesmo pacote.

Se um atributo no tem nenhum modificador de acesso associado, ele


implicitamente definido como friendly, e s visvel para objeto de
classes do mesmo pacote.

Se um mtodo no tem nenhum modificador de acesso associado, ele


implicitamente definido como friendly, e s pode ser chamado a partir
de objetos de classes do mesmo pacote.

45
Modificadores de acesso

46
Modificadores de acesso

47
Modificadores de acesso
Pode ser utilizado para em qualquer membro de uma classe.

Torna o atributo constante.

O atributo no pode ser alterado depois de inicializado.

Mtodos final no podem ser redefinidos.

Classes final no podem ser estendidas.

48
Modificadores de acesso

49
Modificadores de acesso
Pode ser usado somente em atributos e mtodos

Atributos static pertencem classe e no aos objetos

S existe uma cpia de um atributo static de uma classe, mesmo que


haja vrios objetos da classe

Atributos static so muito usados para constantes

O acesso feito usando o nome da classe:

50

S-ar putea să vă placă și