IBM Presentations: Blue Pearl Deluxe template - PowerPoint PPT Presentation

1 / 57
About This Presentation
Title:

IBM Presentations: Blue Pearl Deluxe template

Description:

Programa o Orientada a Objetos usando JAVA Autor: Juliano Marcos Martins julianom_at_br.ibm.com Programa o procedural Introdu o a Objetos Introdu o a Objetos ... – PowerPoint PPT presentation

Number of Views:216
Avg rating:3.0/5.0
Slides: 58
Provided by: camilolop
Category:

less

Transcript and Presenter's Notes

Title: IBM Presentations: Blue Pearl Deluxe template


1
Programação Orientada a Objetos usando JAVA
Autor Juliano Marcos Martins julianom_at_br.ibm.com
2
Programação procedural
3
Introdução a Objetos
4
Introdução a Objetos
5
(No Transcript)
6
(No Transcript)
7
Conceitos básicos - Abstração
Carro, Livro, Aluno, etc
8
Conceitos 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

9
Conceitos 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

10
Conceitos 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

11
Conceitos 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

12
Conceitos básicos - Represetação
13
Conceitos 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

14
Conceitos 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

15
Conceitos básicos Mensagem e métodos
16
Conceitos 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

17
Conceitos 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

18
Conceitos 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

19
Conceitos 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

20
Conceitos básicos - Herança
21
(No Transcript)
22
Exercí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)?
23
JAVA
Autor Juliano Marcos Martins julianom_at_br.ibm.com
24
Mé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.)?

25
Compilação
26
Compilação
27
Interpretação
Programa-fonte
Dados de entrada
Interpretador
Resultados
28
Sistema de implementaçãoHíbrido
x.java
javac x.java java x
x.class
JAVA VIRTUAL MACHINE
29
A plataforma JAVA
Java é multiplataforma devido a sua JVM!
30
Conceitos 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)?

31
Conceitos 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/

32
Conceitos básicos JAVA
  • JAVAC Java compiler
  • JAVA Interpretador Java
  • Ambiente de desenvolvimento (IDE)?
  • Eclipse, Rational Application Developer, etc?

33
Conceitos 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
34
1- 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

35
A Classe automóvel
36
(No Transcript)
37
Declarando uma Classe
  • Definição de uma classe
  • modificadores class NomeDaClasse
  • ....
  • Exemplos
  • public class Automovel
  • public class Livro
  • public class Aluno

38
Declarando 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()

39
Declarando 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 () ...

40
Exemplo 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

41
Construtor 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.

42
Declarando 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) ...

43
Visibilidade/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.

44
Visibilidade
  • 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

45
Visibilidade
  • Atributos somente deveriam ser acessados pelos
    métodos da classe a que pertence
  • Operações
  • Públicas (interface)
  • Privadas (internas à classe).

46
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)
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
47
Classe 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
48
2- Criação de Objetos
  • Instanciação (Criação de objetos como instâncias
    de classes)?

49
(No Transcript)
50
Instanciaçã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)
51
Repassando
  • 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)
53
Um 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

54
Exercí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

55
No mundo real
  • Sistema de controle de estoque
  • Classe Produtos
  • Vetor de produtos

56
Links interessantes
  • http//javaalmanac.com/
  • http//java.sun.com/javase/downloads/index.jsp -
    Previous Releases

57
Anexo 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.
Write a Comment
User Comments (0)
About PowerShow.com