Sei sulla pagina 1di 21

Java 2 Standard Edition

Programa o Programa o

orientada orientada a a objetos objetos em em Java Java Helder da Rocha

www.argonavi s.com.br
1

Assuntos abordados neste mdulo


Conceitos de programao orientada a objetos existentes na sintaxe da linguagem Java
Artefatos: pacote, classe, objeto, membro, atributo, mtodo, construtor e interface Caractersticas OO em Java: abstrao, encapsulamento, herana e polimorfismo

Sintaxe Java para construo de estruturas de dados


Tipos de dados primitivos Componentes de uma classe

Construo de aplicaes simples em Java


Como construir uma classe Java (um tipo de dados) contendo mtodos, atributos e construtores Como construir e usar objetos

Este mdulo longo e aborda muitos assuntos que sero tratados novamente em mdulos posteriores
2

Por que OO importante?


Java uma linguagem orientada a objetos Para desenvolver aplicaes e componentes de qualidade em Java preciso entender e saber aplicar princpios de orientao a objetos ao programar possvel escrever programas em Java sem saber usar os recursos da OO, mas
Dificilmente voc ser capaz de ir alm de programas simples com mais de uma classe Ser muito difcil entender outros programas

Seu cdigo ser feio, difcil de depurar e de reutilizar


Voc estar perdendo ao usar uma linguagem como Java (se quiser implementar apenas rotinas procedurais pode usar uma linguagem melhor para a tarefa como Shell, Fortran, etc.)

O que Orientao a objetos


Paradigma do momento na engenharia de software
Afeta anlise, projeto (design) e programao

A anlise orientada a objetos


Determina o que o sistema deve fazer: Quais os atores envolvidos? Quais as atividades a serem realizadas? Decompe o sistema em objetos: Quais so? Que tarefas cada objeto ter que fazer?

O design orientado a objetos


Define como o sistema ser implementado

Modela os relacionamentos entre os objetos e atores (pode-se usar uma linguagem especfica como UML) Utiliza e reutiliza abstraes como classes, objetos, funes, frameworks, APIs, padres de projeto
4

Abstrao de casos de uso em (1) anlise OO e (2) anlise procedural


Adicionar Sistema de Biblioteca Bibliotecrio livros Pesquisar Usurio Catlogo

(1) Trabalha no espao do (2) Trabalha no espao da soluo problema (casos de uso (casos de uso decompostos em simplificados em objetos) procedimentos algortmicos) Abstraes mais simples e
Abstraes mais prximas do mais prximas do mundo real mundo do computador
Biblioteca Catlogo Lgica procedural encapsulada em

Sistema de Biblioteca Livro Autor Livro Autor objetos pequenos


Adicionar Livros Pesquisar Catalogo

Autor Livro Autor Lgica exposta e espalhada por todo o sistema

O que um objeto?
Objetos so conceitos que tm
identidade, estado e comportamento

Caractersticas de Smalltalk, resumidas por Allan Kay:


Tudo (em um programa OO) so objetos Um programa um monte de objetos enviando mensagens uns aos outros O espao (na memria) ocupado por um objeto consiste de outros objetos Todo objeto possui um tipo (que descreve seus dados) Objetos de um determinado tipo podem receber as mesmas mensagens

Ou seja...
Em uma linguagem OO pura
Uma varivel um objeto Um programa um objeto Um procedimento um objeto

Um objeto composto de objetos, portanto


Um programa (objeto) pode ter variveis (objetos que representam seu estado) e procedimentos (objetos que representam seu comportamento)

Analogia: abstrao de um telefone celular


composto de outros objetos, entre eles bateria e botes

A bateria um objeto tambm, que possui pelo menos um outro objeto: carga, que representa seu estado Os botes implementam comportamentos
7

Objetos (2)
Em uma linguagem orientada a objetos pura
Um nmero, uma letra, uma palavra, uma valor booleano, uma data, um registro, uma boto da GUI so objetos

Em Java, objetos so armazenados na memria de heap e manipulados atravs de uma referncia (varivel), guardada na pilha.
Pilha
0010

Heap

Tm estado (seus atributos) Tm comportamento (seus mtodos)


5 ref
001A 001A

23

Tm identidade (a referncia)
001F

Valores unidimensionais no so objetos em Java


Nmeros, booleanos, caracteres so armazenados na pilha Tm apenas identidade (nome da varivel) e estado (valor literal armazenado na varivel); - dinmicos; + rpidos
8

Variveis, valores e referncias


Variveis so usadas em linguagens em geral para armazenar valores Em Java, variveis podem armazenar endereos de memria do heap ou valores atmicos de tamanho fixo
Endereos de memria (referncias) so inaccessveis aos programadores (Java no suporta aritmtica de ponteiros!) Valores atmicos representam tipos de dados primitivos

Valores so passados para variveis atravs de operaes de atribuio


Atribuio de valores feita atravs de literais Atribuio de referncias (endereos para valores) feita atravs de operaes de construo de objetos e, em dois casos, pode ser feita atravs de literais
9

Literais e tipos
Tipos representam um valor, uma coleo de valores ou coleo de outros tipos. Podem ser
Tipos bsicos, ou primitivos, quando representam unidades indivisveis de informao de tamanho fixo Tipos complexos, quando representam informaes que podem ser decompostas em tipos menores. Os tipos menores podem ser primitivos ou outros tipos complexos

Literais: so valores representveis literalmente.


Nmeros:
1, 3.14, 1.6e-23

Valores booleanos:

true

e
false

Unidimensionais

Caracteres individuais:
'a', '\u0041', '\n'

)
Compostos

Seqncias de caracteres:
"aaa", "Java"

Vetores de nmeros, booleanos ou strings:


{"a", "b"}

10

Potrebbero piacerti anche