O que é Programação Orientada a Objetos - Conceitos Básicos de POO

78.26k views3834 WordsCopy TextShare
Bóson Treinamentos
O que é Programação Orientada a Objetos - Conceitos Básicos de #POO Neste vídeo apresento os concei...
Video Transcript:
o Olá pessoal aqui é o Fábio da Bóson Treinamentos e nesse vídeo farei uma breve introdução à programação orientada a objetos vou trazer nesse vídeo alguns conceitos básicos desse paradigma de programação que é tão importante então utilizado por desenvolvimento de software nos dias de hoje nesse vídeo não vai ter codifi cação mas sim apresentação dos principais conceitos que estão Associados com a programação orientada a objetos como por exemplo conceito de herança o que é polimorfismo que a uma classe o que o objeto e assim por diante então sem perder tempo vamos lá bom que que
é orientação a objetos que a gente pode brigar por ó a programação orientada a objetos p o é o método de programação paradigmas de programação que basicamente utiliza tipos de dados personalizados cerveja a gente trabalhar só com um tipo de dados primitivos aqueles tipos que já conhece inteiro tipo numérico tipo booleano certa a gente consegue construir novos os candidatos em orientação a objetos como o nome diz é baseada fundamentalmente no conceito de objetos que a gente já vai ver do que se trata os blocos de construção do software na orientação a objetos objetos Ela traz
uma série de vantagens na hora de você criar aplicações primeira vantagem é estrutura modular para construção de programas os programas ficam modularizados divididos em partes em pedaços menores o que evidentemente é uma grande vantagem porque facilita a organização da sua aplicação o sofridamente fica mais fácil de manter pelo mesmo motivo você tem muito reuso de código você aproveita pedaços de código já programados as classes basicamente são reduzidos de Cosme assim desenvolvimento de software vai ficando cada vez mais rápido porque os objetos podem ser reutilizados não só na mesma aplicação mas também aplicações distintas Olha que
interessante e um dos conceitos da orientação a objetos o encapsulamento também não precisa porque a gente não precisa conhecer que a gente tá sem terra no objeto para poder usar Ou seja a gente consegue usar é classe de objetos trechos de código que outras pessoas desenvolveram sem necessariamente saber como isso foi feito internamente e ainda subject's é legal cada no conceito de abstração que quer extrair as abstrair é selecionar alguns aspectos que nos interessam um problema que vai ser analisado deixando outros aspectos de La Vie representar assim uma entidade algo que ocorre que existe no
mundo real na forma de ideias Austrália trazer para dentro da sua mente e aí as entidades que foram abstraídas as podem se comunicar entre si e na orientação a objetos isso ocorre por meio de troca de mensagens outra Correia em 2006 ele diz o seguinte pelo princípio da abstração nós isolamos os objetos que queremos representar num ambiente complexo em que ele citou e nesses objetos nós apresentamos somente as características que são relevantes para o problema em questão da semente é o que foi dito anteriormente subir abstração Como eu disse as entidades elas trocam mensagens entre
si as atividades são dumm dumm comunicação deles é feito a partir da troca de mensagens e uma mensagem essas um sinal que o objeto elemento uma entidade envia para outro e essa mensagem pode ser uma requisição e o serviço por exemplo usando uma operação que está programada lá no objeto chamado as mensagens elas ocorrem entre objetos que tenham associação entre si Então as mensagens dela são programadas ou de uma mensagem é recebida uma operação vai ser invocada agora desse termo invocar no item chamado este vai ter vários tipos de mensagens uma procedure é uma função
por exemplo uma mensagem passagem de sinais entre freddy's acionamento de eventos etc Não se preocupe essa tecnologia um pouco confuso vai ficar tudo mais caro longo do tempo aqui você tem um diagrama que mostra um item a uma entidade da entidade b e a entidade já se comunicando com o B por meio do envio de uma mensagem o acesso a licitação por exemplo de uma ação da execução de uma função um mas o que significa exatamente entidade a gente da DB a gente tá falando das instâncias de classes a hora da sua direcao cada conceito
de objeto que por sua vez é uma Instância de uma classe então é de fundamental importância entender o que que é uma classe classe é a representação de uma ideia ou de um conceito ou seja lembra aquela abstração abstração as 10 que você trás do mundo real para o mundo das ideias o mundo do software serão apresentados na forma de classes e as classes são os blocos de construção dos sistemas orientados a objetos da classe de uma responsabilidade bem definida dentro da aplicação e Vai representar uma ideia ou um conceito eu e a Cássia basicamente
é o que eu não comi no comecinho da da apresentação se tem como o tipo personalizado de dados da conta disso não ele é só um objeto que a gente queria nossos próprios tipos de dados esses tipos de dados são as classes e as classes elas são moldes para criação de objetos as classes elas podem ser organizadas em de um projeto de software um conjunto de classes a gente chama de nem Space ou espaço de nomes Então guarda esse termo também e a partir das classes a gente vai derivar os objetos que dão nome ao
paradigma de programação o objeto é uma ocorrência específica de uma classe e ocorrência específica a gente chama de Instância então é super Instância significa uma ocorrência específica da classe objeto assim como a casa que vai representar as quantidades do mundo real a calma pessoa má conta um avião e também conceitos abstratos gráficos ideias assim por diante e os objetos eles tem suas próprias características que vem lá da clássicos origina que são atributos e métodos as características são os atributos que os métodos são as ações a funcionalidade que o objeto vai ter Ambos são provenientes da
classe que originou o objeto objeto é uma abstração também ele só que ele tem um significado com relação ao problema que você está analisando as classes elas vão originar os objetos sob requisição o processo chama-se instanciação por gente objeto de Instância de classe se você programador projetista na lista cria a classe você define a classe A classe vai ser usada para criar os objetos em tempo de execução cuidado com essa dinâmica a classe na prática é um trecho de código mas quem vai ser executado quem vai estar em execução na memória da máquina em tempo
de execução quando a aplicação estiver sendo executada é o objeto eo objeto ele vai ter atributos e métodos Vamos definir aquela tributo a tributo a uma propriedade uma característica particular da ocorrência da classe por exemplo eu posso ter uma classe pessoa que representa todas as pessoas que vão interagir com o software e ao instanciar um objeto pessoa estou me referindo a uma pessoa em particular e essa pessoa em particular tem um atributo nome ela pode ter outra tributo altura idade peso e assim por diante e a gente pode ainda classificar os atributos em estáticos e
dinâmicos os carros para que mantém o mesmo valor durante toda a sua existência e não muda de valor pois a data de nascimento da pessoa não muda já o atributo dinâmico é um que pode variar como passar o tempo que pode ser alterado com o passar do tempo como por exemplo a idade da pessoa que isso sim vai variar de acordo com a data uma data de nascimento é fixe a gente pode considerar um atributo estático a idade da pessoa muda é um atributo dinâmico é legal ter essa essa noção esses tipos de atributos elementos
atributos temos os métodos também dentro da classe o método é uma lógica é uma programação que você coloca na classe para Que ela possa ter funcionalidade ter comportamentos e o método tem um nome bem mas é similar a uma função se você já já estudou programação procedural Você já trabalhou com funções o método é bastante similar o método ele é executado quando você o invoca o quando você não chama você passa uma mensagem para o objeto e invocando o médico pedindo a execução de uma função específica por exemplo a nossa Classe A pessoa pode ter
métodos como nascer comer e morrer são ações comportamentos que a pessoa tem e que quando for modelado em sofre ela pode virar executar o método sempre vai ter um homem e um corpo e esse corpo é onde a gente definir os comandos que você executados quando ele é chamado ele é invocado e o metro vale crescente ele pode receber dados para processamento que são os parâmetros ele pode receber informação para vocês aí devolver uma outra informação uma coisa interessante com relação aos métodos aqui eles devem sempre executar uma única operação método não deve fazer várias
coisas distintas é uma única funcionalidade que a gente aplica aos metros então relação entre classe objeto a classe é como se fosse um molde uma planta na qual você define os atributos e os métodos que você quer representar dentro de um software orientador é um objeto é a Instância dessa classe na memória da máquina em tempo de execução quando o programa está sendo executado nos objetos são criados acho que uma classe pode originar vários objetos se fosse uma classe pessoa nós temos na classe a definição das características e métodos de qualquer pessoa mas os objetos
são as pessoas em particular eu você a outra pessoa que está assistindo que o vídeo nossos parentes assim por diante cada um deles um objeto também vai ter já tributos e os métodos definidos na classe e porém Com valores diferentes cada um tem seu nome Cada um tem sua altura Cada um tem sua data de nascimento e assim por diante então é tem que ficar bem claro essa dessa distinção entre o que é uma classe e o que é um objeto da Classe A classe você Define um objeto você efetivamente usa durante a execução do
seu programa ou seja durante a programação do seu software é mais ou menos como fazer a planta de uma casa a notícia de uma classe né com tudo definido direitinho os cômodos a área altura a o posicionamento dos cômodos e assim por diante só que objeto é a casa física é você contratos profissionais estão aquela planta e montam criam constroem aquela casa física e a partir daquela mesma planta posso construir um monte de casas iguais ou com pequenas diferenças entre si por exemplo a cor da pintura pode ser diferente de uma para outra mas baseando-se
nos conceitos definidos na classe em casa a planta Então essa é uma analogia que a gente pode fazer de classe e objeto as classes elas podem ser representadas quando a gente vai fazer a modelagem sofre o ML é o ML é uma linguagem de modelagem unificada que a gente usa em desenvolvimento de software você a gente tem uma lista de alguns vídeos do ML aqui no canal que eu recomendo que vocês assistam interessante e não ml a gente vai precisar classe essa forma aqui um quadrado não um retângulo na verdade um dividido entre é o
nome da classe vai em cima depois vem a lista de atributos e depois ela está de metros características e funcionalidades da classe por exemplo a classe pessoa ela pode ter como atributos data de nascimento altura peso enorme e os netos ou seja as funcionalidades comportamentos as ações a pessoa podem ser nascer comer andar morrer e assim sucessivamente Lembrando que essas ações ela pode realizar ou sofrer são funcionalidades tal então essa notação de classe que você pode eventualmente utilizar Quando eu tiver desenvolvendo o software e evidentemente a gente codifica as classes é que eu tenho um
exemplo eu falei que até código no vídeo mas é só exemplo Zinho que eu vou mostrar é um código que cria uma classe chamada caixa então vamos supor que eu quero representar uma caixa não só que tô fazendo uma aplicação para os correios e preciso representar lá dentro do meu software as caixas nas quais as pessoas enviam os produtos e essa caixa aqui ela tem uma tributo lado e o resto do calcular volume assim eu sei qual é o volume da Caixa para depois poder vem igualmente calcular o preço do frete Então essa é uma
definição de classe caixa usando a linguagem C Sharp que é orientada a objeto até a gente tem nome da classe caixa Você que escolhe o nome eu abro essa Chaves aí começa a qualificação na caixa eu vim com a lista de atributos eu tenho atributo lado só pergunto na verdade aqui que é do tipo Double e tem a definição do método calcular volume que também retorna Gamble veja os parênteses denotando o método e o método como ele tem a sua programação interna ele também vai ter o seu padre fabs e dentro dele a programação realizada
no caso ele retorna O lado o cubo é assim que a gente calcule o volume de uma caixa lado ao cubo Beleza então essa é a ideia básica de como é que a gente cria uma classe depois a gente pode usar essa classe que nosso program em português a gente quiser agora alguns conceitos Associados a orientação a objetos conceito de herança e não são relacionamento entre classes no qual uma classe herda membros de outra classe membro é atributo e metros e Flamengo atribui direto para que que serve a herança eu posso criar uma classe que
tenha tudo que uma outra classe tem e mais alguma coisinha alguma coisinha extra sem precisar recodificar tudo que já foi codificado na outra classe assim o klassis complexo se repetir corte então a gente usa classe para evitar repetição quando a gente vai definir classes que tem muitas características em comum e são relacionadas e esse desenho que está vendo aqui embaixo eu posso ter uma classe A a partir da com as aí eu posso derivar uma classe B contém tudo que tem ar e mais algumas coisas de bebê ainda possa derivar outra classe c que tem
tudo que tem IP ou seja também o que tem a e mais alguma coisa que eu acrescento na classe C nota é certinha a ponta sempre da classe filho a classe interna dando para a classe pai a classe que está com suas características sem guardadas Beleza então Lembra essa setinha aí que importante Suponha que eu tenho aqui que representem só por homens baleias e gatos que são mamíferos eles têm características em comum porém atributos distintos como é que o moderno e sim só que não foi contratado para fazer um software para departamento de biologia da
da faculdade e preciso fazer A modelagem desses animais nesse sofre como é que eu faço eu posso criar classes distintas para representar cada categoria de animal só que eu vou ter um problema eu vou ter uma repetição enorme decompor o tanto de atributos quanto de metros porque esses animais eles têm muitas coisas em comum todos respiram todos morreram todos reproduzem todos se alimentem assim por diante então repetição desnecessária de código que eu não quero isso eu quero reutilizar código como é que eu faço e eu usei essa com a herança eu vou criar uma classe
genérica é mamífero que tenha todas as características que são comuns a todos esses animais e aí eu queria as classes separadas humano para ligar herdando essas características e aí e implementando de forma Extra as funcionalidades específicas de cada um deles há mais ou menos assim eu posso ter classe mamífero todo mundo inteiro tem um peso todos comem dormem e se reproduzem as baleias ela tem as têm barbatanas e elas nadam os gatos têm uma cor da pelagem e Minho os humanos têm um tom de voz e falam que são características específicas de cada um desses
animais mas todos eles herdam o que está em cima na classe mamíferos Vamos ver outro exemplo por mais detalhado agora mamífero ele pode ter como o características com atributos um habitat onde ele vive seu peso e espécie e ele vai ter um monte de metros comer esperar uma lá dormir reproduzir esse morreu todos nós eles fazem isso os humanos tem nome sobrenome anda e fala e os gatos têm raça em um homem andam em mim eu vejo que eu coloquei nome para o gato não para humana poderia eventualmente migrar esse nome para mamífero para lista
de atributos de mamíferos mas só se todos os os nomes no sentido que ele tirar nome para uma grande nome para os gatinhos tá por isso o nome continua aparecendo nas classes separadas essa ideia da herança Não lembre-se essa classe humana nessa classe gata não fazem solta sendo mostrado aqui assim que tá aqui mais tudo o que tá em mamífero porque essa setinha que ela denota a herança dos membros outro conceito muito importante na educação objetos o conceito de encapsulamento com encapsulamento a gente combina os atributos métodos da classe dentro da classe e deixa visível
para quem vai usar essa classe somente a itens que são necessários para comunicação assim a gente oculta a complexidade do código que eu falei no comecinho da aula eu não preciso saber como é que funciona aquelas internamente para usá-la ela é encapsulado só preciso saber como acessar os elementos internos Ah pois é imagina o motorista conduzindo um veículo para você dirigir um veículo você não quiser saber como é que funciona internamente o motor a combustão você precisa saber como dirigir veículo com usar interface com o veículo Esse é como ligar o veículo como trocar de
marcha como utilizar o volante assim por diante os detalhes a implementação interna do dispositivo dos equipamentos mecanismos ficam ocultos eles estão encapsuladas também tá pessoalmente ele protege os dados e permitia o acesso a esses dados apenas a partir de métodos específicos e autorizados isso tem a ver com que se chama de níveis de acesso com por exemplo os níveis público privado e proteger esse a gente vai estudar com mais detalhes em um outro vídeo mas já fiquei para sua pesquisa isso em vez de acesso público privado e protegido para o encapsulamento E então como encapsulamento
eu posso ter um código extenso super complexo só que ele tá encapsulado no meu objeto e aí quando eu quiser usar eu só faço uma chamada faça isso mostra aquilo retorne calcule me diga manda essas mensagens para o objeto e eu tenho uma resposta a informação que eu preciso o comportamento que eu preciso por isso programação orientada a objetos facilita tanto a nossa vida a gente não precisa se preocupar com muitos detalhes de implementação e o terceiro Pilar da orientação a objetos ou três pilares herança e encapsulamento e o polimorfismo Pole em grego significa muitos
morfos fóruns portanto podem orfismo significa muitas formas qualquer ideia aqui a operação de um gato a funcionalidade objeto pode ter mais de um comportamento dependendo de como era chamado Ou seja a mesma chamada objeto pode retornar valores diferentes ou resultar em comportamentos distintos legal então assim é um comportamento diferente para mesma ação por exemplo eu posso mandar o meu só pra desenhar uma forma geométrica na tela mas essa forma geométrica ela vai aparecer dependendo da Necessidade naquele momento pode ser triângulo pode ser um círculo podes entrar Pede pode ser um cilindro depende o como eu
chamo e dos parâmetros da informação que eu passo para esse Meu método Então isso que a gente chama de polimorfismo outro exemplo nas classes gato em humano a gente tem um comportamento andar então eu amo e uma gatinho Ana porém cada uma dessas classes vai implementar o método de forma diferente eu ando em duas pernas o gatinho anda em quatro partes Então dependendo de como é que a gente chama o método em qual classe A gente chama nesse mesmo método o comportamento vai ser diferente Ah e não precisa ser essencialmente da em classes distintas Pode
ser na mesma classe lá em fechado que você tem que ter em mente a gente tem que fazer pelo método chamado rightline que é para escrever um texto numa linha na tela e a forma esse texto vai ser escrito varia enormemente de acordo com a forma como você passa os dados para ele o método mesmo mas como a informação vai aparecer na tela muda e isso é polimorfismo tranquilo gente então a gente ele os três pilares da orientação a objetos e mais os conceitos básicos de classe objeto atributo método mensagem abstração e se eu fosse
programar orientado a objetos como é que eu faria eu utilizei uma linguagem orientada a objetos existem dezenas e dezenas de linguagens que são orientadas a objetos hoje em dia é que eu tenho uma lista com algumas delas apenas só para citar você é mais mais PHP a linguagem Scala bem interessante o Java que você tá vendo aqui no meio o Python o ser chato e o clube o vírus da Maioria dessas linguagens aqui no canal inclusive para você consultar algumas linguagens são puramente orientadas a objeto ou Java por exemplo e outras permite o desenvolvimento multi
paradigma por exemplo de forma procedural conceitual apresenta como pegar a pensa em ser necessariamente orientada a objetos e a gente também tem linguagens que são baseados em objetos nas quais a gente tem Apoio aos conceitos de objetos mas não é puramente ou inteiramente calcado no conceito de ló Pois é do visual vez e a linguagem ada tranquilo pessoal Então nesse vídeo eu procurei passar para vocês alguns conceitos básicos da orientação a objetos Espero que ele tenha ficado claros e eu vou nos alguns vícios sequentes tentar me aprofundar um pouquinho mais em cada um desses conceitos
e trazer outros com seis um pouco mais avançados um pouco mais complexo desse paradigma de programação que é tão importante para nós Espero que você tenha gostado aproveite para se inscrever aqui no canal da e se você não for inscrito ainda já por esse clique no Sininho aqui embaixo para tirar as notificações para ser avisado Quando a gente tiver conteúdo novo postado aqui no canal se você quiser contribuir com o nosso trabalho trabalho da voz não tem na mente torna-se membro do clube de canal as inscrições para eles estão aqui embaixo na descrição do vídeo
e também clica no botão seja membro do YouTube aí não deixa eu ficar nosso site www.lojasrenner.com.br aí deve seguir nas redes sociais estão aparecendo aqui em cima obrigado gente e até a próxima
Related Videos
O que são Classes e Objetos - Minicurso de Orientação a Objetos
14:48
O que são Classes e Objetos - Minicurso de...
Bóson Treinamentos
31,496 views
O que são Paradigmas de Programação
17:11
O que são Paradigmas de Programação
Bóson Treinamentos
11,053 views
Programação Orientada a Objetos (POO) // Dicionário do Programador
9:57
Programação Orientada a Objetos (POO) // D...
Código Fonte TV
266,356 views
Orientação a objetos com Roberta Arcoverde | #HipstersPontoTube
15:00
Orientação a objetos com Roberta Arcoverde...
Alura
64,237 views
Não consigo aprender programação - o que fazer?
19:19
Não consigo aprender programação - o que f...
Bóson Treinamentos
157,294 views
Explicando a programação orientada a objetos NA PRÁTICA
1:05:15
Explicando a programação orientada a objet...
Mayk Brito
9,487 views
How could a passenger plane and a military helicopter collide over Washington? | About That
9:36
How could a passenger plane and a military...
CBC News
229,059 views
ORIENTAÇÃO A OBJETOS: EXPLICADO (Parte 1)
28:43
ORIENTAÇÃO A OBJETOS: EXPLICADO (Parte 1)
Bonieky Lacerda
114,543 views
SOLID fica FÁCIL com Essas Ilustrações
19:46
SOLID fica FÁCIL com Essas Ilustrações
Filipe Deschamps
347,135 views
Testando o DeepSeek, modelo chinês de Inteligência Artificial: Impressões Iniciais
27:16
Testando o DeepSeek, modelo chinês de Inte...
Bóson Treinamentos
1,080 views
Trump Faces Backlash After Disastrous Funding Freeze; Bernie Rips RFK Jr.: A Closer Look
10:40
Trump Faces Backlash After Disastrous Fund...
Late Night with Seth Meyers
308,668 views
Curso de PROGRAMAÇÃO JAVA para INICIANTES | Tudo que você precisa para aprender Java
1:49:22
Curso de PROGRAMAÇÃO JAVA para INICIANTES ...
Fernanda Kipper | Dev
81,136 views
Os Pilares da Orientação a Objetos: Encapsulamento #01
29:22
Os Pilares da Orientação a Objetos: Encaps...
Cod3r Cursos
22,022 views
7 Design Patterns EVERY Developer Should Know
23:09
7 Design Patterns EVERY Developer Should Know
ForrestKnight
273,862 views
3 Técnicas Que Eu Uso Para Aprender a Programar Qualquer Coisa (mesmo sem ter o dom da programação)
14:55
3 Técnicas Que Eu Uso Para Aprender a Prog...
Filipe Deschamps
1,510,564 views
The Absolute Best Intro to Monads For Software Engineers
15:12
The Absolute Best Intro to Monads For Soft...
Studying With Alex
681,879 views
Polimorfismo JAVA: POO JAVA na Prática. Polimorfismo POO
11:23
Polimorfismo JAVA: POO JAVA na Prática. Po...
Do Back ao Front - Programação FullStack
2,018 views
PROGRAMAÇÃO ORIENTADA A OBJETO (POO) - O que é? Entenda
7:00
PROGRAMAÇÃO ORIENTADA A OBJETO (POO) - O q...
Sharpax
60,101 views
Método Construtor __init__ - Orientação a Objetos com Python 02
11:49
Método Construtor __init__ - Orientação a ...
Bóson Treinamentos
21,579 views
Aula de Programação Orientada a Objetos em Kotlin do básico ao avançado
1:42:55
Aula de Programação Orientada a Objetos em...
Lucas Montano
89,419 views
Copyright © 2025. Made with ♥ in London by YTScribe.com