POO Aula 27/05 Pilares e benefícios da POO Aula 03/06 Prática no Lab 1 sobre os Pilares da POO Aula 10/05 Trabalho Avaliativo 2 IFSUL – Sapiranga | Programação Orientada a Objetos
programação; Forma diferente de pensar e construir algoritmos e programas para computadores; • A Orientação a Objetos nasce com a linguagem Smalltalk, em 1970; Descendente da linguagem Simula; 4 O que é POO IFSUL – Sapiranga | Programação Orientada a Objetos
conceitos: ◦ Modelagem de Objetos; ◦ Atributos e comportamentos; Tudo passa a ser assumido como objetos, tal como acontece no mundo real; ◦ Isso trás diferenças substanciais quanto à forma de se pensar na construção de algoritmos! 5 O que é POO IFSUL – Sapiranga | Programação Orientada a Objetos
um primeiro momento, não estamos preocupados com a construção de cada objeto, mas com forma em que os objetos interagem; Youtube: https://www.youtube.com/watch?v=GvnEBX9aedY (Rube Goldberg Machine) 6 O que é POO IFSUL – Sapiranga | Programação Orientada a Objetos Jerry Usuário Tom Programador
que são instâncias de classes. Objetos representam entidades do mundo real, com atributos (características) e métodos (comportamentos). 7 O que é POO IFSUL – Sapiranga | Programação Orientada a Objetos
retirada do site: https://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264 Figura 1. Estruturada x Orientação a Objeto Comparando com Programação Estruturada
decisão ou seleção e iteração; Dificuldades na soluções de mais complexos; Programação Orientada a Objetos: Foca em objetos e suas interações. Os programadores podem abstrair um programa como uma coleção de objetos que interagem entre si. 9 Comparando com Programação Estruturada IFSUL – Sapiranga | Programação Orientada a Objetos
escrever funções para cada ação ex.: Adicionar livro, emprestar livro), Criamos objetos como Livro, Usuário e Empréstimo, que interagem entre si. 10 IFSUL – Sapiranga | Programação Orientada a Objetos Comparando com Programação Estruturada
relevantes. Uma classe Carro com atributos como modelo, cor e métodos como acelerar() e frear(). 14 Abstração IFSUL – Sapiranga | Programação Orientada a Objetos
dado objeto de outros objetos; É a técnica de proteger os dados (atributos) e os códigos que operam sobre os dados (métodos) em uma única unidade chamada classe. 16 Encapsulamento IFSUL – Sapiranga | Programação Orientada a Objetos
interface clara. Uso de métodos get e set para acessar e modificar atributos privados. Evita que dados sejam alterados de forma incorreta. 17 Encapsulamento IFSUL – Sapiranga | Programação Orientada a Objetos
derivada ou subclasse, pode adquirir as propriedades de uma classe existente, conhecida como classe base ou superclasse. 18 Herança IFSUL – Sapiranga | Programação Orientada a Objetos
classe. Uma classe Galinha que herda de uma classe Animal. Promove a reutilização de código e a organização hierárquica. 19 Herança IFSUL – Sapiranga | Programação Orientada a Objetos
método fazerSom() que se comporta de maneira diferente para objetos Galinha, Cachorro e Gato. Flexibilidade para tratar objetos de forma uniforme 21 Polimorfismo IFSUL – Sapiranga | Programação Orientada a Objetos
Abstração : • Envolve a simplificação de objetos complexos do mundo real; • Para representá-los de forma mais simples no código; • Se desdobra em: Classes: • São conjuntos de objetos que possuem o mesmo tipo; Objetos: • São instâncias das classes; Encapsulamento : • É a habilidade de esconder as características intrínsecas de um dado objeto de outros objetos; Herança : • Permite a criação de classes derivadas (subclasses) que herdam atributos e métodos de uma classe base (superclasse); Polimorfismo : • É a propriedade de duas ou mais classes derivadas de uma mesma superclasse responderem a mesma mensagem, mas cada subclasse responde de uma forma diferente da outra classe derivada.
sistema. A classe Animal pode ser usada para criar diferentes tipos de animais. 27 Reutilização de código IFSUL – Sapiranga | Programação Orientada a Objetos
e métodos encapsulados. • Usaremos modificadores de acesso (private) para encapsular os atributos e métodos getters e setters para acessá-los. 32 Demonstração IFSUL – Sapiranga | Programação Orientada a Objetos
// Método adicional , com implementação (concreto) public void apresentar() { System.out.println("Olá, meu nome é " + nome + " e tenho " + idade + " anos."); } } //fecha classe Pessoa // Uso da Classe Pessoa: public class Main { public static void main(String[] args) { Pessoa pessoa = new Pessoa(“Alcione", 33); pessoa.apresentar(); // Saída: Olá, meu nome é Alcione e tenho 33 anos. }
•Herança • Agora, vamos criar uma classe Funcionario que herda da classe Pessoa. A classe Funcionario terá um atributo adicional (cargo) e um método específico (trabalhar).
public class Funcionario extends Pessoa { // Atributo adicional private String cargo; // Construtor public Funcionario(String nome, int idade, String cargo) { super(nome, idade); // Chama o construtor da classe Pessoa this.cargo = cargo; } // continua
•Polimorfismo • Permite que métodos se comportem de maneira diferente em classes derivadas. No exemplo acima, o método apresentar foi sobrescrito na classe Funcionario para incluir o cargo.
// Exemplo de como usar as classes criadas: public class Main { public static void main(String[] args) { // Testando a classe Funcionario Funcionario funcionario1 = new Funcionario(“Ana", 29, "Desenvolvedora"); funcionario1.apresentar(); // Saída: Nome é Ana e eu sou um Desenvolvedora. funcionario1.trabalhar(); // Saída: Ana está trabalhando como Desenvolvedora. } }
Programação Orientada a Objetos A aula trabalhamos a introdutória sobre POO, destacando seus pilares e benefícios; Abordamos duas demonstrações de código para ajuda a consolidar o entendimento do conteúdo;
• Link para acessar o moodle e fazer o quiz sobre POO; • Prática no laboratório: Link o desafio 1. Grupo 1 • Prática no laboratório: Link o desafio 2. Grupo 2 • Prática no laboratório: Link o desafio 3. Grupo 3 • Prática no laboratório: Link o desafio 4. Grupo 4 Mandar as duvidas no fórum da turma e presencialmente na sala de entendimento e no lab. na terça quarta e quinta.
POO Aula 03/06 Prática no Lab 1 sobre os Pilares- POO Aula 03/06 Trabalho Avaliativo Aula 10/05 Construindo uma aplicação completa 45 IFSUL – Sapiranga | Programação Orientada a Objetos