Curso POO Teoria #09 - Exercícios de POO
Introdução ao Curso de Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção introdutória, o professor Gustavo Guanabara apresenta o curso de programação orientada a objetos e explica que esta aula será prática em vez de conceitual. Ele destaca a importância da prática no processo de aprendizado e resume os conceitos abordados nas aulas anteriores.
Desafio Prático para os Alunos
- O professor propõe um desafio aos alunos: desenvolver um projeto orientado a objetos na linguagem de sua escolha.
- Ele menciona que este desafio cobrará conceitos teóricos e é patrocinado pelo Sistema do Campo de Ensino, que oferece cursos preparatórios para áreas militares.
Resolução de Questões de Concursos Anteriores
- O professor selecionou algumas questões que caíram em concursos anteriores relacionadas à programação orientada a objetos.
- Ele irá ler as questões junto com os alunos, pausar para que eles possam responder e, em seguida, fornecer as respostas e comentários.
- As questões são provenientes dos concursos EA GSK (Aeronáutica) e CAP PB (Marinha).
Questão 1: Planta Arquitetônica
- A primeira questão envolve uma analogia entre uma casa e um objeto em programação orientada a objetos.
- Os alunos devem identificar qual elemento arquitetônico corresponde ao objeto em relação à planta arquitetônica.
- Opções: método, propriedade, classe ou atributo.
Questão 2: Características da Programação Orientada a Objetos
- A segunda questão aborda as características da programação orientada a objetos.
- Os alunos devem identificar quais características estão relacionadas à programação orientada a objetos.
- O professor fornece um mnemônico para ajudar na memorização das características.
Questão 3: Conceito de Classe e Objeto
- A terceira questão trata do conceito de classe e objeto na programação orientada a objetos.
- Os alunos devem identificar qual alternativa está incorreta em relação ao conceito de classe e objeto.
Planta Arquitetônica e Classes
Visão Geral da Seção: Nesta seção, o professor Gustavo Guanabara explica o conceito de planta arquitetônica em relação à programação orientada a objetos. Ele destaca a importância da planta como base para instanciar um objeto.
Planta Arquitetônica como Base para Implementar um Objeto
- O professor faz uma analogia entre uma planta arquitetônica e uma classe em programação orientada a objetos.
- Assim como uma planta serve como base para construir uma casa, uma classe serve como base para instanciar um objeto.
Traçando Paralelos entre o Mundo Real e a Programação Orientada a Objetos
- O objetivo da programação orientada a objetos é criar componentes que representam objetos do mundo real.
- Uma casa semelhante à planta arquitetônica representa uma classe, enquanto o objeto é criado com base nessa classe.
Características da Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, o professor Gustavo Guanabara revisa as características da programação orientada a objetos e fornece um mnemônico para ajudar na memorização.
Características da Programação Orientada a Objetos
- O professor recapitula as características da programação orientada a objetos.
- Ele fornece um mnemônico "Comer Nada" para lembrar das características: confiável, mensurável, extensível, reutilizável e natural.
Conceito de Classe e Objeto
Visão Geral da Seção: Nesta seção, o professor Gustavo Guanabara aborda o conceito de classe e objeto na programação orientada a objetos.
Questão sobre Classe e Objeto
- O professor apresenta uma questão que envolve o conceito de classe e objeto.
- Os alunos devem identificar qual alternativa está incorreta em relação ao conceito de classe e objeto.
The transcript provided does not have enough content to create more sections.
Introdução à Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, é introduzido o conceito de programação orientada a objetos e como ela difere de outros paradigmas de programação.
Conceitos Básicos da Programação Orientada a Objetos
- A programação orientada a objetos define atributos e comportamentos compartilhados por um tipo de objeto.
- Em uma linguagem puramente orientada a objetos, tudo é um objeto, desde os tipos mais básicos.
- Exemplo: Na linguagem Java, até mesmo os tipos primitivos são tratados como objetos.
Características da Linguagem PHP
- A linguagem PHP não é totalmente orientada a objetos, embora seja baseada em objetos.
- Ela possui elementos que não seguem completamente o paradigma da programação orientada a objetos.
Relacionando Conceitos na Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, são apresentadas frases relacionadas aos conceitos da programação orientada a objetos para serem associadas corretamente.
Associação entre Colunas
- É necessário relacionar os conceitos das colunas esquerda e direita.
- As respostas corretas são determinadas pela sequência correta das associações feitas.
Características de Classes e Objetos na Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, são discutidas as características das classes e dos objetos na programação orientada a objetos.
Definição de Atributos e Comportamentos Comuns
- A definição de atributos e comportamentos comuns é feita por meio das classes.
- As classes são responsáveis por agrupar objetos que possuem características semelhantes.
Características Visíveis Externamente de uma Classe
- Os atributos são as características visíveis externamente de uma classe.
- Eles representam os dados que um objeto da classe pode armazenar.
O Domínio do Problema na Programação Orientada a Objetos
- O domínio do problema é o espaço onde o problema reside.
- Ele representa a área específica em que a programação orientada a objetos está sendo aplicada.
Conceitos sobre Métodos na Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, são abordados conceitos relacionados aos métodos na programação orientada a objetos.
Métodos Assessores e Mutantes
- Os métodos assessores são responsáveis por dar acesso aos dados internos de um objeto.
- Os métodos mutantes permitem alterar o estado interno dos objetos.
Construtores como Métodos para Inicializar Objetos
- Os construtores são métodos usados para inicializar objetos.
- Eles definem as configurações iniciais dos objetos quando eles são criados.
Pilares da Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, são apresentados os três pilares fundamentais da programação orientada a objetos.
Encapsulamento, Herança e Polimorfismo
- Os três pilares da programação orientada a objetos são: encapsulamento, herança e polimorfismo.
- O encapsulamento permite ocultar detalhes internos de um objeto e expor apenas as interfaces necessárias.
- A herança permite criar novas classes a partir de classes existentes, aproveitando seus atributos e comportamentos.
- O polimorfismo permite que objetos de diferentes classes sejam tratados de forma uniforme, desde que compartilhem uma interface comum.
Construtora Objeto e Entidades
Visão Geral da Seção: Nesta seção, são abordados os conceitos de construtora objeto e entidades na programação orientada a objetos.
Definição de Entidade e Interface
- Uma entidade define o que um objeto pode fazer.
- A interface determina quais métodos são públicos e acessíveis diretamente pela classe.
Atributos, Comportamentos Compartilhados e Construtores
- A classe define os atributos e comportamentos compartilhados.
- O construtor é utilizado para inicializar objetos.
Repetição de Conceitos
- Alguns conceitos podem ser repetidos ao longo do curso.
- É comum errar nesses conceitos no início.
Níveis de Acesso em Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, são abordados os níveis de acesso em programação orientada a objetos.
Níveis de Acesso: Público, Protegido e Privado
- Os três níveis de acesso são público, protegido e privado.
- O acesso público é disponível para todos.
- O acesso privado é restrito à própria classe.
- O acesso protegido é intermediário entre público e privado, permitindo acesso às subclasses.
Polimorfismo, Herança e Agregação
Visão Geral da Seção: Nesta seção, são introduzidos os conceitos de polimorfismo, herança e agregação na programação orientada a objetos.
Polimorfismo
- Será abordado nas próximas aulas.
- Permite separar o programa em partes menores e independentes.
Herança
- Será abordada na próxima aula.
- Envolve conceitos de superclasse, subclasse e herança.
Agregação
- Envolve a relação de um objeto ter outro objeto dentro dele.
- Uma instância contém outra instância.
Encapsulamento e Detalhes Internos
Visão Geral da Seção: Nesta seção, é discutido o conceito de encapsulamento e seus detalhes internos.
Conceito de Encapsulamento
- O encapsulamento permite ocultar os detalhes internos de cada parte do programa.
- A interface define quais serviços são fornecidos por cada parte.
Abstração na Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, é explicado o conceito de abstração na programação orientada a objetos.
Abstração
- Na programação orientada a objetos, abstrair significa representar uma entidade incluindo apenas seus atributos mais relevantes.
- Isso permite separar o programa em partes menores e independentes, com implementações isoladas.
Conceitos de Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, o palestrante discute os conceitos básicos da programação orientada a objetos.
Conceitos Básicos
- Atributos como cor do cabelo, tamanho do cabelo, cor dos olhos, idade, peso e sexo são características de um objeto.
- Para fins de encapsulamento, apenas a altura e o peso são necessários para o sistema em questão.
- Classes são tipos abstratos de dados que definem as propriedades e comportamentos dos objetos.
- Objetos são instâncias de uma classe.
- Subclasse é uma classe definida com base em outra classe (conceito de herança).
- Atributos são características ou propriedades dos objetos em uma classe.
- Métodos são subprogramas que definem as operações em um objeto.
Dicas para Estudar Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, o palestrante fornece dicas sobre como estudar programação orientada a objetos de forma eficaz.
Dicas para Estudar
- Não é necessário correr para terminar o curso; é importante aprender a programar com foco na compreensão dos conceitos.
- Se muitas questões foram respondidas incorretamente, é recomendado revisitar as aulas e praticar mais para melhorar o entendimento.
- O palestrante está fazendo sua parte ao fornecer as informações necessárias; cabe ao aluno fazer sua parte estudando e praticando ativamente.
Informações sobre Cursos e Concursos
Visão Geral da Seção: Nesta seção, o palestrante compartilha informações sobre cursos e concursos relacionados à programação orientada a objetos.
Cursos e Concursos
- O palestrante é professor do Sistema Educandus de Ensino, que oferece cursos avançados em programação orientada a objetos.
- Há concursos para sargento da Aeronáutica (EAGS) e para o Corpo Auxiliar de Praças da Marinha (CAP), com especialidade em processamento de dados.
- Os interessados podem obter mais informações no site do Sistema Educandus de Ensino.
Exercício Prático
Visão Geral da Seção: Nesta seção, o palestrante apresenta um exercício prático que envolve os conceitos básicos da programação orientada a objetos.
Exercício Prático
- O exercício prático abrange definição básica de classes, atributos, métodos, encapsulamento, interface e relacionamentos entre classes.
- Os alunos podem escolher fazer o exercício em Java ou PHP.
- Mais detalhes sobre o exercício estão disponíveis na playlist correspondente aos cursos de programação orientada a objetos em Java e PHP.