Quais tópicos serão abordados no curso?
Noções Básicas de OOP em Python
Introdução:
Visão Geral e Objetivos do Curso
Importância da Programação Orientada a Objetos em Python
Pré-requisitos e Primeiros Passos
Classes e Objetos:
Definindo classes e objetos em Python
Entendendo atributos de classe e atributos de instância
Implementando construtores (__init__) para inicializar objetos
Criando e manipulando objetos
Atributos e Métodos:
Trabalhando com instance methods e class methods
Entendendo method overloading e overriding
Implementando static methods
Encapsulando dados usando private e protected attributes
Herança:
Criando e usando subclasses em Python
Implementando herança para reutilizar código
Entendendo a ordem de resolução de métodos (MRO)
Usando super() para acessar métodos da superclasse
Encapsulamento:
À medida que nos aproximamos do final de nossa jornada, focamos em encapsulamento, um conceito crucial na programação orientada a objetos.
Explorando modificadores de acesso como public, private e protected
Entendendo como os modificadores de acesso restringem o acesso aos membros da classe
Implementando encapsulamento para proteger dados dentro das classes
Polimorfismo:
Entendendo polimorfismo e seus tipos
Implementando sobrescrita de método e sobrecarga de operadores
Usando polimorfismo para escrever código flexível e reutilizável
Métodos Especiais (Métodos Mágicos):
Explorando métodos especiais como __str__, __repr__, __len__, __add__
Entendendo o propósito e uso de métodos especiais
Implementando comportamento personalizado usando métodos especiais
Abstração e Interfaces:
Entendendo classes abstratas e métodos abstratos
Usando o módulo ABC (Abstract Base Classes) para abstração
Implementando interfaces e aderindo ao contrato
Composição e Agregação:
Entendendo composição e agregação
Construindo objetos complexos usando composição
Implementando agregação para modelar relacionamentos
Propriedades e Decoradores:
Implementando métodos getter e setter
Entendendo decoradores de propriedade (@property, @setter, @deleter)
Usando propriedades para encapsular atributos
Herança Múltipla:
Entendendo a herança múltipla e suas armadilhas
Usando herança múltipla para combinar recursos de várias classes
Gerenciando a ordem de resolução de métodos (MRO) na herança múltipla
Ordem de Resolução de Métodos (MRO):
Ordem de Resolução de Métodos (MRO), um aspecto crucial da herança em Python.
Entendendo como o Python determina a ordem na qual os métodos são resolvidos
Usando super() para navegar pela Ordem de Resolução de Métodos
Duck Typing:
Entendendo o conceito de Duck Typing
Implementando Duck Typing para escrever código flexível
Utilizando Duck Typing para trabalhar com diferentes tipos de objetos
Ocultação de Dados:
Entendendo encapsulamento e ocultação de dados
Usando encapsulamento para restringir o acesso aos dados
Implementando atributos e métodos privados
Composição em vez de Herança:
Entendendo o princípio da composição em vez de herança
Identificando cenários onde a composição é preferível
Construindo código flexível e sustentável usando composição
Considerações Finais sobre a Programação Orientada a Objetos em Python:
Refletindo sobre a Jornada de Aprendizado da Programação Orientada a Objetos em Python
Agradecimentos e Próximos Passos