Prévia do material em texto
<p>Programação Orientada a Objetos</p><p>Professor Fabrício Leonard, Me</p><p>fabricioleonard@gmail.com</p><p>Paradigma de programação</p><p>2</p><p>Paradigma de programação</p><p>Existem vários paradigmas de programação, e cada</p><p>um tem suas características distintas. Alguns dos</p><p>principais paradigmas incluem:</p><p>• Programação Imperativa (ou Procedural)</p><p>• Programação Orientada a Objetos (POO)</p><p>• Programação Funcional</p><p>• Programação Lógica</p><p>• Programação Orientada a Eventos:</p><p>• Programação Concorrente e Paralela</p><p>• Etc...</p><p>04/03/2024 www.developeracademy.com.br 3</p><p>Programação Imperativa</p><p>(ou Procedural)</p><p>Este paradigma se concentra em descrever passo</p><p>a passo como um programa deve atingir um</p><p>determinado estado ou resultado. Utiliza</p><p>instruções sequenciais, condicionais e de</p><p>repetição para controlar o fluxo do programa.</p><p>Exemplos incluem linguagens como C e Pascal.</p><p>04/03/2024 www.developeracademy.com.br 4</p><p>Programação Orientada a</p><p>Objetos (POO)</p><p>Baseia-se na organização de código em torno de</p><p>objetos, que são instâncias de classes. Esses</p><p>objetos encapsulam dados e comportamentos,</p><p>promovendo conceitos como herança,</p><p>polimorfismo e encapsulamento. Exemplos</p><p>incluem Java, Python e C++.</p><p>04/03/2024 www.developeracademy.com.br 5</p><p>Programação Funcional</p><p>Nesse paradigma, os programas são construídos</p><p>a partir de funções matemáticas puras, sem</p><p>estados mutáveis. A ênfase está em expressões e</p><p>avaliação de funções. Linguagens como Haskell,</p><p>Lisp e Erlang seguem esse paradigma.</p><p>04/03/2024 www.developeracademy.com.br 6</p><p>Programação Lógica</p><p>Baseia-se na lógica formal e nas regras de</p><p>inferência. Os programas são construídos em</p><p>torno de fatos e regras, e a execução envolve a</p><p>busca por soluções lógicas. A linguagem Prolog é</p><p>um exemplo de linguagem de programação</p><p>lógica.</p><p>04/03/2024 www.developeracademy.com.br 7</p><p>Programação Orientada a</p><p>Eventos</p><p>Nesse paradigma, o fluxo de controle é</p><p>determinado por eventos que ocorrem no</p><p>sistema. A lógica do programa é acionada por</p><p>eventos, como cliques do mouse ou entrada do</p><p>teclado. Linguagens como JavaScript e GUI</p><p>(Interface Gráfica do Usuário) em algumas</p><p>linguagens estão associadas a esse paradigma.</p><p>04/03/2024 www.developeracademy.com.br 8</p><p>Programação</p><p>Concorrente e Paralela</p><p>Esses paradigmas lidam com a execução</p><p>simultânea de várias tarefas (concorrência) ou a</p><p>divisão de uma tarefa em partes menores</p><p>executadas ao mesmo tempo (paralelismo).</p><p>Exemplos incluem linguagens como Erlang e</p><p>CUDA.</p><p>04/03/2024 www.developeracademy.com.br 9</p><p>Qual</p><p>escolher?</p><p>w</p><p>w</p><p>w</p><p>.d</p><p>evelo</p><p>p</p><p>eracad</p><p>em</p><p>y.co</p><p>m</p><p>.b</p><p>r</p><p>A escolha do paradigma de programação depende</p><p>do problema a ser resolvido, das preferências do</p><p>desenvolvedor, dos requisitos do projeto e de</p><p>outros fatores. Muitas linguagens de programação</p><p>modernas suportam múltiplos paradigmas,</p><p>permitindo que os desenvolvedores escolham a</p><p>abordagem mais adequada para cada situação.</p><p>04/03/2024 10</p><p>Multiparadigma O termo “multiparadigma” refere-se a linguagens de</p><p>programação ou sistemas que suportam mais de um</p><p>paradigma de programação. Isso permite que os</p><p>desenvolvedores escolham o estilo de programação mais</p><p>adequado para cada tarefa, combinando diferentes</p><p>abordagens para resolver problemas de maneira eficiente e</p><p>eficaz. Por exemplo, uma linguagem multiparadigma pode</p><p>permitir que você use programação orientada a objetos</p><p>para modelar entidades complexas, enquanto utiliza</p><p>programação funcional para processamento de dados</p><p>imutáveis e paralelismo.</p><p>04/03/2024 www.developeracademy.com.br 11</p><p>Exemplos de linguagem multiparadigma</p><p>04/03/2024 www.developeracademy.com.br 12</p><p>Python JavaScript C++ Java</p><p>C# Scala Ruby Kotlin</p><p>Haskell Rust Swift Perl</p><p>Programação orientada a objetos (POO)</p><p>A programação orientada a objetos (POO) é um</p><p>paradigma de programação que utiliza o conceito de</p><p>"objetos" para organizar e estruturar o código. Um</p><p>objeto é uma instância de uma classe, e uma classe é</p><p>um modelo ou plano para criar objetos. Essa</p><p>abordagem permite organizar o código de maneira</p><p>mais modular, reutilizável e compreensível.</p><p>04/03/2024 www.developeracademy.com.br 13</p><p>Classe</p><p>Uma classe é um tipo de estrutura de dados que</p><p>define os atributos (dados) e métodos</p><p>(comportamentos) comuns a todos os objetos que</p><p>serão criados a partir dela. Por exemplo, uma classe</p><p>"Carro" pode ter atributos como cor, modelo e</p><p>métodos como ligar o motor e acelerar.</p><p>04/03/2024 www.developeracademy.com.br 14</p><p>Objeto</p><p>Um objeto é uma instância específica de uma classe.</p><p>Por exemplo, se a classe é "Carro", então um objeto</p><p>pode ser um carro específico com uma cor, modelo e</p><p>estado específicos.</p><p>04/03/2024 www.developeracademy.com.br 15</p><p>16</p><p>04/03/2024 www.developeracademy.com.br 17</p><p>Abstração</p><p>18</p><p>Encapsulamento</p><p>19</p><p>Herança</p><p>20</p><p>A herança permite que uma classe herde</p><p>características de outra, facilitando a</p><p>reutilização de código. A classe que herda é</p><p>chamada de classe derivada ou subclasse,</p><p>enquanto a classe da qual ela herda é chamada</p><p>de classe base ou superclasse.</p><p>Polimorfismo</p><p>21</p><p>Benefícios</p><p>orientação a</p><p>objetos</p><p>04/03/202</p><p>4</p><p>w</p><p>w</p><p>w</p><p>.d</p><p>evelo</p><p>p</p><p>eracad</p><p>em</p><p>y.co</p><p>m</p><p>.b</p><p>r</p><p>22</p><p>Modularidade: Uma vez criado um</p><p>objeto pode ser passado por todo o</p><p>sistema;</p><p>Encapsulamento: Detalhes de</p><p>implementação ficam ocultos</p><p>externamente ao objeto;</p><p>Reuso: Uma vez criado um objeto</p><p>pode ser utilizado em outros</p><p>programas;</p><p>Manutenibilidade: Manutenção é</p><p>realizada em pontos específicos do</p><p>seu programa (objetos).</p><p>04/03/2024 www.developeracademy.com.br 23</p><p>04/03/2024 www.developeracademy.com.br 24</p><p>Slide 1: Programação Orientada a Objetos</p><p>Slide 2: Paradigma de programação</p><p>Slide 3: Paradigma de programação</p><p>Slide 4: Programação Imperativa (ou Procedural)</p><p>Slide 5: Programação Orientada a Objetos (POO)</p><p>Slide 6: Programação Funcional</p><p>Slide 7: Programação Lógica</p><p>Slide 8: Programação Orientada a Eventos</p><p>Slide 9: Programação Concorrente e Paralela</p><p>Slide 10: Qual escolher?</p><p>Slide 11: Multiparadigma</p><p>Slide 12: Exemplos de linguagem multiparadigma</p><p>Slide 13: Programação orientada a objetos (POO)</p><p>Slide 14: Classe</p><p>Slide 15: Objeto</p><p>Slide 16</p><p>Slide 17</p><p>Slide 18: Abstração</p><p>Slide 19: Encapsulamento</p><p>Slide 20: Herança</p><p>Slide 21: Polimorfismo</p><p>Slide 22: Benefícios orientação a objetos</p><p>Slide 23</p><p>Slide 24</p>