- Módulo 1 – Programação estruturada versus orientada a objetos
- Módulo 2 – Os quatro pilares da programação orientada a objetos
- Módulo 3 – Linguagens orientadas a objeto
(Mod 01) No primeiro módulo, você verá os conceitos das diferenças entre a programação
estruturada e a Programação Orientada a Objetos (POO).
(Mod 02) No segundo módulo, verá os quatro pilares da POO, ou seja, a abstração, o
encapsulamento, a herança e o polimorfismo.
(Mod 03) Por fim, no terceiro módulo veremos sobre as linguagens orientadas a objeto, como
o Java, C++ e C#.
NICIANDO
(Mod 01) PROGRAMAÇÃO ESTRUTURADA
É preciso saber que este tipo de programação segue uma lógica e sequência de pensamentos de uma máquina. Ou seja, a sua lógica é direcionada à linguagem de máquina, já que ela realiza o que foi orientado pelo programador por meio de uma linguagem estruturada.
Para saber mais sobre isso, observe o recurso abaixo. As imagens contidas nele representam fluxogramas (símbolos para representação de regras e procedimentos lógicos que levam a solução de um problema) das interações já mencionadas: sequência, decisão e iteração.
Sequência
Segue uma sequência lógica para realizar determinada ação, ou seja, os comandos

Decisão
Uma ou mais decisões devem ser testadas pelo programa, por exemplo: If Else, Else If, SWITCH-CASE.

Iteração
É uma repetição que pode ser interrompida quando a condição for satisfeita, por exemplo: mostre na tela números de 1 a 100, o programa iniciará mostrando o número 1 na tela e só finalizará quando chegar ao número 100, que neste caso é a condição a ser satisfeita. As estruturas a serem utilizadas para realizar essa tarefa pode ser a FOR, a WHILE e a DO WHILE.

Fluxogramas e programação estruturada
Parei 2:03

Execução = fluxograma = retângulo
Decisão = fluxograma = Losango
Repetição = fluxograma = Usa Imagem de setas como a da reciclagem
Aqui parei por causa de querer desenhar todo estudo no video fluxograma e seguir o manual e fazer depois (URGENTE ATENTAR PARA O QUE ESTÁ ESCRITO ANTES DESSA EXECUÇÃO)
(Mod 01)PROGRAMAÇÃO ORIENTADA A OBJETOS
Enquanto a programação estruturada obedece a uma lógica de máquina, a programação orientada a objetos funciona de um modo mais similar ao raciocínio humano. Os seus códigos são organizados de acordo com objetos, e não processos, como no caso da programação estruturada.
OBS.:
https://lms.ev.org.br/mpls/Custom/Cds/COURSES/3236-POO/curso/pdfs/integra/video%202.pdf
RESUMO:
MOD 01
Programação estruturada = Conversa com Máquina
Programação orientada a objetos = Conversa com Raciocínio Humano
Acima um rápido conhecimento sobre a orientação a objeto:
Com isso, o surgimento da programação orientada a objetos aconteceu como
forma de facilitar a programação, o que seria quase impossível com a programação
estruturada.
VIDEO AQUI ESTÁ NO CURSO(Mesmo informação do documento acima)
De acordo com o vídeo, o modo de programar orientado a objetos surgiu da necessidade de deixar a programação mais fácil, possibilitando ao desenvolvedor entregar um software que satisfaça completamente o cliente. Algo muito difícil e às vezes, quase impossível, com a programação estruturada.
Para que isso ocorra, é necessário que você, como programador, ensine a máquina a pensar como os seres humanos, mostrando como o nosso mundo funciona.
OBJETO
São elementos do mundo real para o mundo da programação. O objeto é criado a partir de uma classe. É algo que se visualiza, se utiliza e assume um papel no domínio do problema. Um exemplo disso, é um Fusca 1964.
Pessoas, Automóveis(tudo q se move até q voa), Computadores, IA (automação)(eu acrescentei isso)
ATRIBUTOS
São as características do objeto. Considerando o exemplo do Fusca 1964, os atributos deles são: ano de fabricação é 1964 e que ele tem um formato arredondado e o motor fica na parte traseira.
MÉTODOS
São os comportamentos do objeto. Ainda de acordo com o exemplo, o Fusca pode se locomover, transportando pessoas, cargas etc.
Pessoas podem andar, falar e uma quantidade enorme de possibilidades(eu adicionei mas estou raciocinando isso)
CLASSES
São os agrupamentos que descrevem todos os objetos de um único tipo. Por exemplo, o fusca pertence à classe dos carros. Não importa a sua marca ou ano. O que importa é que são objetos que se encaixam nesta classe, que serve como molde para a criação dos objetos. É na classe que são moldados os objetos que serão utilizados do programa a ser desenvolvido.
INSTÂNCIAS
Objetos criados a partir de uma classe
Nas palavras apresentadas, é possível notar alguns atributos relacionados à classe pessoa (bonita, engraçada, esperta, grande, gorda etc.), ou seja, nessa classe, é possível encontrar pessoas (objetos) com tais características (atributos).
Já os métodos são todos os tipos de ação que um objeto pode realizar. No caso de um carro podemos pensar em ações como dar ré, ir para frente, frear etc. No caso de uma pessoa, podemos pensar em ações como comer, correr, falar, andar, entre outras diversas ações que uma pessoa pode realizar.
APLICAÇÃO DA PROGRAMAÇÃO DE OBJETOS
Observe a CLASSE = PESSOA
Q possui ATRIBUTOS = NOME | TELEFONE | EMAIL | IDADE
CLASSE
São os agrupamentos que descrevem todos os objetos de um único tipo.
Ex.: Uma Pessoa Misael ou um Carro e todas as suas características que fazem sua existência e ação assim como identificar por suas características únicas. Também válido as pessoas que tem todas as definições abaixo para leitura da máquina e execução de alguma ação.
MÉTODOS
Andar, Falar, Escrever, Correr
Ações que se podem fazer
ATRIBUTOS
Nome, Telefone, email, idade
INSTÂNCIA
Misael Lima
24 98121 1176
misael.lima@gmail.com
23 anos
Andar()
Falar()
As Instâncias são novos Objetos criados a partir de uma classe
Com isso todos os novos Objetos e Instâncias criados a partir de uma classe
Terão mesmo conjunto de atributos definidos pela classe, mas com conteúdo individual
ENTÃO É PRECISO ENTENDER MÉTODO E INSTÂNCIA
São essenciais para PROGRAMAÇÃO ORIENTADA A OBJETOS
SAIBA MAIS
Indicamos ainda o vídeo:
PAREI AQUI OLHAR VIDEO ACIMA E CONTINUAR O RACIOCINIO 02/04
Continuar Aqui 06/05/24
REPETINDO PARA CLAREZA DE ENTENDIMENTO (ainda no mod 01)
Como a programação estruturada possui uma linguagem mais parecida com a da máquina, ela permite que o programador utilize melhor o desempenho do hardware, resultando em um código mais Eficiente.
APOS ENTENDIMENTO SOBRE Programação Estruturada e Programação Orientada a Objeto seguiu video:
Sobre assuntos do Vídeo:
1)Placa Mãe
2)Processador(realiza a instrução de um programa)
3)Memória Ram e Rom (guardam informações para a máquina funcionar)
Memória Ram (pentes)
- Guardam as memórias Voláteis não ficam armazenadas
- Programas e Arquivos são armazenados temporariamente
Memória Rom (parece uma baratinha com casca e perninhas – conectores)
- Oferece dados para leitura
- Armazenam firmwares que controlam funções básicas
Disco Rígido HD
- Armazena todos arquivos existentes no computador
Agora q sabemos os principais componentes do pc, vamos conferir na sequência os pilares da Programação Orientada a Objetos
No vídeo, você conheceu mais sobre o conceito de hardware, sobretudo, observando os principais componentes do computador, isto é, a placa mãe, a memória RAM(pentes de memória) e ROM(dados armazenados), o disco rígido e o processador.
MELHORANDO RACIOCÍNIO, ENTENDENDO NA PRÁTICA OS CONCEITOS ACIMA ABORADOS:
ENTENDENDO ATÉ AGORA E ADD O COMPLEMENTO DO VIDEO, SEPARAR PROGRAMAÇÃO ESTRUTURADA DA PROGRAMAÇÃO ORIENTADA A OBJETOS
Também preciso entender esses conceitos abordados no vídeo acima no final:
Programação Orientação a Objeto Possuí características que possibilitam a criação de código mais genérico e seu reaproveitamento em casos específicos
• Herança
• Encapsulamento
• Polimorfismo
Aqui você compreendeu sobre a programação estruturada, como ela funciona e qual a sua estrutura, cuja lógica e sequência seguem os pensamentos de uma máquina.
Somado a isso, você também viu acerca da programação orientada a objetos, isto é, a programação próxima ao raciocínio. Além disso, você acompanhou brevemente a história desta última, bem como os conceitos de objetos, atributos, métodos, classes e instâncias.
No entanto, ainda é necessário entender os quatro pilares da programação orientada a objetos, assunto que você estudará no próximo módulo. Acompanhe!
ENTRANDO MÓDULOS 2
Módulo 2
Os quatro pilares da programação orientada a objetos
abstração, encapsulamento, herança e polimorfismo
- abstração,
- encapsulamento,
- herança
- e polimorfismo
ABSTRAÇÃO
Na POO, damos o nome de abstração para o processo de aproximar o mundo real do mundo da programação, sendo o seu objetivo, simplificar um problema difícil. Para isso, a abstração leva em conta os aspectos importantes de um determinado ponto de vista e desconsidera os aspectos restantes.
A abstração nada mais é do que você abstrair coisas, ou seja, quando você tem algo muito grande, mas não há necessidade de cadastrar todas as informações.
Na Prática
Vamos supor que você está desenvolvendo um código com a classe “ser humano”. Essa classe é composta por inúmeras variantes (atributos), como por exemplo: altura, peso, cor da pele, cor do olho, CPF, nome, endereço etc.
O objetivo do seu código é tratar o “ser humano” como cliente. Para cada cliente é preciso obter as informações de CPF, Nome e Endereço. As outras informações que pode obter na classe “ser humano”, como cor da pele, cor do olho, altura, peso etc. não são importantes para esta situação.
Portanto, podemos abstrair estas informações e considerar somente o que importa.
Video ex
Encapsulamento
Agora que já entendemos o que é abstração, vamos aprender sobre o encapsulamento. Ao encapsular algo, você está colocando um objeto dentro de um recipiente, igual a um remédio de cápsula.
Conceito de encapsulamento
É a ação de ocultar partes independentes da implementação, permitindo construir partes invisíveis ao mundo exterior.
Ok, mas se no fim eu estou ocultando detalhes do código, como que ele vai funcionar? A POO permite que você converse com esta cápsula, trocando informações entre o mundo externo e o objeto por meio de mensagens. Portanto, ao enviar mensagens para essa cápsula, você vai obter uma resposta, sem precisar entrar nela.
Mas não podemos esquecer de um importante detalhe! Para que haja esta troca de mensagens, precisamos desenvolver uma interface. É a interface que permite esta comunicação com o mundo externo.
Conceito de interface
É uma lista de serviços fornecidos por um componente. É o contato com o mundo exterior, que define o que pode ser feito com um objeto de determinada classe. Ou seja, a interface é uma classe composta apenas por métodos (não possui atributos).
Anteriormente, você aprendeu sobre abstração, certo? Que nada mais é do que simplificar uma classe, se concentrando apenas em informações importantes e relevantes para o propósito do código.
No encapsulamento esse conceito é muito importante, já que os métodos da classe encapsulada serão abstratos, ou seja, os métodos abstratos são previstos ali, mas não são implementados na interface.
Para entender melhor esse processo, pense, por exemplo, nas máquinas de café expresso nas padarias.

Como ela é feita, não é algo que precisamos saber para poder obter o resultado do processo (nosso café quentinho). Por isso, a máquina é um objeto encapsulado, onde os ingredientes e o mecanismo do preparo do café ficam escondidos atrás da interface externa da máquina, composta por botões de comando (como ligar, desligar, tipos de bebida etc.) que auxiliam na preparação.
E
Encapsulamento (Lembra de Capsula)
H
Herança (Lembra coisas q vai receber do avo de sua mãe)
P
Polimorfiso (Lembra Poli de Muito | Morfo de Forma – Várias formas de se fazer alguma coisa)
A Abstração está dentro do Encapsulamento forma de tirar apenas o que importa ex uma pessoa tem muitas variantes mas quero q ele seja tratado como Cliente vou buscar CPF, NOME, ENDEREÇO e CONTATO somente o que importa nessa situação de “Variável Cliente”
Video
Neste tópico, você compreendeu o conceito de encapsulamento e como ele é aplicado na POO. Contudo, a seguir, vamos aprender sobre outro conceito muito relevante para a programação orientada a objetos, a herança.
Herança
Outro pilar da POO é a herança. Assim como no mundo real, a herança na POO também diz respeito à ação de herdar. Ela nada mais é do que um objeto poder ser criado em uma outra classe, levando consigo todos os atributos já existentes em sua classe de origem.
A herança é uma maneira de reutilizar o código já existente em uma nova classe. Desta forma, o código é aprimorado com novas e melhores capacidades. Ao utilizar este pilar, os programadores economizam tempo de desenvolvimento de um programa, já que eles reutilizam códigos já testados e aprovados.
No organograma abaixo, mostra um exemplo de herança. Ao analisá-la, percebe-se que as classes herbívoro, carnívoro e onívoro podem herdar quaisquer atributos necessários da classe animal: tamanho, raça, cor etc. Da mesma forma, as classes leão, hiena, homem e coelho podem herdar atributos das classes herbívoro, carnívoro ou onívoro.

No texto sobre Herança, de autoria de Evandro Eduardo Seron Ruiz, disponibilizado pela Universidade de São Paulo (USP), você encontra informações complementares sobre a herança
Segue link caso o acima não abra:
https://dcm.ffclrp.usp.br/~evandro/ibm1030/constru/heranca.html
Polimorfismo
E o polimorfismo? Você sabe o que é e como funciona?
O polimorfismo é um pilar da POO que é utilizado para que duas classes façam uso do mesmo método, implementando-o de formas diferentes. Ele permite que o programador desenvolva o código de forma ampla ao invés de perder muito tempo no desenvolvimento de códigos específicos. Ou seja, o polimorfismo permite que sistemas sejam escritos de forma a processar objetos que compartilham a mesma superclasse (classe já existente), como se eles fossem parte direta dela.
Se pensarmos na superclasse Animal, estabelecemos o método “emitir o som do objeto animal”, ou seja, os objetos pato, cachorro e gato, por exemplo, devem emitir um som ao comando do método, mas cada um fará isso de um jeito diferente.
Agora observe no fluxo apresentado, mais um exemplo de que o polimorfismo foi este processo de implementar métodos (mover).
No video acima fala especificamente de Polimorfismo (Muitas Formas) dentro da linguagem Java
Existem 2 tipos:
1) Sobreposição
2) Sobrecarga
pAREI NO VIDEO 9:15(terminei 13/05/24)
(Antes ler texto abaixo e Na Aula Avançar)
Parabéns! Você chegou ao final do módulo 2.
Aqui, a partir de exemplos concretos, você pôde compreender os quatro principais conceitos da programação orientada a objetos, os quais são a abstração, o encapsulamento, a herança e o polimorfismo.
Vale ressaltar que eles são essenciais não só para o domínio da POO, mas também para a sua futura atuação profissional nessa área. Contudo, para que isso ocorra plenamente, é relevante que você aprenda as linguagens orientadas a objeto, as quais veremos no próximo módulo. Vamos lá!
Selecione o botão “Avançar” e confira!
DEPOIS DE VER VIDEO IR PARA MÓDULO 3 (COMENTADA 09/05/24)
Módulo 3
Linguagens orientadas a objeto
Linguagem Java
Oracle comprou a linguagem.
O diferencial da linguagem Java é ser multiplataforma, ou seja, um mesmo programa pode funcionar perfeitamente em Windows, Linux, Android e iOS. Atualmente ela é muito utilizada em desenvolvimento da Internet da Coisas (IoT), aplicações para celular, além de jogos on-line, aplicativos para Android, páginas da Internet, documentos interativos etc.

2. Perceba que a variável “x” começa valendo 4
3. Dentro da repetição “While”, é solicitado que a cada volta no loop (comando de repetição), seja retirado um número x, e depois este resultado deve ser mostrado na tela System.out.println (x).
Vantagens e desvantagens da linguagem Java
A linguagem Java possui diversas vantagens que tornam a programação muito mais rápida, fácil e eficiente. Vamos conhecê-las:
Portabilidade: pode ser executada Varias Plataformas Windows
Multi-Threaded: suporta multiprocessamentos, ou seja, permite realizar mais de um processo ao mesmo tempo.
Criação de jogos: quando falamos em desenvolvimento de jogos, Java é a primeira linguagem a ser lembrada, já que ela possui vários recursos que facilitam a produção de inúmeros tipos de jogos.
Gratuidade: a linguagem e seus ambientes de desenvolvimento são totalmente gratuitos.
Gratuidade: a linguagem e seus ambientes de desenvolvimento são totalmente gratuitos.
Independência: Java é independente de qualquer plataforma, pois ela se conecta em diversas aplicações e sistemas.
Apesar da linguagem Java possuir muitas vantagens, como toda a linguagem, ela também possui algumas desvantagens que vale a pena você conhecer:
Estrutura da linguagem complexa
Para que seja realizada uma simples instrução em seu programa, é necessário que muitas linhas de códigos sejam programadas e escritas.
Reutilização do código
Como a linguagem faz uso do Bytecode (um formato de código que fica entre o código fonte manipulado pelo programador e o código de máquina), a segurança do código fica comprometida, já que facilita para que outros programadores, sem a permissão, reutilizem o código e recuperem o código fonte original.
Gostou da linguagem? Quer saber um pouco mais em um curso para iniciantes?
Aqui na Escola Virtual da Fundação Bradesco disponibilizamos o curso Linguagem de Programação Java – Básico para quem quer começar a programar na linguagem Java. Nele, você aprenderá como preparar o ambiente de programação com todos os recursos necessários, além de saber sobre fluxos de controle, métodos e outros recursos da linguagem. (Link acima não estava funcionando 13/05/24
Linguagem C++
Essa linguagem é muito conhecida e utilizada desde 1990, principalmente no universo acadêmico, devido ao seu grande desempenho!
Linguagem C++
Ela foi criada no início de 1980, por Bjame Stroustrup, no Bell Laboratories. A C++ possui diversos recursos que embelezam a linguagem C, principalmente trazendo a possibilidade da programação orientada a objetos. Com isso, surge a possibilidade da linguagem poder ser utilizada em grandes projetos com diversos programadores colaborando simultaneamente.
C++ é uma linguagem de programação multiparadigma, onde podemos desenvolver um mesmo programa orientado a objetos (POO) ou procedural (linguagem estruturada).
Atenção
A primeira coisa que podemos citar como desvantagem é o gerenciamento manual da memória. Contudo, tenha atenção: mesmo que possa ser visto como uma vantagem, ele também pode causar problemas, já que é um processo que não é fácil. Se não for realizado com eficiência, ele pode trazer problemas na aplicação a ser desenvolvida.
Em função disso, é relevante frisar que tal gerenciamento manual pode gerar insegurança, ou seja, tal fato pode fazer com que ela não seja tão segura como as outras linguagens, por exemplo: a Java. A capacidade que a linguagem tem de realizar basicamente tudo, faz com que o risco de algo ilícito ou errado acontecer aumente.
Diferenças e semelhanças entre Java e C++
Agora que você conheceu ambas as linguagens, que tal ver no que elas se assemelham e se diferem? Confira abaixo:
Design
As duas linguagens são bem diferentes. Em compensação, ambas são muito boas em relação a sua performance, apesar da C++ ter a tendência de ser um pouco mais rápida, já que o Java necessita ser interpretado no momento da execução do código. Esse processo acaba tornando a linguagem Java um pouco mais lenta, mas, de qualquer forma, as duas linguagens têm um bom desempenho, mas de forma diferente.
Popularidade
As duas linguagens são muito utilizadas mundialmente. Porém, a C++ já era utilizada e reconhecida antes da Java entrar no mercado por volta de 2012.
Atualmente, a Java é a linguagem vista como mais popular, apesar do C++ ter sido desenvolvida para uso geral. Cada uma tem sua legião de fãs.
Pareiaqui antes do video Saib mais Introdução C++
O QUE TIREI DO VÍDEO ACIMA
Observações que devo estar em mente como aprendizado:
Palavras em Inglês
if=se
while=enquanto
for=para
function
void
return
Compilador = Alto Nível para Baixo nível
Processador
Hd = Arquivos armazenados
Memorias Ram(pentes) = Abrir executar
Sistema Operacional Gerencia tudo isso tratamento e processamento dos dados
Processador Executa todos os dados e tarefas que é gerenciado pelo = Sistema Operacional
Hardware e Software
Uma linguagem de Alto Nivel que se escreve para o computador baixo nível deve se usar o compilador
Uma necessidade é sair do bloqueio da dificuldade ao estudar e achar dificuldade sendo distante uma algo mais prático e intendível a realidade do agora dia a dia
Criar Algorítmo e Rodar ( no video ele disse ajudar C++ programar para computador)
DANDO CONTINUIDADE
Linguagem C#
Ok, mas como se lê este nome? C o quê?
O nome é pronunciado como C Sharp! E a escolha deste nome causou uma grande confusão entre as pessoas, que acreditavam na semelhança do nome com o C++. Porém, está linguagem seria uma atualização do C++, como se fosse um C++++, entendeu?
Na verdade, o nome da linguagem foi escolhido, pois o símbolo # é utilizado para se referir ao sustenido, no meio musical. O sustenido indica meio tom acima de uma determinada nota musical. E já que o C# possui uma sintaxe elegante, expressiva e orientada a objetos, foi o nome escolhido pela Microsoft quando foi desenvolvida como parte da plataforma .NET.
A C# foi criada com base na linguagem C++, mas inseriu também alguns percursos de outras linguagens, como a Java e Object Pascal. A C# é uma linguagem multiparadigma e de tipagem (que não realiza conversões automaticamente, não permitindo que um mesmo dado seja tratado como se fosse de outro tipo).
A linguagem C# tem suas raízes em C, C++ e Java, adaptando os melhores recursos de cada linguagem para que seja possível acrescentar novas capacidades próprias.
Além disso, é interessante comentar que essa linguagem foi desenvolvida por um grupo de pessoas que ajudou na criação, destacando-se Anders Hejlsberg, o mesmo que ajudou no desenvolvimento das linguagens Turbo Pascal e Delphi. Por eles não focarem em sua compatibilidade, a linguagem foi desenvolvida do zero, sendo a maioria das classes do framework .NET em C#.
No código abaixo, analise uma classe desenvolvida em C#. Observe que as diferenças no código são poucas, mas a lógica da POO é a mesma, pois temos o objeto “cachorro” e os atributos “nome” e “idade”.
public class Cachorro { public Cachorro(string nome, int idade) { Nome = nome; Idade = idade; } public string Nome { get; protected set; } = “Canelinha”; public int Idade { get; set; } = 1; public void IncrementaIdade() => Idade++; public int IdadeDoCachorroEmAnos() => Idade * 7; }
andes teve muito conteúdo sobre o assunto mas só descrevi o q esta abaixo para tentar pelo menos lembrar que foi visto por mim nas aulas e tentar assimilar o máximo possível
Em virtude da programação orientada a objetos ser mais eficiente para a programação em geral, ela foi rapidamente conhecida e utilizada pelo mundo todo.
Como vimos, são muitas as diferenças entre o modo de programar estruturado e a orientada a objetos, sendo que cada um tem sua utilidade e eficácia. Também conhecemos as diferenças entre cada uma das linguagens e como elas podem ajudar a programar em diferentes projetos.
Na orientação a objetos, alguns pilares devem ser conhecidos a fundo para que você consiga fazer o uso de suas ferramentas com eficiência. Por isso, você conheceu os principais que são: Encapsulamento, Abstração, Polimorfismo e Herança.
Link para Ebook importante ler sobre