Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desenvolviment o Orientado ao Objetos Conceitos do desenvolvimento orientado a objetos Profa Ms. Adriane Ap. Loper • Competência da Unidade: entender os conceitos básicos de desenvolvimento Orientada a Objetos. • Resumo: Nesta aula iremos abordar o processo inicial de desenvolvimento para construção de aplicações orientada a objetos. • Palavras-chave: Classe, Objeto,software. • Título da Teleaula: Conceitos do desenvolvimento orientado a objetos • Teleaula nº: 01 Contextualizando Você foi aprovado como estagiário em uma startup que atua no ramo de alta tecnologia. Essa startup presta serviços para diversas empresas diferentes. Recentemente, seu chefe fechou um projeto com um grande portal de e-commerce (portal de venda pela internet). Uma vez que esse portal efetua as vendas de diversos produtos distintos, e uma vez que o volume de vendas dele é muito grande, é necessário um sistema automatizado para auxiliar no transporte dos produtos comprados. Fonte: Shutterstock Contextualizando O seu chefe, inicialmente, propôs desenvolver um robô móvel inteligente para efetuar o transporte autonomamente dos produtos vendidos até uma determinada área destinada ao setor de carregamento da mercadoria. Diante desse grande desafio, o seu chefe escalou você para trabalhar com uma equipe multidisciplinar a fim de resolver esse problema. A equipe com que você trabalha é composta, principalmente, por: engenheiros, cientistas da computação, profissionais de marketing e equipe de vendas. Fonte: Shutterstock Contextualizando O seu chefe designou a equipe para desenvolver as estruturas de dados do sistema robótico e a demonstração da aplicação, dando apoio ao marketing e à equipe de vendas, enquanto o produto físico (hardware do robô) está em desenvolvimento pelos engenheiros. Essa demonstração da aplicação será feita por um simulador para esse robô móvel inteligente que demostre as funcionalidades deste. Foi solicitado a você desenvolver esse simulador em Java com a utilização das boas práticas da OO. Fonte: Shutterstock Conceitos Conceitos básicos de orientação a objetos em programação Conceitos Paradigma = modelo, padrão. Em paradigma de orientação a objetos = uma maneira, um estilo de se programar. O computador recebe, processa e disponibiliza nomes, valores, fórmulas e textos que, de forma genérica, chamamos de dados. Tudo isso, por meio de um programa. Santos (2003) nos ensina que o paradigma de programação orientada a objetos considera que os dados a serem processados e os mecanismos de processamento desses dados devem ser considerados em conjunto. Paradigmas da programação A programação orientada a objetos (POO) é um paradigma de programação que utiliza abstrações para representar modelos baseados no mundo real. Uma forma de entender a orientação a objetos (OO) é pensar nela como uma evolução da programação procedural. Fonte: Autora Quatro Pilares da OO CLASSE, OBJETO, ATRIBUTO E MÉTODO CLASSE E OBJETO Um dos elementos mais básicos da OO é a ideia de organizar o código em classes que representam algo do mundo real ou imaginário. Um outro elemento básico dentro da OO é a ideia de objeto, que nada mais é do que a manifestação concreta, também chamado de instância, da classe. Classe e objeto A fim de entender melhor o conceito de classe, vamos pensar na entidade robô. Caso você tenha apenas imaginado um robô abstrato, sem forma física, que é uma máquina capaz de tomar decisões por si mesma, então você agiu corretamente. Se você imaginou um robô físico, como um robô na cor azul que anda sobre esteira, com dois braços e uma antena, então você não pensou no conceito de robô, mas sim em uma manifestação física possível de robô. Classe e objeto Lembre-se: a ideia de robô é abstrata, assim como são as classes em Java. Uma boa forma de compreender uma classe é pensar nela como o projeto ou a modelagem de algo. Caso tenha imaginado algo concreto, então você pensou em um objeto, que é uma manifestação possível da ideia de robô, semelhantemente à ideia de objeto em Java. Esses objetos são instâncias da classe robô. Fonte: Autora Atributo Os principais elementos que compõem uma classe são os atributos e os métodos. Um atributo é um elemento que representa as características intrínsecas da classe. O robô: suponhamos que, para caracterizarmos alguns robôs, os seguintes atributos possam ser criados: nome, cor, velocidade máxima, nível atual da bateria, peso da carga máxima suportada, tipo de tração, e presença ou não de antena. Atributo A ideia de classe, é semelhante à ideia de registro (struct) na linguagem C, uma vez que esses atributos da classe são semelhantes aos campos (variáveis) de um registro. Os diversos campos de um registro são acessados por um único ponteiro, assim como os atributos da classe são acessados por um único objeto. Fonte: Autora Método Um outro elemento importante de uma classe são os métodos. Um método dá ao objeto da classe a capacidade de executar algum tipo de ação, comportamento ou processamento. Um robô é capaz de executar uma série de ações – o nosso robô modelado é capaz de se mover, pegar caixas, entregar as caixas e até mesmo falar. Fonte: Autora Impressão System.out.println, que imprime e pula de linha. System.out.print para fazer a impressão sem pular linhas. System.out.printf que recebe dois argumentos: o primeiro, um literal, para formatação da impressão, e, outro, uma lista com os objetos a serem impressos. System.out.printf é semelhante ao comando printf em C. Um operador muito comum utilizado na concatenação de literais (Strings) em Java é o operador ‘+’. Resolução da SP Modelagem do robô Robô a ser projetado de Robô Autônomo Transporte de Mercadoria – Nome: (R-ATM). Será do tipo esteira e possuirá braços robóticos para captura das caixas. Peso de aproximadamente 70 kg, e sua velocidade de deslocamento máxima atingirá por volta de 5 m/s. Capacidade de carga máxima em torno de 20 kg. Vai operar em uma sala plana retangular. O robô saberá por tecnologia de rádio, a própria localização em tempo real. Suas coordenadas x, y.. Atributos: nome, peso, velocidadeMax, pesoCargaMax, tipoTracao, posicaoX, posicaoY Conceitos Introdução à Aplicações Orientadas a Objetos Contextualizando Você fará uma animação utilizando alguma ferramenta 3D que simule um robô andando em uma sala retangular. Usaremos a ferramenta Alice. As principais funcionalidades que a animação deve contemplar são: O robô deve se mover. O robô deve fazer o reconhecimento do cenário. O robô deve sair de um local de origem e chegar até um local contendo caixas. O robô deve conseguir identificar os conteúdos das caixas. Animações e jogos 3D com POO - Alice O software Alice é uma ferramenta que auxilia no ensino e aprendizagem de programação (DANN et al., 2012). Essa ferramenta permite que programadores novos criem animações e jogos usando ambientes 3D de forma fácil, apresentando a OO de maneira bastante lúdica. Vamos conhecer o software Alice? Nesta seção utilizaremos o software Alice 3, em específico a versão Alice 3.5.0. Acesse o site dessa ferramenta (CARNEGIE MELLON UNIVERSITY, [s.d.]), Animações e jogos 3D com POO - Alice baixe e efetue sua instalação. Alice usa uma linguagem de blocos construída sobre a linguagem Java, e focamos, em geral, a criação de animações tridimensionais Outro ponto a ser destacado é que após a instalação do Alice pode ser necessária a instalação do Java Development Kit (JDK) caso você não disponha do JDK instalado. O download do JDK pode ser feito no site de download do Java (ORACLE, 2020). O Alice é uma ferramenta gratuita e multiplataforma. Ferramenta Alice Ferramenta Alice Ferramenta Alice Alguns elementos principais disponíveis nesse ambiente são: A tela gráfica da cena montada. O botão para configuração da cena (setup scene). Os procedimentos previamente desenvolvidos. A área destinada aodesenvolvimento de código. Entre os elementos principais presentes nessa tela: O componente que está selecionado. O botão para iniciar a execução. As classes de objetos disponíveis. As propriedades do componente selecionado. Resolução da SP Funções do robô com Alice Analisando a solução mostrada, podemos reparar que o único objeto que se move na cena é a câmera. Isso fornece o efeito de que o robô está se deslocando na cena. Ao utilizar o método turn associado à câmera, o efeito é que o robô está fazendo o reconhecimento do cenário. Assim que o robô chega nas caixas, ele verifica cada uma delas, olhando o seu conteúdo. A forma que você utilizou para demostrar o reconhecimento do conteúdo das caixas é alterando as cores das caixas e colocando uma mensagem associada a cada uma delas. Então você decide mostrar a animação ao seu chefe. Ele gostou bastante da animação, que é apresentada para a empresa de e-commerce. A empresa adorou a demonstração das funcionalidades básicas do robô e está bastante animada com o andamento do projeto Interação Entenderam as definições básicas de POO? Conceitos Visão de game em programação orientada a objetos A LINGUAGEM OO NA CRIAÇÃO DE JOGOS 2D Com a ferramenta Greenfoot, podemos criar jogos com diversos personagens controlados por inteligência artificial simples. Uma das vantagens do Greenfoot é que ele permite fazer a criação de jogos e animações bidimensionais de forma bastante simples rapidamente. O Greenfoot tem sido utilizado no ensino de programação em diversas universidades. A LINGUAGEM OO NA CRIAÇÃO DE JOGOS 2D Como fazer essas instruções? O robô deve se mover. O robô deve evitar regiões da sala em que existem máquinas trabalhando. O robô não pode se deslocar sobre as caixas presentes no cenário. O robô deve dispor de duas velocidades de deslocamento. A sala deve ter um formato retangular. A visualização do robô deve ser em terceira pessoa. A LINGUAGEM OO NA CRIAÇÃO DE JOGOS 2D Você quer criar um jogo e que nesse jogo existem diversos personagens controlados por alguma inteligência artificial simples (bots). Nesse jogo também há um personagem que você pode controlar, além dos objetos que compõem o cenário. Imagine, agora, que queremos desenvolver esse jogo não em uma linguagem de blocos, mas utilizando uma linguagem de programação tradicional, como o Java. A LINGUAGEM OO NA CRIAÇÃO DE JOGOS 2D Uma das formas de fazer isso é programando manualmente todas as telas gráficas do jogo 2D, utilizando alguma biblioteca gráfica do Java. Outra forma é utilizando alguma ferramenta que abstraia os detalhes de interface, e você se desenvolve apenas as regras do jogo. É exatamente isso que o Greenfoot faz. Conheceremos agora essa ferramenta que auxilia de forma imensa no processo de criação de jogos e animações. O Greenfoot é chamado de Ambiente de Desenvolvimento Integrado (IDE) para a linguagem Java. A LINGUAGEM OO NA CRIAÇÃO DE JOGOS 2D Utilizaremos o software Greenfoot, versão Greenfoot 3.6.1. Você pode acessá-la em Greenfoot ([s.d.]a), baixar e efetuar sua instalação. Outro ponto a ser destacado é que, após a instalação do Greenfoot, pode ser necessária a instalação do Java Development Kit (JDK), caso você tenha o JDK instalado. O download do JDK pode ser feito no site da Oracle (2020). O Greenfoot é uma ferramenta gratuita e multiplataforma. Greenfoot Tela de trabalho: Fonte : A autora Greenfoot Passos para criação/inserção de um cenário de fundo e um personagem: Fonte : A autora Resolução da SP Relatório O primeiro passo que deve ser feito é a definição de como deve ser a sala/galpão, em que você especifica onde deverão ficar cada um dos itens do jogo. O próximo passo é baixar algumas imagens de caixas, pois o Greenfoot não dispõe de nenhuma do seu agrado. Você decide também desenvolver as próprias imagens de robô, pois o Greenfoot não tem nenhuma do seu agrado. Assim, você desenvolve quatro imagens do robô, cada uma associada ao deslocamento para um dos lados (baixo, frente, esquerda e direita). A este tipo de imagens utilizadas em jogos damos o nome de sprite. Após resolvida a questão das imagens a serem utilizadas, chega-se a uma solução . Essa imagem mostra o cenário e os atores criados, bem como as suas posições. Cenário da situação-problema com os atores. Trechos de códigos implementados para resolver o problema de deslocamento do robô por algumas regiões do cenário. Essa figura mostra também o código utilizado para fazer a mudança de velocidade do robô, acionada pela tecla espaço. Conceitos Estruturas de programação orientadas a objetos Programação Orientada a Objetos - Ferramentas A utilização do ambiente de desenvolvimento on- line Jdoodle, por ter utilização simples, prática e direta. Dessa forma, abra o site www.jdoodle.com/online-java-compiler/ Instância • Representa cada ocorrência de um OBJETO de uma CLASSE. Nome da classe: Funcionario • Atributos: matricula, nome, cpf, telefone, sexo, idade..... Funcionário Matricula: 123 Nome: “João” Dt Nascimento: 22/03/1979 CPF: 999.999.999-9 Telefone: “43 – 9999-9999” Endereço: “Rua Brasil, 10” Cidade: “Londrina” Funcionário Matricula: 123 Nome: “João” Dt Nascimento: 22/03/1979 CPF: 999.999.999-9 Telefone: “43 – 9999-9999” Endereço: “Rua Brasil, 10” Cidade: “Londrina” InstânciaInstância Operações Uma ação que o objeto executa. As operações são responsáveis por efetivar as ações de uma classe. Fonte, o autor, 2019 Atividade Crie uma classe Funcionario e inclua uma operação. • Nome da operação: calcSalario() • Tipo: void • Parâmetros: salário do funcionário, tipo: double. Crie também o método no código-fonte. Interação Entenderam como iniciar a programação Java? Recapitulando Conceitos do desenvolvimento da orientação a objetos: Conceitos básicos de orientação a objetos em programação; Introdução à aplicações de orientação a objetos; Uma visão de Game em POO.
Compartilhar