Baixe o app para aproveitar ainda mais
Prévia do material em texto
Implementação Orientada a Objetos - IOO Marcia Bissaco Universidade de Mogi das Cruzes 1 2/2020 1 Graduação, pós-graduação Disciplinas que ministra Áreas de interesse marciab@umc.br http://lattes.cnpq.br/7308927546311934 Apresentação do Docente 2 2 Implementação Orientada a Objetos - IOO Marcia A. S. Bissaco Universidade de Mogi das Cruzes Plano de Ensino 3 3 Ao final do semestre, o aluno deverá ter aprendido quais os conceitos básicos da técnica de programação orientada a objetos e quais as características de uma linguagem de programação orientada a objetos. O aluno deverá também ter adquirido habilidades e competências para desenvolver programas de baixa complexidade usando a linguagem Java. Objetivo 4 Plano de Ensino 4 Histórico e evolução das técnicas de programação. Conceitos de implementação orientada a objetos. Linguagens de programação orientadas a objetos. Ferramentas para desenvolvimento de aplicações orientadas a objetos e introdução a linguagem orientada a objetos (Java). Implementação de classes, atributos e métodos. Trabalhando com objetos. Tipos primitivos e classes relacionadas. Operadores. Estruturas condicionais e de repetição. Encapsulamento e modificadores de acesso. Herança simples. Polimorfismo. Pacotes. Tratamento de exceções. Ementa 5 Plano de Ensino 5 Introdução à Orientação a Objetos: Evolução dos paradigmas e técnicas de programação. Conceitos de implementação orientada a objetos. Linguagens de programação orientadas a objetos e introdução à linguagem Java. Tipos primitivos e operadores. Classes e Objetos. Atributos e Métodos. Assinatura e chamada de métodos. Encapsulamento e modificadores de acesso. Métodos construtores e sobrecarga (overload) de métodos. Conteúdo programático 6 Plano de Ensino 6 Métodos construtores e sobrecarga (overload) de métodos. Métodos estáticos e conversão de tipos Agregação e composição de objetos Herança e Polimorfismo. Classes abstratas e sobrescrita (overwrite) de métodos. Pacotes. Tratamento de exceções Conteúdo programático 7 Plano de Ensino 7 Conceitos de classe-objeto; Atributos, métodos; Herança; Conceitos de public, private protected; Encapsulamento; Relação generalização-especialização; Polimorfismo; Troca de mensagens entre objetos. Conceitos 8 Plano de Ensino 8 Aulas teóricas e práticas. Apresentação dos conceitos e fixação através de exercícios no computador. Implementação de um projeto que consiste em uma aplicação envolvendo os conceitos de orientação a objetos estudados. Metodologia 9 Plano de Ensino 9 A avaliação do desempenho do aluno referente aos conceitos explicados e implementados no laboratório será realizada através de 2 avaliações escritas (compondo 85% da nota). A avaliação da capacidade do aluno em resolver problemas será realizada através dos desafios solicitados (compondo 15%). Forma de avaliação 10 Plano de Ensino 10 Bibliografia Básica Pádua, W, P. F. “Engenharia de Software”. Fundamentos, métodos e padrões. Editora: LCT, 2001. Santos Neto, ANTONIO GONÇALVES DOS. Java na Web. 1. Rio de Janeiro / Ciência Moderna, 2011. WINDER, Russel; ROBERTS, Graham.; Desenvolvendo software em Java (3ª Ed); http://online.minhabiblioteca.com.br/#/books/978-85-216-1994-9/pages/67068701 RUTTER, Jake. Smashing jQuery: Interatividade Avançada com JavaScript Simples, Bookman, 2012. <http://online.minhabiblioteca.com.br/books/9788540701359>. Bibliografia 11 Plano de Ensino 11 Bibliografia complementar ARNOLD, Ken ; GOSLING, James ; HOLMES, David. A Linguagem de Programação Java, 4ª edição, Bookman, 2007. <http://online.minhabiblioteca.com.br/books/9788560031610>. ROMAN, Ed; AMBLER, Scott W.; JEWELL, Tyler . Dominando Enterprise Javabeans, 2ª Edição, 2004. Minha Biblioteca. Web. 20 November 2013 <http://online.minhabiblioteca.com.br/books/9788577804061>. BARNES, D.; KÖLLING, Michael. Programação orientada a objetos com Java: uma introdução prática usando o Blue J. São Paulo: Pearson Prentice Hall, 2004. 368 p. + 1 CD-ROM ISBN 8776050129. Número de Chamada: 005.133 B261p Bibliografia 12 Plano de Ensino 12 Bibliografia complementar BRAUDE, Eric . Projeto de Software: Da programação à arquitetura: Uma abordagem baseada em Java, 2005. Minha Biblioteca. Web. 20 November 2013 <http://online.minhabiblioteca.com.br/books/9788577802111>. GOODRICH, Michael T. ;TAMASSIA, Roberto . Estruturas de Dados e Algoritmos em Java, 4ª edição, 2011. Minha Biblioteca. Web. 20 November 2013 <http://online.minhabiblioteca.com.br/books/9788577800834>. Bibliografia 13 Plano de Ensino 13 Bibliografia complementar Booch, G; Rumbaugh, J. ; Jacobson, I.” UML -Guia do usuário”. Editira Campus. 1999. Cay S. ; Horstmann; Gary Cornell “ Core Java – Volume I – Fundamentals”. Sun Microsystems Press. 1999. Cay S. ; Horstmann; Gary Cornell “ Core Java – Volume I – Fundamentals”. Sun Microsystems Press. 1999. Deitel, H. M.; Deitel, P. J. “Java como programar”. Editora Bookman 2000. Coad, P, Yourdon, E, Análise baseada em objetos. Editora Campus – 1992. Coad, P, Yourdon, E, Projeto baseada em objetos. Editora Campus 1993. Coad, P. ; Nicola, J. Object-oriented Programming. Editora Yourdon Press- 1993. Bibliografia 14 Plano de Ensino 14 Bibliografia complementar www.caelum.com.br (java e orientação a objetos – FJ 11) http://www.guj.com.br/ (site voltado para perguntas e respostas técnicas e objetivas na área de T.I. e programação.) http://java.sun.com/java2/whatis/1996/storyofjava.html (História do Java) http://java.sun.com/docs/codeconv/ (convenções do Java) Bibliografia 15 Plano de Ensino 15 Avaliação 1 ( __/__/2020) Avaliação 2 ( __/__/2020) Projeto ( __/__/2020) Exercício (semanal) Datas importantes 16 16 Implementação Orientada a Objetos - IOO Marcia A. S. Bissaco Universidade de Mogi das Cruzes Aula 1 17 17 O conteúdo desta apresentação contem também contribuições dos seguintes professores: Danielle Martins Pedro Toledo Rodrigo Rocha Créditos 18 18 Ferramentas a serem utilizadas Ferramentas de trabaljo 19 19 Ferramentas de trabalho Documentação: Diagramas UML ( Implementação/execução: Linguagem java Editor de código: Bloco de notas ou Notepad ++ IDE: NetBeans Termo/Expressão Descrição JRE Java Runtime Environment. Instala a JVM para execucao de classes Java JDK Java Development Kit. API para desenvolvedores. Inclui compilador JVM Java Virtual Machine Estão relacionados com as seguintes perguntas: O que é Orientação a objetos? O que é paradigma? O que são classes, objetos, métodos e atributos? Conceitos Básicos 21 Avaliação Diagnóstica 21 O que é Orientação a objetos? Conceito: O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos; Conceitos Básicos 22 22 Algumas linguagens orientadas a objetos Smalltalk; Object Pascal (DELPHI); C++; C#; Java; Visual Basic; Python; Ruby; Objective C. Conceitos Básicos 23 23 O que é paradigma? Conceito: “Paradigma é um conjunto de regras que estabelecem fronteiras e descreve como resolver os problemas dentro destas fronteiras.” Os paradigmas influenciam nossa percepção; ajudam nos a organizar e a coordenar a maneira como olhamos para o mundo... Conceitos Básicos 24 24 O que é paradigma? Mudança de enfoque: programação estruturada programação Orientada a Objetos (POO) Conceitos Básicos 25 Código fonte organizado em blocos/módulos Functions e procedures Execução linear Código extenso e confuso Goto e Gosub Difícil reutilização de código Abstração de entidades do mundo real em entidades de código Quebra deum problema grande em pequenos problemas coesos Facilidade de criação / manutenção Focado em reuso 25 O que é paradigma? Mudança de enfoque: programação estruturada programação Orientada a Objetos (POO) Conceitos Básicos 26 Linguagens Orientadas a Objetos Linguaguens Tradicionais Objeto Valor Classe Tipo Mensagem Chamada de Procedimento Método Procedimento ou Função 26 O que é paradigma? Mudança de enfoque: programação estruturada programação Orientada a Objetos (POO) Conceitos Básicos 27 Foco no Sistema Foco na Classe 27 POO resolve todos os problemas? Programação Estruturada resolvia? Reflexão 28 28 O que é Objeto? Conceito: Algo que possui características, comportamento (que estado definem um estado ao longo do tempo) Conceitos Básicos 29 29 O que é Objeto? Coisas tangíveis, Eventos e Transação. Coisas Tangíveis: Livro, Telefone ; Eventos: Copa do mundo, Simpósio; Transação: Um contrato, Um pedido de compra. Todo objeto é uma instância de uma Classe. Conceitos Básicos 30 30 O que é Objeto? Em IOO também podemos dizer que objetos são pacotes de software compostos de dados e procedimentos, sendo que: procedimentos atuam sobre os dados; dados determinam o estado do objeto. Conceitos Básicos 31 31 O que é classe? Conceito: uma classe é a abstração de um conjunto de objetos com características semelhantes. Conceitos Básicos 32 32 O que é classe? Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. De forma geral uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar. Conceitos Básicos 33 33 O que é classe? Em IOO podemos dizer que classe é uma entidade de código que abstrai uma entidade do mundo real, agrupando suas características e comportamentos comuns. A classe associa comportamentos (métodos/funções/ações) e características (atributos/ dados/propriedades) controlando o acesso a estes. Classe é um tipo definido que contém o molde (a especificação) para os objetos como, por exemplo, o tipo inteiro contém o molde para as variáveis declaradas como inteiros. É um formatador de objetos. Conceitos Básicos 34 34 Mudança de paradigma: Exemplo: Sistema medico (Paradigma estruturado) Conceitos Básicos 35 Medico Paciente Consulta nome CRM nome telefone idade data horario local cadastrar inativar cadastrar consultar agendar Entidades: Características: Comportamentos: 35 Mudança de paradigma: Exemplo: Sistema medico (mudando de paradigma) Conceitos Básicos 36 Medico Paciente Consulta nome CRM nome telefone idade data horario local cadastrar inativar cadastrar consultar agendar Entidades: Características: Comportamentos: 36 Mudança de paradigma: Exemplo: Sistema médico (Paradigma Orientado a Objetos; notação UML) Conceitos Básicos 37 Classes: Atributos: Métodos: Medico nome CRM cadastrar inativar Consulta data horario local agendar Paciente nome telefone idade cadastrar Consultar 37 Resumindo..... Objeto é uma instância de uma classe; Vários objetos podem ser gerados a partir de uma classe; O objeto tem o mesmo formato da classe que o gerou; Os atributos recebem valores individuais, que tornam o objeto único; Existe somente em tempo de execução. Conceitos Básicos 38 Consulta data: 10/11/2013 horario: 08:30 local: sala 6 agendar Medico nome: João CRM: 123456 cadastrar inativar Paciente nome: Maria telefone: 4724-1234 idade: 35 cadastrar consultar Paciente nome: Ana telefone: 4799-4321 idade: 42 cadastrar Consultar Medico nome: Jose CRM: 123444 cadastrar inativar 38 Modelagem de todas as classes de um sistema Classes codificadas em Java Conceitos Básicos Quais classes poderiam ser criadas para os Sistema seguintes? De uma escola De uma transportadora De uma editora de livros Exercício para fixação Poderiam ser criadas as classes seguintes: De uma escola Professor, Aluno, Disciplina, Turma, Série, Aula, Boletim, Matrícula, PlanoDeEnsino De uma transportadora Veículo, Motorista, Cidade, Rota, Frota, Carga, NotaFiscal De uma editora de livros Livro, Autor, Capítulo, Editor, Revisor, Revisão, Capa, Índice, Ilustrador, Tradutor, Edição Exercício para fixação Liguagem de programação Java Lançada em 1996, pela empresa Sun Adquirida pela Oracle em 2009 Globalmente utilizada – 3 bilhões de dispositivos Linguagem Compilada e Interpretada Independência de plataforma Solução: Java Virtual Machine (JVM) JRE – Java Runtime Environment Instala a JVM para execucao de classes Java JDK – Java Development Kit API para desenvolvedores Inclui compilador NetBeans ou bloco de notas e CMD Implementação Usando o NetBeans Abra o NetBeans Crie um projeto (projAloMundo) e uma classe principal (AloMundo) Digite o seguinte texto no corpo do método main: System.out.println("Alo Mundo..."); Salve tudo. No diretório do NetBeans será criado um arquivo com um nome igual ao da classe. Implementação PROGRAMACLASSE PROCESSOS DADOS ATRIBUTOS MÉTODOS ActorClass
Compartilhar