Programação Orientada a Objetos
Grátis!
With Membership
$7.99
Valor Sugerido

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.

Sobre o Autor

Márcio Torres
Márcio Torres

Quem é Márcio Torres? Eu sou Professor, Mestre em Engenharia de Computação, Desenvolvedor de Software, e entusiasta da área de Engenharia de Softwares. Comecei a programar no início de 90 em Basic num CP500. Trabalhei com várias plataformas e linguagens. Na década de 2000 me dediquei aos Sistemas Corporativos sobre a Plataforma Java. E de 2010 até os dias atuais exerço a docência no Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul, ministro componentes curriculares voltados à Programação Orientada a Objetos e ao Projeto e Arquitetura de Sistemas nos cursos superior de Tecnologia em Análise e Desenvolvimento de Sistemas e Técnico em Informática para Internet.

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 e fromTipo
    • 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

Escreva e Publique na Leanpub

Autores e editoras usam a Leanpub para publicar incríveis livros em andamento e completos como esse aqui. Você pode usar a Leanpub para escrever, publicar e vender o seu livro também! A Leanpub é uma plataforma poderosa para autores sérios, combinando fluxos de trabalho simples e elegantes para escrita e publicação, com uma loja focada em vender livros em andamento. A Leanpub é uma máquina de escrever mágica para autores: simplesmente escreva em texto simples e, para publicar o seu ebook, apenas aperte um botão. É realmente fácil assim.

Aprenda sobre como escrever na Leanpub