• Stars
    star
    866
  • Rank 52,675 (Top 2 %)
  • Language
    Java
  • Created over 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Desafio: Aprenda na Prática Programação Orientada a Objetos

📜 SLIDES APRESENTADO NO PROJETO 📜

Sejam bem-vindos ao desafio: APRENDENDO NA PRÁTICA O PARADIGMA DE ORIENTAÇÃO A OBJETOS.
Desafio este que tive a honra de co-criar com a plataforma de cursos online DIGITAL INNOVATION ONE 💛🧡 e disponibilizado de forma gratuita para a comunidade dos desenvolvedores Java.
💎 O objetivo principal é colocar em prática umas das principais ferramentas da OO: ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA E POLIMORFISMO, através de um projeto Java.

🛑 Pré-Requisitos

Conhecer a sintaxe da Java
Java JDK 11
IDE para desenvolvimento Java (usarei IntelliJ)
Git
Conta no GitHub

👣 Passo-a-Passo

1. Vamos ABSTRAIR o DOMÍNIO Bootcamp e MODELAR seus ATRIBUTOS E MÉTODOS
2. Criaremos as CLASSES: Bootcamp, Cursos, Mentorias e Devs e vamos relaciona-las
3. As CLASSES Curso, Mentoria e Devs também serão MODELADOS, ou seja, criaremos seus ATRIBUTOS E MÉTODOS
4. Para que o código fique mais legível e de fácil manutenção, iremos utilizar de algumas das ferramentas que o PARADIGMA DE ORIENTAÇÃO A OBJETOS (POO) nos oferece: ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA E POLIMORFISMO
5. E para representar CLASSES que foram criadas e relacionadas, iremos transforma-las em OBJETOS


📚 Paradigma de Programação Orientado a Objetos (POO)

A visão de Orientação a Objetos (OO) é aquela de um mundo de objetos que interagem.
Este paradigma é um modelo de análise, projeto e programação baseado na aproximação entre o mundo real e o mundo virtual, através da criação e interação entre classes, atributos, métodos, objetos, entre outros.
São 4 os pilares principais do POO: ABSTRAÇÃO, ENCAPSULAMENTO, HERANÇA E POLIMORFISMO.

🔺 ABSTRAÇÃO:

Habilidade de concentrar-se nos aspectos essenciais de um domínio, ignorando características menos importantes ou acidentais. Nesse contexto, objetos são abstrações de entidades existentes no domínio em questão.

🔺 ENCAPSULAMENTO:

Encapsular significa esconder a implementação dos objetos. O encapsulamento favorece principalmente dois aspectos de um sistema: a manutenção e a evolução.

🔺 HERANÇA:

Permite que você defina uma classe filha que reutiliza (herda), estende ou modifica o comportamento de uma classe pai. A classe cujos membros são herdados é chamada de classe base. A classe que herda os membros da classe base é chamada de classe derivada.

🔺 POLIMORFISMO:

Capacidade de um objeto poder ser referenciado de várias formas. Cuidado, polimorfismo não quer dizer que o objeto fica se transformando, muito pelo contrário, um objeto nasce de um tipo e morre daquele tipo, o que pode mudar é a maneira como nos referimos a ele. A capacidade de tratar objetos criados a partir das classes específicas como objetos de uma classe genérica é chamada de polimorfismo.


‼️ CONCEITOS FUNDAMENTAIS POO ‼️

🔻 DOMÍNIO:

Domínio da aplicação, também conhecida como camada de negócio ou de objetos de negócio, é aquela onde estão localizadas as classes que fazem parte do domínio do problema, ou seja, classes correspondentes a objetos que fazem parte da descrição do problema.

🔻 CLASSE:

Um elemento do código que tem a função de representar objetos do mundo real. Dentro dela é comum declararmos atributos e métodos, que representam, respectivamente, as características e comportamentos desse objeto.

🔻 ATRIBUTO:

Atributos são, basicamente, a estrutura de dados que vai representar a classe. Os atributos também são conhecidos como VARIÁVEL DE CLASSE, e podem ser divididos em dois tipos básicos: atributos de instância e de classe.

🔻 VARIÁVEL:

Uma “região de memória (do computador) previamente identificada cuja finalidade é armazenar os dados ou informações de um programa por um determinado espaço de tempo”.

🔻 MÉTODO:

Os métodos representam os estados e ações dos objetos e classes.

🔻 OBJETO:

Em POO, objeto é um "molde" de uma determinada classe, que passa a existir a partir de uma instância da classe. A classe define o comportamento do objeto, usando atributos (propriedades) e métodos (ações). Objeto em ciência da computação, é uma referência a um local da memória que possui um valor. Um objeto pode ser uma variável, função, ou estrutura de dados.

🔻 INSTÂNCIA:

Uma instância de uma classe é um novo objeto criado dessa classe, com o operador new. Instanciar uma classe é criar um novo objeto do mesmo tipo dessa classe. Uma classe somente poderá ser utilizada após ser instanciada.



🧮 Linguagem de Programação vs Paradigma de Linguagem de Programação

LINGUAGEM DE PROGRAMAÇÃO:

É uma linguagem formal que, através de uma série de instruções, permite que um programador escreva um conjunto de ordens, ações consecutivas, dados e algoritmos para criar programas que controlam o comportamento físico e lógico de uma máquina.
Seguem alguns exemplos de como as linguagens de programação podem ser classificadas:

🔺 Nível de abstração:
Baixo Nível: Assembly
Médio Nível: C, C++, D, Objective C, etc.
Alto Nível: Java, C#, PHP, Javascript, etc.
Altíssimo Nível: Python, Ruby, Elixir, etc.

🔺 Paradigma de programação:
Programação Estruturada: C, Pascal, Ada, etc.
Programação Orientada a Objetos: Java, C#, C++, Objective C, D, etc.
Programação Funcional: Lisp, Scheme, Erlang, Elixir, etc.

🔺 Linguagens classificadas pela arquitetura da aplicação:
Desktop: C, C++, Object Pascal, Java, etc.
Web: PHP, Ruby, Javascript, Java, etc.

🔺 Tipo de execução:
Linguagens compiladas: C, C++, Pascal, D, GO, etc.
Linguagens Interpretadas: Python, Ruby, PHP, Javascript, etc.
Linguagens Hibridas: Java, Erlang, Elixir, etc.

PARADIGMA DE LINGUAGEM DE PROGRAMAÇÃO

É um conjunto de características que podem ser utilizados para categorizar determinado grupo de linguagens. Um paradigma pode oferecer técnicas apropriadas para uma aplicação específica.

PARADIGMAS PRINCIPAIS e SEUS SUBPARADIGMAS

🔸 1. Paradigma Imperativo
Neste paradigma, o programa descreve o processamento necessário para solucionar o problema. Assim, o paradigma imperativo é caracterizado por execução sequencial de instruções, pelo uso de variáveis que representam posições de memória e pelo uso de instruções de atribuição que alteram os valores dessas variáveis.
Vejamos alguns Subparadigmas do Paradigma Imperativo e exemplos linguagens de programação que adotam esses subparadigmas.

🔸 1.1 Paradigma estruturado: ALGOL 58 e ALGOL 60
🔸 1.2 Paradigma concorrente: Java e Ada
🔸 1.3 Paradigma Orientado a Objetos: Smalltalk e Java

🔹 2. Paradigma Declarativo
Este paradigma é o modelo no qual os resultados são descritos, mas os passos para chegar aos resultados não são estabelecidos.
Vejamos alguns Subparadigmas do Paradigma Declarativo e exemplos linguagens de programação que adotam esses subparadigmas:

🔹 2.1 Paradigma Funcional: Lisp e Haskell
🔹 2.2 Paradigma Lógico: Prolog

🤝 Contribuindo

Este repositório foi criado para fins de estudo, então contribua com ele.
Se te ajudei de alguma forma, ficarei feliz em saber. E caso você conheça alguém que se identidique com o conteúdo, não deixe de compatilhar.

Se possível:
⭐️ Star o projeto
🐛 Encontrar e relatar issues


Disponibilizado com por cami-la.

More Repositories

1

loops-e-arrays

Repositório do curso Estruturas de Repetição e Arrays com Java. Curso este oferecido pela Digital Innovation one e ministrado por mim.
Java
1,372
star
2

debugging-java

Curso que apresenta conceitos introdutórios sobre como podemos trabalhar com debugging na linguagem Java.
Java
1,032
star
3

collections-java-api-2023

Este repositório é referente ao curso "Collection Framework API Java" e é uma valiosa contribuição para a comunidade de desenvolvedores Java, fornecendo exemplos práticos e recursos educacionais relacionados à poderosa API de coleções da linguagem Java.
Java
915
star
4

curso-dio-dominando-ides-java

Repositório do curso Dominando IDEs Java. Curso este oferecido pela Digital Innovation one e ministrado por mim.
799
star
5

exceptions-java

Curso Tratamento de Exceções em Java
Java
675
star
6

curso-dio-intro-collections

Resolução dos exercícios propostos: CURSO INTRODUTÓRIO COLLECTIONS FRAMEWORK JAVA.
Java
595
star
7

url-shortener-preview

Esta é uma API para encurtar URLs e redirecionar para a URL original.
Java
245
star
8

academia-digital

Projeto de LAB: Conhendo o projeto Spring data JPA com Java na prática
Java
230
star
9

sacola-api_IFOOD_DEV_WEEK

Código-Fonte do Projeto Sacola API do iFood Dev Week.
Java
168
star
10

credit-application-system

Conheça o Spring Boot. Nesse contexto, explore a linguagem de programação Kotlin e entenda como o projeto Spring Data JPA facilita a criação de aplicativos baseados em Spring que usam tecnologias de acesso a dados.
Kotlin
114
star
11

testes_selenium_webdriver_java_curso

Código-fonte do curso: Automação de Testes com Selenium WebDriver e Java
Java
78
star
12

configuracao-inicial-ambiente-de-desenvolvimento-java

Guia para o curso "Configurando o Ambiente de Desenvolvimento Java"
51
star
13

programacao_assistida_por_IA_com_Amazon_CodeWhisperer

Java
42
star
14

mentoria_desmitificando_SQL_NoSQL_com_ChatGPT_Santander

Repositório referente a mentoria Desmestificando Banco de Dados SQL e NoSQL com ChatGT. Mentoria para os alunos participantes dos Bootcamps oferecido pela DIO em parceria com o Santander.
Java
40
star
15

Aprendendo_POO_de_uma_vez_por_todas_test

Java
36
star
16

restautante-poo-java

Código-Fonte Mentoria POO
Java
35
star
17

logica_de_programacao_essencial

Aprenda os conceitos que formam a base do desenvolvimento de software e comece a construir sua compreensão do processo de criação de programas eficazes e funcionais.
Java
29
star
18

mentoria_SANTANDER_CODE_GIRLS_110722

Mentoria Santander Code Girls
Java
27
star
19

listaDeExerciciosPythonBrasil

Exercicios propostos pelo site da pythonBrasil para iniciantes em programação, resolvidos em linguagem java.
Java
26
star
20

mentoria_GFT_START_5_23052022

Desafio Técnico GFT Start #5
Java
26
star
21

restaurante-api

Java
22
star
22

curso-dio-intro-java-i-o

Java
21
star
23

mentoria-GFT-START-4-030322

Mentoria GFT Start 4
Java
17
star
24

sacola

Java
17
star
25

java-POO-curso-em-video

Código fonte das aulas do curso Curso completo de Programação Orientada a Objetos (POO) com a linguagem Java. Aborda os principais conceitos como Classes, Objetos, instanciamento, abstração, encapsulamento, herança, polimorfismo e muito mais. Criado pelo professor Gustavo Guanabara para o Curso em Vídeo, explica todos os conceitos de POO de uma maneira simples, objetiva e divertida.
Java
16
star
26

projeto_classes_poo_youtube

Código Fonte das classes em Java.
Java
15
star
27

mentoria_philips_fullstack_developer_120422

Mentoria Philips FullStack - POO
Java
14
star
28

exercicios-de-fixacao-MYSQL

Resolução de exercícios de fixação do banco de dados MYSQL Server.
13
star
29

mentoria_GFT_QA_1_080322

Mentoria GFT QA #1
Java
12
star
30

unit_testing_JUnit5

Testes unitários em Java utilizando JUnit
Java
12
star
31

fundamentos_angular_alura

Cursos da secção "Fundamentos Angular" da Formação Angular da Alura
TypeScript
11
star
32

gerenciamento-de-colaboradores

Mentoria GFT Start #3
Java
10
star
33

jo-ken-po_22_11_22

Neste repositório, replicaremos o jogo Pedra, Papel e Tesoura (Jo-ken-Po), utilizando a linguagem de programação Java de forma interativa através do console.
Java
10
star
34

Jo-Ken-Po-code-girls-santander

Java
8
star
35

microservices_using_Spring_Boot_and_Spring_Cloud_1_amigoscode

Microservices - Playlist Amigoscode
Java
8
star
36

topCasaFinaArquitetura

Curso Alura: Bootstrap: criação de uma single-page responsiva
HTML
8
star
37

POO-classes-Java

Java
8
star
38

Spring_Boot_Full_Stack_with_Angular_Full_Course_amigoscode_getarrays2

Spring Boot Full Stack with Angular | Full Course [2021]
TypeScript
8
star
39

mentoria_SANTANDER_CODE_GIRLS_110722_Final

Código Fonte da mentoria sobre "Pensamento Computacional e Programação Orientada a Objetos"
Java
8
star
40

spring-security-full-course-amigoscode

Java
8
star
41

testes-unitarios-JUnit-its-rio-cnj

Testes unitários em Java utilizando JUnit
Java
7
star
42

JSON_Web_Token_-JWT-_with_Spring_Security_And_Angular_back_end

Java
7
star
43

Java

Solução de Problemas Práticos vistos nos cursos da Digital Innovation One.
Java
7
star
44

Spring_Boot_Full_Stack_with_Angular_Full_Course_amigoscode_getarrays

In this Spring Boot tutorial you will learn Spring Boot full stack with Angular.
Java
7
star
45

entendendo-es6

JavaScript
6
star
46

Jdev-formacao-Java-Web-Full-Stack

Código fonte das aulas do curso Formação Java Web Full-Stack, ministrado por Alex Edigio.
Java
6
star
47

posicionando_elementos_com_flexbox_em_CSS_DIO

https://web.dio.me/course/posicionando-elementos-com-flexbox-em-css/learning/46f1e8c7-ef6e-458e-ad4e-369fc65faba7?back=/browse
6
star
48

Microservices_and_Distributed_Systems_amigoscode

Microservices and Distributed Systems
Java
6
star
49

DIO-Implementando-Collections-Streams-Java

Java
6
star
50

consuming_API-s_with_Angular_getArrays

Consuming API's with Angular - Get Arrays
TypeScript
6
star
51

alura-studies

TypeScript
5
star
52

modulo_testes_automatizados_aula2_CNJ

Módulo Testes Automátizados - Aula 2: Testes unitários em Java utilizando JUnit
5
star
53

devdojo_academy_microservices_springBoot

https://www.youtube.com/watch?v=vxeMnM15gsI&list=PL62G310vn6nH_iMQoPMhIlK_ey1npyUUl
Java
5
star
54

forum

Kotlin
5
star
55

credit-request-system

Kotlin
5
star
56

angular_comecando_com_o_framework_alura

Curso: Angular começando com o framework
TypeScript
5
star
57

js-primeiros-passos-com-a-linguagem-alura

JavaScript
5
star
58

teste-curso-dio-dominando-ides-java-intellij

teste intellij
Java
5
star
59

pokedex_tw_angular_introducao

Projeto Pokedex Curso Angular - Introdução / Treinaweb
HTML
5
star
60

curso-alura-API-REST-testes-com-Spring-Boot

REST é um dos padrões para APIs mais utilizados no mundo. Aprenda a criar uma API REST segura com Spring Boot, alem de entrar nos tópicos importantes, como o monitoramento, profiles, testes e deploy.
Java
5
star
61

Microsservi-os_na_pr-tica_implementandocom_Java_e_Spring_alura

Java
4
star
62

spring-framework-fundamentos-treinaweb

Spring Boot, Spring Web MVC e o Spring Data. São módulos do Spring que serão abordados neste curso.
Java
4
star
63

livros-facul-modulo1B

Livros do Curso Ciência da Computação - 1 Semestre - Modulo 1B
4
star
64

microservice-repo

4
star
65

recriando-a-pagina-inicial-do-Instagram

CSS
4
star
66

spring_boot_microservices_devdojo

Java
4
star
67

alura-git

Lsita de cursos para controlar o GIT
HTML
4
star
68

typescript-alura

TypeScript
4
star
69

criando_uma_solu-o_de_e-commerce-com-microsservicos_em_Java

Criando uma solução de e-commerce com microsserviços em Java
Java
4
star
70

kotlin-collections-curso-alura

https://cursos.alura.com.br/course/kotlin-collections-set-map
Kotlin
4
star
71

mentoria_Sportheca_mobile_160222

Mentoria Sportheca Mobile
Java
4
star
72

microsservicos_na_pratica_implementando_com_Java_e_Spring_order_alura

Java
4
star
73

gerenciador-tarefas_Feltex

Angular - Feltex
TypeScript
4
star
74

ts-construcao-de-uma-api-com-tipagem-segura_alura

https://cursos.alura.com.br/course/typescript-construcao-api-tipagem-segura
TypeScript
4
star
75

collections-java-api-2023_test

Java
4
star
76

curso-mballem-spring-mvc-com-thymeleaf

Curso de Primeiros Passos no Desenvolvimento Web com Spring-Boot, MVC, JPA, Thymeleaf e Heroku.
HTML
3
star
77

typescript-curso-1

JavaScript
3
star
78

livros-facul-modulo1A

Livros do Curso Ciência da Computação - 1 Semestre - Modulo 1A
3
star
79

bytebank

Kotlin
3
star
80

testes-JUnit-its-rio-cnj

Testes unitários em Java utilizando JUnit 5
Java
3
star
81

meu-primeiro-projeto-maven

Criando meu primeiro projeto Maven com Camila Cavalcante
3
star
82

kotlin-desenvolva-colecoes-arrays-e-listas

Kotlin
3
star
83

test-key-ssh

3
star
84

spring-security-codegate01

Java
3
star
85

desafio-poo-java-kotlin-11-05-2023

3
star
86

sistema-de-controle-de-ponto-e-acesso-com-Spring-Boot

Projeto Sistema de Controle de Acesso com Spring Boot do Bootcamp FullStack Santander da platafoma de cursos online e gratuitos Digital Innovation One.
Java
3
star
87

Spring-Boot-CRUD-Web-Application-with-Thymeleaf-Spring-MVC-Spring-Data-JPA-Hibernate-MySQL

In this video tutorial, we will create a Spring MVC web application for Employee Management System with the following CRUD operations
Java
3
star
88

sistema-de-gerenciamento-de-pessoas-em-API-ReSt-com-Spring-Boot

Projeto sistema de gerenciamento de pessoas em API ReST com Sprig Boot do Bootcamp FullStack Santander da platafoma de cursos online e gratuitos Digital Innovation One.
Java
3
star
89

curso-javacollections-alura

Java
2
star
90

microsservicos_na_pratica_implementando_com_Java_e_Spring_eureka_server_alura

Java
2
star
91

resumos

Resumos e tutoriais
2
star
92

fornecedor-curso-spring-cloud-1-alura

Java
2
star
93

Kafka_Produtores_Consumidores_e_streams_alura

Java
2
star
94

teste-curso-dio-dominando-ides-java

teste repository
Java
2
star
95

loja-microservices-com-Spring-Cloud-alura

Java
2
star
96

treinaweb-spring-data-jpa

2
star
97

microservice-repo2

2
star
98

Laravel_Livewire3_Course_for_Beginners_Yelo-Code

Laravel Livewire 3 Course for Beginners
PHP
2
star
99

Microservices_and_Distributed_Systems_amigosode

2
star
100

curso-DIO-desenvolvimento-basico-java

2
star