A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos

Apresentações semelhantes


Apresentação em tema: "05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos"— Transcrição da apresentação:

1 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com

2 Programação Orientada a Objetos I 2/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Programação procedural

3 Programação Orientada a Objetos I 3/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Introdução a Objetos

4 Programação Orientada a Objetos I 4/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Introdução a Objetos

5 Programação Orientada a Objetos I 5/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008

6 Programação Orientada a Objetos I 6/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008

7 Programação Orientada a Objetos I 7/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Conceitos básicos - Abstração Carro, Livro, Aluno, etc

8 Programação Orientada a Objetos I 8/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 9/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 10/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 11/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 12/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Conceitos básicos - Represetação

13 Programação Orientada a Objetos I 13/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 14/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 15/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Conceitos básicos – Mensagem e métodos

16 Programação Orientada a Objetos I 16/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 17/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 18/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 19/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 20/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Conceitos básicos - Herança

21 © 2006 IBM Corporation Welcome 21

22 Programação Orientada a Objetos I 22/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 05/01/2008 JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com

24 Programação Orientada a Objetos I Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Compilação

26 Programação Orientada a Objetos I Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Compilação

27 Programação Orientada a Objetos I Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Interpretação Programa- fonte Interpretador Resultados Dados de entrada

28 Programação Orientada a Objetos I Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Sistema de implementação Híbrido JAVA VIRTUAL MACHINE x.java x.class javac x.java java x

29 Programação Orientada a Objetos I Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 A plataforma JAVA Java é multiplataforma devido a sua JVM!

30 Programação Orientada a Objetos I 30/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 31/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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/preparacao-de-um-ambiente- de-desenvolvimento-java-v2/

32 Programação Orientada a Objetos I 32/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Conceitos básicos JAVA JAVAC: Java compiler JAVA: Interpretador Java Ambiente de desenvolvimento (IDE) – Eclipse, Rational Application Developer, etc

33 Programação Orientada a Objetos I 33/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 34/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 1- Definição e implementação de classes As classes automóvel e livro As classes automóvel e livro Criação de uma classe Criação de uma classe Atributos e métodos Atributos e métodos Visibilidade Visibilidade Implementação das classes automóvel e livro Implementação das classes automóvel e livro

35 Programação Orientada a Objetos I 35/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 A Classe automóvel

36 Programação Orientada a Objetos I 36/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 A Classe Livro Livro Titulo Autor Tombo Editora Empresta Devolve Reserva Cadastra Consulta

37 Programação Orientada a Objetos I 37/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Declarando uma Classe Definição de uma classe: [modificadores] class NomeDaClasse {.... } Exemplos: public class Automovel { } public class Livro { } public class Aluno { }

38 Programação Orientada a Objetos I 38/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 39/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 40/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 41/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 42/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 43/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 44/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 45/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Visibilidade Atributos: somente deveriam ser acessados pelos métodos da classe a que pertence; Operações: – Públicas (interface); – Privadas (internas à classe).

46 Programação Orientada a Objetos I 46/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 47/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 48/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 2- Criação de Objetos Criação de objetos como instâncias de classes)Instanciação (Criação de objetos como instâncias de classes)

49 Programação Orientada a Objetos I 49/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Criando um objeto Temos uma classe em Java, que especifica o que todo objeto dessa classe deve ter. Mas como usá- la? Além dessa classe ainda teremos o Programa.java, e a partir dele é que iremos utilizar a classe automóvel. Para criar (construir, instanciar) um Automóvel, basta usar a palavra chave new seguida do nome da classe: class Programa { public static void main(String[] args) { new Automovel(); } O código acima cria um objeto do tipo Automóvel, mas como acessar esse objeto que foi criado? Precisamos ter alguma forma de nos referenciar a esse objeto. Precisamos de uma variável: class Programa { public static void main(String[] args) { Automovel meu_carro; meuCarro = new Automovel(); } Automovel meuCarro = new Automovel();

50 Programação Orientada a Objetos I 50/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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); System.out.println(carro1.proprietario); System.out.println("Alterando proprietário"); carro1.transferirProprietario("Beltrano"); System.out.println(carro1.proprietario); }; }

51 Programação Orientada a Objetos I 51/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 public carros(String modelo) { this.modelo = modelo; } Automovel carro1 = new Automovel(GOL"); Uso do construtor Definição do construtor Repassando: Cria-se a classe, atributos/métodos e seu construtor Instancia-se o objeto Utiliza-se seus métodos carro1.transferirProprietario("Beltrano"); Invocando métodos

52 © 2006 IBM Corporation Welcome 52

53 Programação Orientada a Objetos I 53/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 54/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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 Programação Orientada a Objetos I 55/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 No mundo real Sistema de controle de estoque Classe Produtos Vetor de produtos

56 Programação Orientada a Objetos I 56/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 Links interessantes http://javaalmanac.com/ http://java.sun.com/javase/downloads/index.jsp - Previous Releases http://java.sun.com/javase/downloads/index.jsp

57 Programação Orientada a Objetos I 57/55 Juliano Marcos Martins – julianom@br.ibm.com 05/01/2008 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.


Carregar ppt "05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos"

Apresentações semelhantes


Anúncios Google