{"id":18258788,"url":"https://github.com/manoelcampos/poo-java","last_synced_at":"2025-04-04T19:32:05.452Z","repository":{"id":62909523,"uuid":"105035551","full_name":"manoelcampos/poo-java","owner":"manoelcampos","description":"Programação Orientada a Objetos em Java: uma abordagem didática utilizando a ferramenta BlueJ ☕️🧩","archived":false,"fork":false,"pushed_at":"2020-06-25T18:15:36.000Z","size":11942,"stargazers_count":12,"open_issues_count":0,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-20T17:14:10.461Z","etag":null,"topics":["bluej","course","ebook","gitbook","java","object-oriented-programming","poo"],"latest_commit_sha":null,"homepage":"https://manoelcampos.gitbooks.io/poo-java/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manoelcampos.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-27T15:25:28.000Z","updated_at":"2025-02-21T13:12:25.000Z","dependencies_parsed_at":"2022-11-09T00:31:02.134Z","dependency_job_id":null,"html_url":"https://github.com/manoelcampos/poo-java","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fpoo-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fpoo-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fpoo-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Fpoo-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manoelcampos","download_url":"https://codeload.github.com/manoelcampos/poo-java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247237682,"owners_count":20906330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bluej","course","ebook","gitbook","java","object-oriented-programming","poo"],"created_at":"2024-11-05T10:34:38.036Z","updated_at":"2025-04-04T19:32:00.444Z","avatar_url":"https://github.com/manoelcampos.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Programação Orientada a Objetos em Java: uma abordagem didática utilizando o BlueJ\n:source-highlighter: highlightjs\n:imagesdir: images\n:allow-uri-read:\n:safe: unsafe\n:numbered:\n:listing-caption: Listagem\n:experimental:\n\nifdef::env-github[]\n:outfilesuffix: .adoc\n:caution-caption: :fire:\n:important-caption: :exclamation:\n:note-caption: :paperclip:\n:tip-caption: :bulb:\n:warning-caption: :warning:\nendif::[]\n\nhttp://about.me/manoelcampos[Prof. Me. Manoel Campos da Silva Filho]\n\nifdef::env-github[]\nIMPORTANT: Acesse o curso online https://manoelcampos.gitbooks.io/poo-java/[neste link], onde é possível fazer o download do material em PDF e epub.\nO acesso ao curso diretamente pelo GitHub não permite a exibição de vídeos nem a navegação facilitada entre capítulos.\nendif::[]\n\n== Objetivos\nApresentar os fundamentos para o desenvolvimento de softwares modernos seguindo o paradigma de programação orientada a objetos (POO).\nUm 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.\n\n== Pré-requisitos\n\n- Lógica de programação e programação procedural/estruturada.\n\n== Motivação para uso de POO\n\nComo 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. \n\nDepois 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?\n\nDurante 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. 🙏\n\n****\n.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 😭.]\nimage::code-doesnt-work.jpeg[]\n****\n\nA 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. \n\nA 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: \n\n- minimizar a quantidade de bugs (erros);\n- permitir que o software seja desenvolvido em equipe (local ou remotamente) e facilitar o entendimento de um código feito por outra pessoa;\n- permitir que o software seja desenvolvido em partes independentes, o que contribui para o trabalho em equipe;\n- facilitar a manutenção de código para correção de bugs e inclusão de novos recursos;\n- 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;\n- diminuir a distância entre o que o código representa com o que de fato ele faz ao ser executado;\n- etc.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoelcampos%2Fpoo-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanoelcampos%2Fpoo-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoelcampos%2Fpoo-java/lists"}