Prévia do material em texto
Estácio Teresina Curso de Ciência da Computação Programação Orientada a Objetos em JAVA Aula 2 – Introdução à programação em JAVA Joselito Mendes de Sousa Junior Situação Problema Abstrair um problema é parte importante do processo de desenvolvimento de software, dessa forma, quanto mais próximo da realidade de um programador, que é um ser humano, o problema a ser resolvido possa ser representado, melhor será o seu entendimento e consequentemente, a implementação torna-se mais simples e inteligível para todos os envolvidos no processo de desenvolvimento, inclusive do cliente para o qual o programa está sendo desenvolvido. Vamos analisar a seguinte situação: Um programador é contratado para desenvolver um software para uma empresa de produtos de beleza, e o software em questão possui vários módulos; como o responsável pelo Recursos Humanos da Empresa, controle de estoque, marketing, controle da frota de caminhões. Todos esses módulos funcionam como peças de um todo, mesmo sendo independentes; sendo assim, diversos programadores poderiam trabalhar de forma independente em cada um dos módulos. Além disso, seria possível adquirir módulos prontos sem ao menos conhecer a implementação deles, utilizando apenas interfaces de comunicação. Quais as vantagens você enxerga nesse tipo de abordagem em relação ao paradigma estruturado? Levante questões em relação ao tempo de desenvolvimento, custos, reuso entre outras que achar pertinente. 2 Conceitos Iniciais Orientação a objetos (OO) = paradigma de programação Estruturado, funcional, ... Em OO, os problemas são resolvidos pensando em interações entre diferentes objetos Estruturado, por exemplo, os problemas são decompostos em procedimentos/funções que somadas farão um programa Escrever um código em OO objetiva transformar os objetos do mundo real em linhas de código, tornando-os parte deste 3 Programação Orientada a Objetos Programação orientada a objetos, ou POO: “Dizemos que um objeto encapsula a lógica de negócios concentrando a responsabilidade em pontos únicos do sistema, viabilizando um maior reuso do código pela modularidade dessa abordagem.” (Batista, 2013) 4 Benefícios da abordagem OO Modularidade: uma vez criado, um objeto pode ser passado por todo o sistema. Encapsulamento: detalhes de implementação ficam ocultos externamente ao objeto. Reuso: uma vez criado, o objeto pode ser utilizado em outros programas. Manutenibilidade: manutenção é realizada em pontos específicos do programa. 5 Estruturação Para entender bem o paradigma de POO, é importante ter domínio de quatro definições Um modelo pode representar objetos, atributos e métodos Um conjunto de modelos pode representar uma classe. 6 Classes Objetos Atributos Métodos Estruturação Por exemplo, consideremos uma lâmpada e um modelo para representá-la: Lampada é o objeto, ou seja, a representação do mundo real. estadoDaLampada é o atributo, ou seja, a informação ou dado básico deste objeto do mundo real que queremos guardar. acende (), apaga (), mostraEstado() são os métodos, ou seja, operações que podemos realizar na lâmpada. 7 Lampada - estadoDaLampada - acende () - apaga () - mostraEstado () Estruturação 8 Apple iPhone 14 PlusSamsung Galaxy S22 Ultra Cor = preto fosco Preço = R$ 6.000,00 Armazenamento = 128 GB Wireless PowerShare Nightography Cor = preto espacial Preço = R$ 8.699,00 Armazenamento = 128 GB Detecção de Acidente Dynamic Island Estruturação 9 Apple iPhone 14 PlusSamsung Galaxy S22 Ultra Cor = preto fosco Preço = R$ 6.000,00 Armazenamento = 128 GB Wireless PowerShare Nightography Cor = preto espacial Preço = R$ 8.699,00 Armazenamento = 128 GB Detecção de Acidente Dynamic Island OBJETOS Estruturação 10 Apple iPhone 14 PlusSamsung Galaxy S22 Ultra Cor = preto fosco Preço = R$ 6.000,00 Armazenamento = 128 GB Wireless PowerShare Nightography Cor = preto espacial Preço = R$ 8.699,00 Armazenamento = 128 GB Detecção de Acidente Dynamic Island ATRIBUTOS Estruturação 11 Apple iPhone 14 PlusSamsung Galaxy S22 Ultra Cor = preto fosco Preço = R$ 6.000,00 Armazenamento = 128 GB Wireless PowerShare Nightography Cor = preto espacial Preço = R$ 8.699,00 Armazenamento = 128 GB Detecção de Acidente Dynamic IslandMÉTODOS Estruturação 12 Apple iPhone 14 PlusSamsung Galaxy S22 Ultra Cor = preto fosco Preço = R$ 6.000,00 Armazenamento = 128 GB Wireless PowerShare Nightography Cor = preto espacial Preço = R$ 8.699,00 Armazenamento = 128 GB Detecção de Acidente Dynamic Island OBJETOS ATRIBUTOS MÉTODOS CLASSE O Objeto Objetos são um conjunto de dados que representam a estrutura e comportamento, inerentes às entidades, concretas ou abstratas, do mundo real. Ou seja, qualquer coisa que tenha algum significado dentro do contexto do problema Exemplos de objetos Um livro Um carro Um celular Uma porta 13 autor editora ano publ. O Objeto Objetos são um conjunto de dados que representam a estrutura e comportamento, inerentes às entidades, concretas ou abstratas, do mundo real. Ou seja, qualquer coisa que tenha algum significado dentro do contexto do problema Exemplos de objetos Um livro Um carro Um celular Uma porta 14 modelo cor ano O Objeto Objetos são um conjunto de dados que representam a estrutura e comportamento, inerentes às entidades, concretas ou abstratas, do mundo real. Ou seja, qualquer coisa que tenha algum significado dentro do contexto do problema Exemplos de objetos Um livro Um carro Um celular Uma porta Cada objeto consiste em uma entidade com identidade própria! 15 modelo cor ano Os Atributos Todo objeto deve ter uma identificação Suas características de composição estão associadas à sua constituição e definem sua estrutura. Tais características são denominadas de atributos. 16 marca cor peso preço bateria Celular Os Atributos Todo objeto deve ter uma identificação Suas características de composição estão associadas à sua constituição e definem sua estrutura. Tais características são denominadas de atributos. Os atributos podem ser um simples valor ou mesmo ser um outro objeto. 17 marca cor peso preço bateria Celular Os Atributos Todo objeto deve ter uma identificação Suas características de composição estão associadas à sua constituição e definem sua estrutura. Tais características são denominadas de atributos. Os atributos podem ser um simples valor ou mesmo ser um outro objeto. 18 marca = ‘xingling’ cor = ‘preto’ peso = 2.5 preço = 850 bateria = objeto Bateria Celular Os Métodos Além das suas características, um objeto apresenta também suas ações ou serviços que ele pode executar. Tais ações ou serviços são chamados de métodos. 19 cor = ‘cinza’ altura = 1.85 largura = 1.10 preço = 250 fechadura = objeto Fechadura abrir() fechar() Porta As Classes Se dois ou mais objetos apresentam as mesmas características e ações, diz-se que eles pertencem a uma mesma classe. Os dois relógios são objetos distintos, mas ambos apresentam os mesmos atributos e podem executar os mesmos métodos. 20 Relógio do José Relógio da Maria As Classes Se dois ou mais objetos apresentam as mesmas características e ações, diz-se que eles pertencem a uma mesma classe. Os dois relógios são objetos distintos, mas ambos apresentam os mesmos atributos e podem executar os mesmos métodos. 21 Relógio do José Relógio da Maria cor = ‘preto’ peso = 1.85 preço = 250 pulseira = ‘metal’ hora() data() corrigir_hora() cor = ‘azul’ peso = 1.77 preço = 320 pulseira = ‘couro’ hora() data() corrigir_hora() Classe Relógio As Classes Uma classe define as características de um grupo de objetos. Ou seja, como serão as instâncias pertencentes a ela Dessa forma, uma classe especifica quais serão os atributos e métodos de todos os objetos pertencentes a ela. 22 As Classes Importante Não confundir classe comobjeto! Objeto = CONCRETO Classe = IDEIA Exemplo: receita de bolo Você não come a receita de bolo. Você come o bolo! A receita é a classe. O bolo é o objeto. 23 Exemplo Prático Agora que a teoria foi dada, hora de colocar a mão na massa! Aprendemos como criar uma classe com seus atributos e métodos e, a partir dela, criar objetos diferentes. Criaremos uma classe para conta bancária, simples e especial. 24 Exemplo Prático A sintaxe da criação de uma classe no JAVA é desta forma: 25 A palavra reservada class, para indicar que estamos criando uma classe O nome da classe. Sempre com a primeira letra em maiúsculo! Exemplo Prático 26 Os atributos, que são os mesmos para qualquer tipo de conta, são criados Exemplo Prático 27 Criação do primeiro método! Ele começa com a palavra reservada void pois não vai retornar nada, e posteriormente vem o nome do método, começando com letra minúscula! Exemplo Prático 28 Dessa forma, todas as contas que forem criadas a partir dessa classe terão um nome, um saldo e um tipo de conta, podendo ser especial ou não. Além disso, irão poder depositar ou sacar algum valor! Exemplo Prático Podemos melhorar a classe ContaBancaria criando mais um método para mostras as informações da conta criada: Isso completa nossa classe. Podemos então criar diferentes objetos de ContaBancaria para testar! 29 Exemplo Prático Testando 30 O método para o teste deve ter essa sintaxe! Exemplo Prático 31 Exemplo Prático 32 Exemplo Prático 33 Exemplo Prático 34 O método para o teste deve ter essa sintaxe! Criamos os objetos: duas contas de pessoas diferentes. Depois atribuímos as características da conta 1: essa conta deve ser comum. Exemplo Prático 35 Exemplo Prático 36 O método para o teste deve ter essa sintaxe! Criamos os objetos: duas contas de pessoas diferentes. Depois atribuímos as características da conta 1: essa conta deve ser comum. Já a conta 2 deve ser especial. Na linha 61 alteramos o valor do atributo comum a todos apenas para essa conta! Exemplo Prático 37 Conclusões 38 POO: paradigma de programação que faz interações com objetos do mundo real Objeto: representação de entidades do mundo real. Atributo: características inerentes do objeto. Métodos: ações que os objetos podem realizar. Classes: especificações de objetos com os mesmos atributos e métodos. POO com JAVA: modelagem de uma classe, seus atributos e métodos para a criação de objetos. https://www.youtube.com/watch?v=Gq1BS63pkRA https://www.youtube.com/watch?v=Gq1BS63pkRA Atividade Verificadora de Aprendizagem Em grupos, identifiquem as classes e atributos para cada uma das situações abaixo: a) Em uma turma de um curso de graduação, temos disciplinas ministradas em salas diferentes. b) A transportadora “Super Cometa” monitora seus caminhões e motoristas através de um controlador embutido. Por meio dele é possível saber a localização de cada veículo. 39 Atividade Autônoma Aura Questão 1: O paradigma de programação orientada a objetos nasceu da necessidade de trazer o entendimento de problemas computacionais para mais próximo do mundo real. Levando em consideração os conceitos de programação orientada a objetos, julgue os itens a seguir: I - Classes e objetos possuem atributos e métodos, no entanto, uma classe é apenas um modelo que é usado para criar objetos diferentes do mesmo tipo. II - Os atributos de um objeto são o que ele sabe fazer e o métodos são o que ele sabe. III - uma classe é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ela, assim como se relacionar e enviar mensagens a outras classes. Estão corretas as alternativas: A) I B) I e II C) I, II e III D) II e III E) III 40 Atividade Autônoma Aura Questão 2: Os paradigmas de orientação a objeto e estruturado tem aplicações diversas na computação pois apresentam características distintas que os tornam adequados a aplicações específicas. Por exemplo, para desenvolver um programa para uma empresa de Recursos Humanos que irá ajudar a selecionar candidatos para um perfil de vaga específico e será modificado e atualizado constantemente, o paradigma mais adequado seria o orientando a objetos, mas se você irá desenvolver um software para o controle do frio ABS de um automóvel, o qual irá executar em um microcontrolador que possui diversas restrições de memória e processamento, seria mais adequado a utilização do paradigma estruturado. Diante dessas duas situações motivadoras e de seus conhecimentos em relação aos paradigmas orientado a objetos e estruturado, relacione as características com os respectivos paradigmas I - Orientado a objetos II - Estruturado ( ) Reutilização de código ( ) Tratamento de dados misturados com o comportamento do programa ( ) utiliza um conjunto de procedimentos para resolver um problema ( ) representação de problemas de forma abstrata A) I, I, II, II B) II,I,II,I C) II,II,I,II D) I,I,II,I E) I, II, I, II 41 Exercícios de Fixação 1. Modifique o método mostraDados () da classe ContaBancaria para que, caso o saldo esteja negativo, uma mensagem de alerta seja impressa. Dica: O saldo só poderá ser negativo se a conta for especial. 2. Modifique o método abreConta () da classe ContaBancaria de forma que o cliente só possa abrir uma conta com um valor mínimo de R$ 100,00. 3. Crie um método transfere () do tipo booleano que tenha como parâmetros dois objetos do tipo ContaBancaria e o valor a ser transferido de uma conta para outra. Esse método deverá utilizar os métodos deposita e saque da classe. O tipo booleano de retorno do método é para sinalizar se a operação de transferência de valores foi realizada com sucesso, ou seja, se o valor a ser transferido da conta de origem for menor ou igual ao saldo dessa conta. 42