Programação Orientada a Objetos
Programação Orientada a Objetos
Conceitos e Princípios implementados na linguagem Java
Sobre o Livro
Eu comecei a escrever este livro em 2016, enquanto lecionava na disciplina de Programação Orientada a Objetos (POO) nos cursos superior de Análise e Desenvolvimento de Sistemas e técnico em Informática para Internet. Eu levava anotações estruturadas dos temas que ia abordar, que eram um compilado das bibliografias recomendadas e uma síntese curada das melhores referências sobre o paradigma da orientação a objetos. Tudo isto era relacionado com minha experiência de trabalho e, importante, sempre envoltas em um contexto prático, já que os cursos de tecnologia e técnicos são voltados para a atuação profissional.
Um dos grandes desafios na educação profissional é achar a didática adequada para obter uma abordagem pragmática que, ao mesmo tempo, ofereça uma boa base teórica. No futuro, os estudantes podem tanto atuar profissionalmente, quanto também procurar qualificação continuada, como uma pós-graduação, ou até participar de concursos públicos. Por isto é importante harmonizar teoria e prática.
Este livro didático não tinha sido pensado para ser publicado. Por isso, leve em consideração de que está incompleto e que ainda carece de revisão textual e dos códigos. No entanto, eu decidi disponibilizá-lo aqui no Leanpub pensando, sobretudo, na utilidade que ele poderia ter para os estudantes e profissionais iniciantes, que se esforçam para aprender a Programação Orientada a Objetos, seja na faculdade, em um curso técnico, ou mesmo por conta própria.
Então, se esta obra te for um pouquinho útil, já valeu o meu esforço de escrevê-la e liberá-la por aqui!
Obs.: estou procurando o autor do desenho da capa para pagar o licenciamento de uso.
Sumário
- Prefácio
-
Introdução
- Abordagem
- Linguagem de programação
- Organização dos capítulos
- Para quem é este livro
- Para quem não é este livro
- Convenções
- Sobre o Autor
-
1. Programação Modular
- 1.1 Modularização
- 1.2 Modularização na Programação Procedimental
- 1.3 Modularização na Programação Orientada a Objetos
- 1.4 Subprocedimentos
- 1.5 Procedimentos e Dados Estruturados
- 1.6 “Procedimentos Orientados a Objetos?!”
- 1.7 Aderindo à Programação Orientada a Objetos com Responsabilidade
- 1.8 Considerações
-
2. Uma curta história da Programação Orientada a Objetos
- 2.1 LISP: átomos
- 2.2 Sketchpad: mestre e definição
- 2.3 ALGOL: procedimentos + estruturas de dados
- 2.4 Simula: classes, subclasses e herança
- 2.5 Smalltalk: troca de mensagens
- 2.6 C++: pondo POO no jogo
- 2.7 Java: POO para as massas
- 2.8 A supremacia Orientada-a-Objetos
- 2.9 Considerações
- 2.10 Exercícios
-
3. Modelo de Objetos
- 3.1 Abstração: a arte da redução da representação
- 3.2 Classes: o gabarito para os objetos
- 3.3 Objetos: instâncias de uma classe
- 3.4 Atributos: as “qualidades” do objeto
- 3.5 Inicialização: construção de objetos
- 3.6 Considerações
- 3.7 Exercícios
-
4. Estado & Validade
- 4.1 Conceito de Estado do Objeto
- 4.2 Estado constante e instantâneo
- 4.3 Validade do estado, invariantes e consistência
- 4.4 Estratégias para validar o estado
- 4.5 Considerações
- 4.6 Exercícios
-
5. Comportamento & Operações
- 5.1 Conceito de Comportamento do Objeto
- 5.2 Métodos (ou operações)
- 5.3 Separação de Comando e Consulta
- 5.4 Comportamento Excepcional
- 5.5 Considerações
- 5.6 Exercícios
-
6. Polimorfismo ad hoc
- 6.1 Conceito de Polimorfismo
- 6.2 O que é o Polimorfismo ad hoc
- 6.3 Sobrecarga de Métodos
- 6.4 Sobrecarga de Construtores
- 6.5 Considerações
- 6.6 Exercícios
-
7. Encapsulamento & Visibilidade
- 7.1 Conceito de encapsulamento
- 7.2 Ocultação de informações
- 7.3 Visibilidade
- 7.4 Modificadores de acesso
- 7.5 Atributos vs Propriedades
- 7.6 Acessores (getters) & Mutadores (setters)
- 7.7 Princípio do mínimo privilégio
- 7.8 Abstração e a interface dos objetos
- 7.9 Considerações
- 7.10 Exercícios
-
8. Identidade & Igualdade
- 8.1 Conceito de Identidade
- 8.2 Conceito de Igualdade
-
8.3 Implementando a igualdade com
equals
- 8.4 Comparabilidade
- 8.5 Considerações
- 8.6 Exercícios
-
9. Representação & Formato
- 9.1 Conceito de Representação do Objeto
-
9.2 A convenção dos métodos
toTipo
efromTipo
-
9.3 Representação string | sobrescrevendo
toString
- 9.4 Considerações
- 9.5 Exercícios
-
10. Imutabilidade & Objetos de Valor
- 10.1 Conceito de Imutabilidade
- 10.2 Motivação para a Imutabilidade
- 10.3 Objetos de Valor
- 10.4 Imutabilidade Fraca e Forte
- 10.5 Considerações
- 10.6 Exercícios
-
11. Coesão
- 11.1 Conceito de Coesão
- 11.2 Alta Coesão > Baixa Coesão
- 11.3 Aumentando a coesão
- 11.4 Refatoração: extração/introdução
- 11.5 Considerações
- 11.6 Exercícios
- Notes
A garantia Leanpub incondicional, sem riscos, de 100% de satisfação
Durante 60 dias da data de compra você pode solicitar o reembolso total de qualquer compra Leanpub, em dois cliques. Nós processamos os reembolsos manualmente, então eles podem demorar alguns dias para aparecer. Veja os termos completos.
Ganhe $8 em uma compra de $10 e $16 em uma compra de $20
Pagamos 80% de royalties em compras de $7,99 ou mais e 80% de royalties menos uma taxa fixa de 50 centavos em compras entre $0,99 e $7,98. Você ganha $8 em uma venda de $10 e $16 em uma venda de $20. Portanto, se vendermos 5000 cópias não reembolsadas do seu livro por $20, você ganhará $80,000.
(Sim, alguns autores já ganharam muito mais do que isso no Leanpub.)
Na verdade, os autores ganharammais de 13 milhões de dólares escrevendo, publicando e vendendo no Leanpub.
Saiba mais sobre escrever no Leanpub
Atualizações grauitas. Sem DRM.
Se você compra um livro da Leanpub, você recebe atualizações gratuitas enquanto o autor atualizar o livro! Muitos autores utilizam a Leanpub para publicar os seus livros em andamento, enquanto eles estão os escrevendo. Todos os leitores recebem atualizações gratuitas, não importa quando ou por quanto eles compraram o livro (até mesmo de graça).
A maioria dos livros Leanpub estão disponíveis em PDF (para computadores) e EPUB (para telefones, tablets, e Kindle). Os formatos que um livro inclui são exibidos no top direito dessa página.
Por último, livros Leapub não têm nenhuma proteção anti-cópias DRM sem sentido, então você pode facilmente lê-los em qualquer dispositivo suportado.
Aprenda mais sobre os formatos de ebook da Leanpub e aonde lê-los