Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/manoelcampos/poo-java

Programação Orientada a Objetos em Java: uma abordagem didática utilizando a ferramenta BlueJ ☕️🧩
https://github.com/manoelcampos/poo-java

bluej course ebook gitbook java object-oriented-programming poo

Last synced: 9 days ago
JSON representation

Programação Orientada a Objetos em Java: uma abordagem didática utilizando a ferramenta BlueJ ☕️🧩

Awesome Lists containing this project

README

        

= Programação Orientada a Objetos em Java: uma abordagem didática utilizando o BlueJ
:source-highlighter: highlightjs
:imagesdir: images
:allow-uri-read:
:safe: unsafe
:numbered:
:listing-caption: Listagem
:experimental:

ifdef::env-github[]
:outfilesuffix: .adoc
:caution-caption: :fire:
:important-caption: :exclamation:
:note-caption: :paperclip:
:tip-caption: :bulb:
:warning-caption: :warning:
endif::[]

http://about.me/manoelcampos[Prof. Me. Manoel Campos da Silva Filho]

ifdef::env-github[]
IMPORTANT: Acesse o curso online https://manoelcampos.gitbooks.io/poo-java/[neste link], onde é possível fazer o download do material em PDF e epub.
O acesso ao curso diretamente pelo GitHub não permite a exibição de vídeos nem a navegação facilitada entre capítulos.
endif::[]

== Objetivos
Apresentar os fundamentos para o desenvolvimento de softwares modernos seguindo o paradigma de programação orientada a objetos (POO).
Um paradigma define um modelo ou padrão a ser seguido. O paradigma de programação orientada a objetos, dentre vários existentes, define um modelo para construção de software que é seguido por profissionais mundialmente.

== Pré-requisitos

- Lógica de programação e programação procedural/estruturada.

== Motivação para uso de POO

Como você já sabe, desenvolver software não é uma tarefa fácil. Desenvolver programas para resolver problemas reais e cada vez mais complexos, que serão utilizados de fato por alguém além de você, pode ser desafiador.

Depois que já se sabe o que precisa ser feito, um dos maiores desafios é por onde começar e então muitas dúvidas surgem. Como transformar suas ideas em código? Como este código deve ser organizado? Quais partes do programa devem ser desenvolvidas primeiro? Como identificar estas partes do programa e desenvovê-las isoladamente? Como unir as partes depois de prontas e fazer o sistema inteiro funcionar?

Durante o processo de aprendizagem, todos nós provavelmente utilizamos intuitivamente o "paradigma" de tentitiva e erro. Consigo até ver a cena: Você vai escrevendo o código, fazendo alterações sem saber exatamente o que está fazendo, na esperança que o programa funcione. 🙏

****
.http://joyreactor.com/post/1646612[Tentativa e Erro 🙏: "paradigma" de programação mais utilizado quando você não tem a menor ideia do que está fazendo 😭.]
image::code-doesnt-work.jpeg[]
****

A medida que o código vai aumentando e você vai indiscriminadamente fazendo alterações nele, o código começa a virar um emaranhado de linhas que nem você entende mais.

A programação orientada a objetos (POO), juntamente com uma série de conceitos e práticas de engenharia de software defini padrões para o desenvolvimento de software, buscando:

- minimizar a quantidade de bugs (erros);
- permitir que o software seja desenvolvido em equipe (local ou remotamente) e facilitar o entendimento de um código feito por outra pessoa;
- permitir que o software seja desenvolvido em partes independentes, o que contribui para o trabalho em equipe;
- facilitar a manutenção de código para correção de bugs e inclusão de novos recursos;
- assim como métodos de construção evoluem para corrigir problemas como custo, tempo, qualidade e segurança, a POO surgiu para corrigir problemas de outros paradigmas de programação e suprir novas necessidades tanto dos desenvolvedores quanto dos clientes;
- diminuir a distância entre o que o código representa com o que de fato ele faz ao ser executado;
- etc.