Title: IBM Presentations: Blue Pearl Deluxe template
1Programação Orientada a Objetos usando JAVA
Autor Juliano Marcos Martins julianom_at_br.ibm.com
2Programação procedural
3Introdução a Objetos
4Introdução a Objetos
5(No Transcript)
6(No Transcript)
7Conceitos básicos - Abstração
Carro, Livro, Aluno, etc
8Conceitos básicos - Objeto
- Tudo em OO é OBJETO
- Definição (mundo do software)?
- Qualquer coisa, real ou abstrata, a respeito
da qual armazenamos dados e métodos que os
manipulam (Martin e Odell, 1995)? - Abstração de uma entidade do mundo real de modo
que essa entidade possua várias características e
serviços - Exemplos objeto casa, objeto cachorro
9Conceitos básicos - Objeto
- Resumindo
- OBJETO Pacote de informações (atributos) e a
descrição de suas operações (métodos), de modo
que elas são intrínsecas ao seu domínio e este é
formado pelos elementos que o caracterizam - Exemplo
- Objeto Pessoa
- Atributos Nome, Data de Nascimento, Cor
- Métodos Acordar, Comer, Beber Dormir
10Conceitos básicos - Métodos
- Métodos ou Operações podem mudar a estrutura
de dados dos objetos - Métodos são invocados por mensagens
- Cada objeto possui seu próprio conjunto de
métodos - Definições
- São procedimentos definidos e declarados que
atuam sobre um objeto - Descrição de uma seqüência de ações a serem
executadas por um objeto - Por meio dos métodos que especifica-se a um
objeto COMO FAZER alguma coisa - São intrínsecos aos objetos e não podem ser
separados
11Conceitos básicos - Classe
- Classe
- abstração de um conjunto de objetos similares
do mundo real - conjunto de objetos que possuem propriedades
semelhantes (ATRIBUTOS), o mesmo comportamento
(MÉTODOS), os mesmos relacionamentos com outros
objetos e a mesma semântica - Todo objeto é uma instância de uma Classe
- Todas as instâncias de uma classe têm valores
próprios para os atributos especificados na
classe - Os objetos representados por determinada classe
diferenciam-se entre si pelos valores de seus
atributos - Exemplo Classe de espécies em Zoologia
12Conceitos básicos - Represetação
13Conceitos básicos - Encapsulamento
- Característica que visa esconder detalhes de
implementação - É alcançado em OO, visto que o objeto, quando
implementado, possui uma parte privada
(atributos) e uma parte pública (métodos)? - Programadores podem introduzir mudanças na
implementação de um método sem afetar o
comportamento externo desse método (interface)? - Objetos encapsulam seus atributos
- atributos de uma classe são acessíveis apenas
pelos métodos da própria classe - outras classes só podem acessar os atributos de
uma classe invocando os métodos públicos - Restringe a visibilidade do objeto mas facilita
o reúso, aumenta a legibilidade e manutenibilidade
14Conceitos básicos - Mensagem
- É o mecanismo através do qual os objetos se
comunicam, invocando as operações desejadas - Especificação de uma operação do objeto
- É composta por
- Seletor
- nome simbólico que descreve o tipo da operação
- descreve O QUE o objeto que envia quer que seja
invocado - o objeto receptor da mensagem contém a
descrição de COMO a operação deveria ser
executada - Parâmetros
- argumentos que uma mensagem pode conter que faz
parte da operação e requer uma ordem única
15Conceitos básicos Mensagem e métodos
16Conceitos básicos - Polimorfismo
- Permite a criação de várias classes com
interfaces idênticas, porém objetos e
implementações diferentes - Propriedade segundo a qual vários métodos podem
exis ir com o mesmo nome mas com comportamento
diferente - Ao receber uma mensagem para efetuar uma
Operação, é o objeto quem determina como a
operação deve ser efetuada - Exemplos
- O operador pode ser usado com inteiros,
pontosflutuantes ou strings. - A operação mover pode atuar diferentemente nas
classes Janela e PeçadeXadrez. - A operação Calcular_Salário atua diferentemente
nas classes funcionario comissionado e
funcionário assalariado
17Conceitos básicos - Relacionamento
- Objetos podem relacionar-se um com o outro
- Uma Pessoa pode possuir Carro, onde o
relacionamento possuir define uma conexão
específica entre Pessoa e Carro - Associação
- um relacionamento que um objeto precisa ter com
outro(s) objeto(s), para cumprir suas
responsabilidades
18Conceitos básicos - Herança
- Mecanismo que permite definir uma nova classe
(subclasse) a partir de uma classe já existente
(super-classe)? - A subclasse herda as características comuns da
superclasse (atributos e métodos)? - A subclasse pode adicionar novos atributos e
métodos, como também reescrever métodos herdados - Quando uma mensagem é enviada para um objeto
- A procura do método correspondente começa pela
classe do objeto - Se o método não for encontrado, a procura
continua na superclasse
19Conceitos básicos - Herança
- A Herança pode ser de dois tipos
- Herança Simples quando uma classe é subclasse
de somente uma superclasse - Herança Múltipla quando uma classe é subclasse
de várias superclasses e, conseqüentemente, herda
as características de cada uma delas
20Conceitos básicos - Herança
21(No Transcript)
22Exercícios
1- Como você define OO? 2- Faça uma analogia
entre o desenvolvimento estruturado e OO. 3- Cite
algumas vantagens de OO. 4- Defina Objeto 5-
Defina Classe 6- Defina atributos 7- Defina
mensagens 8- Como você define Polimorfismo e
Encapsulamento? 9- Qual a diferença entre
associação e Herança? 10- Quais os dois tipos de
herança? 11- Desenhe as seguintes classes com
seus atributos e métodos a) Produtos b)
Aluno c) Pessoa e Pessoa Física (onde pessoa
física é uma subclasse de pessoa)?
23JAVA
Autor Juliano Marcos Martins julianom_at_br.ibm.com
24Métodos de implementação
- Compilação - programa traduzido para linguagem de
máquina (C, PASCAL, COBOL, Ada, etc.) - Interpretação programa fonte interpretado por
outro programa que entende o programa fonte (sh,
awk, LISP, ML, PROLOG, Smalltalk, etc.) - Implementação híbrida Misto de ambos (Perl,
Java, etc.)?
25Compilação
26Compilação
27Interpretação
Programa-fonte
Dados de entrada
Interpretador
Resultados
28Sistema de implementaçãoHíbrido
x.java
javac x.java java x
x.class
JAVA VIRTUAL MACHINE
29A plataforma JAVA
Java é multiplataforma devido a sua JVM!
30Conceitos básicos JAVA - Edições
- JAVA SE
- Standard Edition, indicada para iniciarmos nosso
trabalho com JAVA, contem as APIs padrão - JAVA EE
- Enterprise Edition, indicada para
desenvolvimento de aplicativos corporativos com
suporte a tecnologia tal como EJB. - JAVA ME
- Micro Edition para desenvolvimento em
dispositivos móveis ou embarcados (Celulares,
Geladeiras, etc)?
31Conceitos básicos JAVA
- JDK x JRE
- Java Development Kit Contém todo o instrumental
necessário para desenvolvimento JAVA - Java Runtime Enviroment Basicamente contém a
Java Virtual Machine, o que é necessário para
rodar aplicações Java. - Download http//www.java.com/pt_BR/
- Instalando e configurando
- http//jmmwrite.wordpress.com/2008/07/14/preparaca
o-de-um-ambiente-de-desenvolvimento-java-v2/
32Conceitos básicos JAVA
- JAVAC Java compiler
- JAVA Interpretador Java
- Ambiente de desenvolvimento (IDE)?
- Eclipse, Rational Application Developer, etc?
33Conceitos básicos Hands on JAVA!!!
public class AloMundo public static void
main(String args) System.out.println("Alo
Mundo!!!")
Para rodar javac AloMundo.java java AloMundo
341- Definição e implementação de classes
- As classes automóvel e livro
- Criação de uma classe
- Atributos e métodos
- Visibilidade
- Implementação das classes automóvel e livro
35A Classe automóvel
36(No Transcript)
37Declarando uma Classe
- Definição de uma classe
- modificadores class NomeDaClasse
-
- ....
-
- Exemplos
- public class Automovel
-
-
- public class Livro
-
-
- public class Aluno
-
38Declarando Atributos de Classe
- Definição de um Atributo
- modificadores tipo nomeDoAtributo
inicialização - Exemplos
- private int numero
- public String tamanhoMaximo 15
- private String nome Maria da Silva
- double raio 6.5
- Object o new Object()
39Declarando Métodos
- Definição de um método
- modificadores retorno nomeDoMetodo (
Argumentos ) throws Exeções -
- ...
- return varRetorno
-
- Exemplos
- private void obtemNumeroAlunosTurma ( long
codigoTurma ) ... - public String getNomeAluno( int codigoAluno )
... - public void insereAluno ( String nomeAluno )
throws Exception ... - public long getNumeroInstancias () ...
40Exemplo de Classe
- public class Aluno
-
- String nomeAluno
- int codigoAluno
- public String getNomeAluno()?
-
- return nomeAluno
-
- public void setNomeAluno( String param )?
-
- nomeAluno param
-
- public int getCodigoAluno()?
-
- return codigoAluno
-
- public void setCodigoAluno( int param )?
-
- codigoAluno param
41Construtor da Classe
- Para que um objeto exista é necessário
construí-lo, isto é, dizer para a JVM que é
necessário espaço de memória para criação do
objeto. - Para construir um objeto usa-se o construtor da
classe. - Aluno o1 new Aluno()
- Object o2 new Object()
- Toda classe possui, por default, um construtor
padrão público e sem argumentos. - O construtor default somente é criado quando
nenhum outro construtor for definido pelo
programador. - Uma classe pode ter quantos construtores desejar.
42Declarando Contrutores da Classe
- Definição de um método
- modificador nomeDaClasse ( Argumentos )
throws Exeções -
- ...
-
- Exemplos
- public Turma () ...
- public Turma ( long codigoTurma ) ...
- public Curso( int codigoCurso ) throws Exception
... - public Curso ( String nomeCurso, int codigoCurso
) ... - public Automovel() ...
- public Automovel(String marca, String Dono) ...
43Visibilidade/Modificadores
- Cada um dos elementos que constituem uma classe
possui uma visibilidade (Staa, p. 296) - Visibilidade é a capacidade de um objeto poder
ver ou de ter referência a outro objeto
(Larman, p. 246) - O conceito de visibilidade também é conhecido
como modificadores de acesso.
44Visibilidade
- Os tipos de visibilidade que podem ser
determinados em uma classe para atributos e
operações são - public os elementos são acessíveis por todas
as classes - protected os elementos são acessíveis por
subclasses, ou pela própria classe - private os elementos são acessíveis somente
pela própria classe
45Visibilidade
- Atributos somente deveriam ser acessados pelos
métodos da classe a que pertence - Operações
- Públicas (interface)
- Privadas (internas à classe).
46Classe automóvel
public class Automovel public String
proprietario //Atributos private String
marca private String placa private int
ano public Automovel (String proprietario,
String marca, String placa, int ano)
this.proprietario proprietario
this.marca marca this.placa placa
this.ano ano public void
transferirProprietario(String novoProprietario)
proprietario novoProprietario public
void mudarPlaca (String novaPlaca) placa
novaPlaca
47Classe livro
public class Livro private String
nome private int tombo private String
autor public Livro (String autor, int tombo,
String nome) this.nome nome this.tombo
tombo this.autor autor public
String retornaNomeLivro(int tombo) return
nome
482- Criação de Objetos
- Instanciação (Criação de objetos como instâncias
de classes)?
49(No Transcript)
50Instanciação de um objeto da classe automóvel
public class Automovel public String
proprietario //Atributos private String
marca private String placa private int
ano public Automovel (String proprietario,
String marca, String placa, int
ano)//construtor this.proprietario
proprietario this.marca marca
this.placa placa this.ano ano
public void transferirProprietario(String
novoProprietario)//método para alteração de
proprietário proprietario
novoProprietario
public class Programa public static void
main(String args) Automovel carro1 new
Automovel("Fulano","Volks","BJM3434",1999) Syst
em.out.println(carro1.proprietario) System.out.
println("Alterando proprietário") carro1.transf
erirProprietario("Beltrano") System.out.println
(carro1.proprietario)
51Repassando
- Cria-se a classe, atributos/métodos e seu
construtor - Instancia-se o objeto
- Utiliza-se seus métodos
Definição do construtor
public carros(String modelo) this.modelo
modelo
Uso do construtor
Automovel carro1 new Automovel(GOL")
Invocando métodos
carro1.transferirProprietario("Beltrano")
52(No Transcript)
53Um pouco de prática
- Sistema de biblioteca
- Diagrama de classes
- Aluno (contrutor, etc)?
- Livro (Emprestar livro, consultar emprestimo,
etc)? - Editora
- Implementação em JAVA
- Implementando as classes
- Implementando um programa que instancia objetos
54Exercícios
- Crie um diagrama de classes para um sistema de
Estoque - Implemente em JAVA todas as classes e um programa
que instancie objetos do seu sistema
55No mundo real
- Sistema de controle de estoque
- Classe Produtos
- Vetor de produtos
56Links interessantes
- http//javaalmanac.com/
- http//java.sun.com/javase/downloads/index.jsp -
Previous Releases
57Anexo 1 Modificadores de Classes
- The declaration may include class modifiers,
which affect how the class can be used. - Examples
- public, abstract, final
- public classes
- May be accessed by any java code that can access
its containing package - Otherwise it may be accessed only from within its
containing package - abstract classes
- Can contain anything that a normal class can
contain - Variables, methods, constructors
- Provide common information for subclasses
- Cannot be instantiated
- A class is declared final if it permits no
subclasses.