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.
Índice
- 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
Garantia de 60 Dias de 100% de Satisfação da Leanpub
Em até 60 dias após a compra, você pode obter um reembolso de 100% em qualquer compra da Leanpub com apenas dois cliques.
Tecnicamente, isso é arriscado para nós, já que você terá os arquivos do livro ou curso de qualquer maneira. Mas estamos tão confiantes em nossos produtos e serviços, e em nossos autores e leitores, que oferecemos com satisfação uma garantia de devolução total do dinheiro para tudo o que vendemos.
Você só pode descobrir o quanto algo é bom experimentando, e por causa da nossa garantia de 100% de devolução do dinheiro, literalmente não há risco em tentar!
Então, não há motivo para não clicar no botão Adicionar ao Carrinho, certo?
Ver 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. Então, se vendermos 5000 cópias não reembolsadas do seu livro por $20, você ganhará $80.000.
(Sim, alguns autores já ganharam muito mais que isso na Leanpub.)
Na verdade, os autores já ganharammais de $14 milhões escrevendo, publicando e vendendo na Leanpub.
Saiba mais sobre como escrever na Leanpub
Atualizações Gratuitas. Livre de DRM.
Ao comprar um livro da Leanpub, você recebe atualizações gratuitas enquanto o autor continuar atualizando o livro! Muitos autores usam o Leanpub para publicar seus livros em desenvolvimento, enquanto ainda estão escrevendo. Todos os leitores recebem atualizações gratuitas, independentemente de quando compraram o livro ou quanto pagaram (incluindo gratuitos).
A maioria dos livros da Leanpub está disponível em PDF (para computadores) e EPUB (para celulares, tablets e Kindle). Os formatos incluídos em um livro são mostrados no canto superior direito desta página.
Por fim, os livros da Leanpub não possuem nenhuma proteção DRM sem sentido, então você pode lê-los facilmente em qualquer dispositivo compatível.
Saiba mais sobre os formatos de ebook da Leanpub e onde lê-los