Princípios básicos de programação (POO) para iniciantes ✅ | Grant Klimaytys | Skillshare

Velocidade de reprodução


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Princípios básicos de programação (POO) para iniciantes ✅

teacher avatar Grant Klimaytys, Software Engineer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

13 aulas (1 h 3 min)
    • 1. Introdução e o que você vai aprender

      1:05
    • 2. O que é sua programação de orientação a objetos?

      3:29
    • 3. A grande ideia, por que a maioria de as línguas modernas usam a orientação de objetos?

      2:14
    • 4. Como configurar nosso ambiente de desenvolvimento

      2:24
    • 5. Cursos e objetos e de em que explicou

      3:17
    • 6. Como criar um curso e um objeto

      11:27
    • 7. Herança explicada em um exemplo

      7:34
    • 8. Tipos de herança e gotchas

      5:03
    • 9. Uma Polymorphism explicada

      2:20
    • 10. Um exemplo de polymorphism

      11:23
    • 11. Encapsulamento explicado

      1:51
    • 12. Um exemplo de encapsulação

      5:01
    • 13. Breve e desna nos projetos

      5:35
  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

1.097

Estudantes

5

Projetos

Sobre este curso

Programação para objetos O que é isso?

Essa foi minha maior pergunta quando eu começou a programar.

Ele de seus de pessoas para obter o conceito de programação de orientada para o objeto de sua mente. Agora vou ajudar você a obter orientação de objetos em menos da de uma hora. Evite explicações de descarga que você encontra na internet, como explico tudo na linguagem de on e de Lego

__

Uma maneira muito simples e interativa de aprender básica do OOP

_________________________________________________

Programação de objetos (OOP) é usado em quase todas as línguas populares na lá de lá, seja de Java, C#, Javascript ou PHP. Você também vai precisar para a que o iOS e Android, se você faz isso!

Então a ENROLE de HOa

0f78644

Conheça seu professor

Teacher Profile Image

Grant Klimaytys

Software Engineer

Professor

My very first software program was the artificial intelligence brain of an underwater robot in the early 2000's, still the coolest project I have ever worked on!

Since then I have designed and built websites, software and apps using all manner of languages and frameworks. Javascript, Bootstrap, .Net, Python, PHP - you name it, I've probably used it.

These days I focus on building quality cross platform apps using Xamarin studio in C#, Xcode and Swift 2 and Android Studio.

If you're considering becoming a freelance developer then I can honestly say it is the best life in the world. You will have no boss, earn an hourly rate of $60 - $150 and take holiday whenever you want!

Of course you have to learn how to make good apps first, which brings me to my second pa... Visualizar o perfil completo

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%
Arquivo de avaliações

Em outubro de 2018, atualizamos nosso sistema de avaliações para melhorar a forma como coletamos feedback. Abaixo estão as avaliações escritas antes dessa atualização.

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui cursos curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução e o que você vai aprender: Oi, Meu nome é Grant, e neste curso eu vou ensiná-los tudo sobre programação orientada a objetos, e é algo que você vai ver em cada linguagem moderna como Java, sea shop e Swift. Agora, eu me lembro quando eu estava aprendendo pela primeira vez sobre orientação de objetos, eu levei uns bons seis meses a um ano para realmente entender os pilares fundamentais do que ele era. Então, na época, quando comecei a aprender, eu não tinha idéia de quais classes e objetos eram herança, polimorfismo e encapsulamento. Mas todos eles são tópicos muito simples. E é por isso que eu fiz este curso é para que você, como o iniciante, possa aprender todos esses tópicos em menos de uma hora porque eles são tão simples. Eu também uso ilustrações Lego porque eu acho que é a melhor maneira de obter algo como uma imagem vale 1000 palavras e quem não gosta de Lego? Então estou ansioso para trabalhar com você 2. O que é sua programação de orientação a objetos?: Tudo bem. Olá aí. Neste tutorial, eu vou orientá-lo através exatamente o que orientação objeto é em termos de programação. E quando comecei a programar, foi extremamente confuso para mim. Mas uma vez que você começa a idéia disso, você nunca vai voltar a qualquer maneira antiga de pensar. E para facilitar a sua transição para a forma como explico isto, vou usar peças de Lego. E Lego é o perfeito esperas descrito programação, porque quando você programa você está criando algo. Quando você usa Lego, você está criando algo. Então, como era a programação quando começou? Bem, programação. Quando foi em torno de Waas, eu tinha um pedaço de dados e eu quero alimentá-lo através de um pipeline, e eu quero fazer várias operações sobre ele. Digamos que eu tivesse um número. Eu alimentaria através de um anúncio um pouco de cada vez. E em Lego, podemos representar isso com três trabalhadores um, dois e três, e no lado esquerdo, damos um emprego ao primeiro trabalhador. Para isso, ele tem que fazer, por exemplo, o chassi de um carro de corrida. Uma vez que ele faz isso, ele passa para o segundo trabalhador, e ele adiciona as rodas ao carro de corrida. E finalmente, eles passam para o cara triste à direita, e ele adiciona o spoiler no assento e vários outros pedaços do carro. E uma vez feito isso, o carro sai da fábrica, e esse é o fim da linha de produção. Então, desta forma de pensar, estamos pensando sobre os trabalhadores estavam se concentrando naqueles caras. Mas o que acontece se fizermos dois carros ou três carros ou 20 carros ou 20 milhões de carros? Começamos a ter um problema se quisermos manter o controle desses carros porque nosso programase concentrou apenas nos trabalhadores. Começamos a ter um problema se quisermos manter o controle desses carros porque nosso programa Nós realmente não sabemos para onde esses carros foram. E nos primeiros dias da programação isso era bom porque só tínhamos um pedaço de dados geralmente que queríamos analisar. Portanto, a orientação do objeto ainda está programando, mas coloca o foco no item que está sendo construído em vez disso. Fora do trabalho é fazer o trabalho, então a orientação do objeto é. Aqui está o chassi do carro, e um por um nós convidamos os trabalhadores por esta porta para vir e adicionar pedaços ao carro, então eles fazem isso pouco a pouco eventualmente. E então, no final, temos um carro que estamos rastreando. Nós realmente não nos importamos com os trabalhadores onde eles ficam e o que eles fazem. Nós só nos preocupamos com o objeto final que é produzido e isso é tudo. Há realmente orientação do objeto do dedo do pé. Estamos nos concentrando na coisa que fazemos. 3. A grande ideia, por que a maioria de as línguas modernas usam a orientação de objetos?: Bem-vindos à palestra para outra curta. E neste, vamos apenas olhar para a grande ideia. Por que a maioria das linguagens modernas usa orientação de objeto? Bem, se você se lembra da primeira aula, tínhamos três caras em uma linha de trabalho e essa era a maneira antiga de construir coisas em programas. E esses três caras poderiam fazer um carro assim. Quando mudamos a orientação do objeto, tínhamos o carro como foco. E nós temos os três caras por sua vez, criando os pedaços no carro. Agora, se voltarmos à velha maneira de fazer as coisas, se eu quisesse mudar algo naquele carro? E se eu quisesse colocar dois assentos e um spoiler muito maior? Bem, eu teria que treinar alguns caras novos e inseri-los nesta pequena linha de trabalho, e isso seria um problema, porque isso significaria escrever mais código em nosso programa. Não queremos necessariamente fazer isso. E, claro, como sempre, essa não é toda a verdade. Há maneiras de contornar isso, mas é muito, muito mais simples descer por uma rota orientada a objetos. Então, quando começamos a focar no objeto. Os caras podem ser trocados quando entram pela porta. Cada cara agora é uma unidade autônoma, e ele pode fazer coisas diferentes para o carro para que possamos produzir um carro assim em vez disso. E Orientação objeto é tão, tão poderoso principalmente porque por essa razão, nós podemos fazer coisas dedos objetos usando pequenos pedaços de código. E não precisamos necessariamente nos preocupar com a ordem do código, onde os códigos são armazenados ou como o código faz seu trabalho. E na próxima lição, vamos instalar um pouco de software de programação chamado Mono Develop que nos permite desenvolver em Mac, PC ou Lennox e executar todos esses aplicativos. Plataforma cruzada. Então junte-se a mim. 4. Como configurar nosso ambiente de desenvolvimento: Ok, vamos em frente e preparar o nosso ambiente de desenvolvimento, e vamos usar o desenvolvimento mono muito popular. E esta é uma porta de código aberto fora do framework dot net, eu acredito, e é executada em janelas do OS X no Linux. Agora. Atualmente, eu sei sobre isso porque eu uso o que é um produto chamado Samir em e Xamarin me permite escrever multi-plataforma APS para Android IOS Windows, telefone Mac windows, etc. Aqui diz que você pode baixar Xamarin studio, que é um ambiente de desenvolvimento que permite usar mono development, e você pode usá-lo gratuitamente, desde que você não queira criar I us ou Android APS. Eu faço um curso separado sobre como criar IOS e Android APS. Então, se você quiser aprender isso, então vá em frente e veja esse curso mais tarde. Então, por agora, venha a mono desenvolvido ponto com barra download no hit baixar Samrin estúdio. E uma vez que você tenha feito isso, execute-o e ele irá verificar tudo para você. E quando isso estiver completo, basta arrastar o xamarin studio para aplicativos e ele será instalado. Ok, será muito semelhante no Windows. Você só terá que passar por um processo de instalação. Alternativamente, você também pode seguir os tutoriais usando o estúdio visual da Microsoft, e obviamente isso só vai ser executado no Windows e você pode baixá-lo do visual studio dot com. Isso também é completamente gratuito para desenvolvedores individuais. E à medida que passamos pelos vários exemplos deste curso, o fluxo de trabalho será extremamente semelhante entre as duas plataformas. Então não importa qual você tem. Se você já tem um, então simplesmente use o que você tem. Ok, agora que você tem tudo instalado, estou ansioso para vê-lo na próxima lição quando vamos discutir classes e objetos que são o núcleo fundamental fora da orientação do objeto. Então junte-se a mim. 5. Cursos e objetos e de em que explicou: Está bem. Durante sua carreira de programação, você vai se deparar com aulas e objetos em. Eles são quase um na mesma coisa, e é por isso que eles podem ser muito confusos para as pessoas. Mas se eu colocá-lo muito simplesmente mais uma vez, em termos de Lego, uma classe é simplesmente um projeto. Então, uma aula em Lego seria um manual de instruções por si só. Não faz nada inerentemente útil. Mas uma vez você. Em vez disso, ela comeu aquela aula. Uma vez que você usá-lo para criar algo, você vai aparecer com um objeto no final. Então, uma classe é simplesmente um blueprint que pode criar um objeto. Não são todas as aulas. Uma classe também pode ter coisas dentro. Ele chamou métodos que permitem que o objeto para fazer as coisas. Então, neste pequeno varredor de minas que temos aqui em cima, se eu quisesse girar esses braços aqui quando eu estou fazendo minha varredura mental, eu teria um método dentro da minha classe que me permite girar que eu provavelmente chamaria de girar ou Algo assim. Eu também teria um método que me permite mover minhas faixas, um método que liga minhas luzes na frente, um método que abaixa e levanta minha varredor mental e também na classe temos o que são chamados propriedades. Então, na classe, as propriedades diriam que estes tijolos são amarelos. Essa quebra é preta, essas são azuis, então você pode pensar em uma classe como um manual de instruções muito avançado, uma espécie de manual de instruções com um cérebro primitivo. Então, o manual de instruções mostra como construir algo. Mas também permite que você gire coisas, mova coisas, faça o que quiser com o objeto que você criou Agora. A outra diferença entre uma classe em um objeto é que, no todo, uma classe não muda. Os blueprints permanecem os mesmos, e há apenas uma classe para um objeto. Não podemos ter dois que são nomeados os mesmos objetos. Por outro lado, podemos ter centenas de milhares de pessoas, se quisermos, e mais tarde em sua carreira de programação, você começará a aprender a lidar com esses objetos e ter muito cuidado com algo chamado memória vazamentos. Mas isso é um tópico avançado, e vamos abordar isso mais tarde. Então, na próxima palestra, vamos em frente e criar uma aula. Andi em Stan. Ela comeu no objeto, que é a terminologia oficial para construir um objeto. E vamos fazer isso em nosso ambiente de desenvolvimento. Então, vejo você então. 6. Como criar um curso e um objeto: Ok, vamos criar nossa primeira classe e objeto. Vamos abrir o estúdio xamarin. Uma vez que isso é acionado, venha aqui para uma nova solução ou corrompa a parte superior e clique em arquivo Nova solução. E você vai criar um seletor de modelos para o seu projeto. Eu quero que você ignore por enquanto todos esses projetos baseados em aplicativos que só está disponível na versão paga do Hammerin e nós não vamos olhar para isso. Em vez disso, estamos indo para outro e nós vamos clicar dot net e nós temos um monte de projetos aqui. Uma biblioteca de consola vazia, etc, etc. Vamos executar um projeto de console porque um projeto de console nos permite simplesmente colocar texto em uma janela de console, que é como sua janela de comando de óleo de janela de terminal. É um clique seguinte sobre isso e vamos chamar isso. Eu não sei. Vamos chamar isso de bulldozer, não de touro. Senhor, Bulldozer. Lá vamos nós e armazená-lo onde quiser e clique em criar e Zaman irá criar todos os arquivos e estrutura de pastas que você precisa para o projeto. E assim no minuto que tem. Se você olhar no lado esquerdo, três pastas fazem referência às propriedades dos pacotes. Não vamos nos preocupar com isso por enquanto. E um arquivo chamado Programa Não CS Se chegarmos ao lado direito na janela, notaremos que já colocou algo chamado de classe aqui para nós. Agora não vamos. O Teoh. Olhe para isso por enquanto, Mas apenas note que linguagens orientadas a objetos vão usar esta classe de palavra-chave muito. Uma aula interna. Temos um método que é chamado de principal, e dentro deste método ele simplesmente vai escrever Hello World para o console. Então, se você chegar ao canto superior esquerdo e você clicar em Play, ele vai abrir um console para nós aqui e uma vez que ele é aberto, ele digita. Olá Mundo pressione qualquer tecla para continuar, e ele diz que, porque o programa terminou a execução, então pressionamos enter e ele diz, Eu salvei sua sessão. Agora, se eu voltasse para o estúdio Xamarin e dissesse olá, Marte em vez disso, e então eu corri para que ele viesse e dissesse: “ Oh, Oh, olá, Marte para que você possa ver o que está fazendo. Esta linha direita do ponto do console é simplesmente para fora colocando texto para o nosso console. Ok, vamos criar uma classe, e nossa classe vai ser o modelo para criar um novo bulldozer. E para fazer isso, vamos digitar classe pública. Oh, Dozo, e você vai notar. Coloquei um D maiúsculo aqui, e este bulldozer aqui tem um pequeno D, e vamos apenas evitar confrontos. Não haveria nenhum confronto se o chamássemos da mesma forma, mas em C afiado ou qualquer linguagem orientada a objetos para esse assunto, você sempre quer nomear suas coisas um pouco diferente se puder, ou completamente diferente, que seria ainda melhor. E dentro do nosso bulldozer de classe pública, vamos colocar uma prensa de colchetes entrar algumas vezes e outro colchete encaracolado. Agora isso definiu um blueprint. No momento, a planta não faz nada porque não escrevemos nada. Então vamos colocar algumas propriedades no bulldozer. Primeiro, vamos definir uma cor. Então, digamos que a cor da string pública e, em seguida, abriu. Os colchetes são definidos e fechados colchetes, e isso simplesmente significa que tudo o que usa esse blueprint pode usar essa propriedade chamada cor. Vamos definir outra propriedade. Digamos que suspiros públicos, e vamos escrever isso como ser enviado novamente. Ok, então nós temos um projeto de escavadeira e o projeto nos permite especificar a cor e o tamanho do nosso bulldozer. Então essa é a nossa classe escrita, mas nós realmente não criamos são bulldozer ainda. Ainda só temos o nosso plano. Então, para criá-lo, vamos chegar aqui a este método principal e antes de consolar essa linha direita, vamos dizer que var faz. Isso é igual ao novo bulldozer. E você tem que ter muito cuidado aqui. Você tem que escolher aquele com um D maiúsculo aqui, assim colocar seus suportes e semi coda. Então, esta variável no lado esquerdo agora criou um novo bulldozer usando este blueprint . E se quisermos atribuir algumas cores ou tamanhos a essa lâmina, podemos então dizer que a cor do ponto do dozer é igual a dois. Vamos chamar as primeiras aspas amarelas próximas, dois pontos. Vamos dar um tamanho e dizer que Dozer não suspira é igual a muitos semi cólon. E, em seguida, na linha direita do ponto cônsul, vamos limpar este Hello Mars e vamos dizer que eu quero que você me mostre o seguinte Seibu faz, uh, uh, é aspas próximas e, em seguida, direita mais Dozer. Cor escura como So Salve isso e vamos executá-lo. E uma vez executado, temos isto. Ele sai para o nosso console e diz, Seu bulldozer é amarelo. Então, só para resumir, esta é uma aula. É a planta. Não faz nada por si só. Até você, ela comeu aquela aula e você vai usar a palavra em Stan. Ela comeu muito no seu programa na Coréia, e uma vez no Stan, ela odiou. Você fez uma cópia desse blueprint e pode atribuir as várias propriedades ao seu dozer. E eu só vou mostrar a vocês por que a orientação de objetos é tão boa. Se eu quisesse criar outra máquina, poderia salvar as nossas coisas. Um dois é igual a novo bulldozer assim, e eu posso dar a este um dozer dot Color é igual a ler, e eu poderia dar-lhe um tamanho. Dozer dot tamanho é igual a grande, mas você vai notar que estavam fazendo algo aqui, que é ou seja, estamos repetindo código. Se eu quisesse criar. 100 destes faz é que eu tenho que escrever faz uma cor escura 100 vezes, o que seria muito, muito irritante. Mas o que podemos fazer em vez disso é usar o que é chamado de construtor em um construtor é algo que podemos colocar em nossa classe e normalmente substituí-lo no topo de nossa classe. E chamamos isso de bulldozer público e tem o mesmo nome da turma. Então C Sharp sabe que este é o nosso construtor e se abrirmos nosso suporte, podemos digitar. O primeiro construtor que eu quero que você me dê é cor sublinhado. O 2º 1 que eu quero que você me dê é sublinhado suspira abrir a chave encaracolada e, em seguida, fechar a chave encaracolada . Então, dentro deste construtor, vamos dizer isto que é uma palavra-chave especial que se refere a esta classe. E nós vamos dizer que essa cor de ponto é igual a cor de sublinhado e vamos fazer o mesmo com tamanho é igual ao tamanho de sublinhado. Então, agora, quando este método é chamado, ele vai atribuir esta cor para esta cor aqui em baixo e a mesma coisa com o tamanho aqui. E tudo isso significa que agora podemos nos livrar dessas linhas aqui, que são muito, muito irritantes, assim. E se voltarmos aqui, você diz que o novo bulldozer abre suportes. Agora nos pede cor e tamanho. Então eu vou dizer vírgula amarela e muitos assim e nós vamos começar a fazer o mesmo para o faz também. Então vamos dizer vermelho e entalhe assim E assim você pode ver que já cortamos metade do nosso código neste método principal. E então, se quisermos correr que podemos dizer bulldoze de um é faz uma cor escura e, em seguida, podemos escrever uma nova linha e dizer Bulldozer para é faz uma cor de dois pontos. E se corrermos, temos uma escavadeira. Um é bulldozer amarelo para é vermelho, modo que praticamente resume classes e objetos. E nós descobrimos uma coisa bônus para você, que é o construtor dentro de uma classe. Então, um construtor é apenas um método que leva um monte de informações que você deseja colocar dentro de seu objeto, que você vai construir na próxima lição. Vamos abordar um novo tópico, que é herança e herança está intimamente ligada a essa idéia, fora de objetos e classes. Então junte-se a mim. 7. Herança explicada em um exemplo: Certo, pessoal, vamos passar para o próximo tópico em orientação de objetos. E isso é herança. Na última palestra, eu brevemente abordei que nós realmente não queremos reescrever o código. Toda vez que fazemos algo em um programa, é realmente ineficiente. E nós vamos ficar muito irritantes muito rápido para você como o programador. Então, para ajudá-lo a entender esse conceito de herança que nos permite escrever menos. Tenho três objetos Lego aqui. Eu tenho um homem, eu tenho um carrinho, e eu tenho essa coisa estranha alienígena que eu totalmente não acabei de inventar agora. E vou perguntar-te qual é a semelhança entre estas três coisas? E não é óbvio no início, porque isto é apenas uma imagem estática. Mas todos os três pés, todas essas coisas se movem. Todos se movem através do espaço tridimensional. Então, se chegarmos a Samrin sobre o que vamos fazer é apagar tudo nesta classe principal aqui, descermos para o nosso bulldoze a classe e vamos mudar o nome dessa classe também, cara. E então temos que mudar esse nome público também, cara, e remover esse construtor aqui. Remova esta linha aqui e temos que dar ao homem algumas propriedades. Então vamos dar-lhe uma propriedade chamada Bull e Boolean significa verdadeiro ou falso. Ele só tem dois valores que pode ser. E esse valor para o bullying vai ser movimentos, então nos permite definir se um homem pode se mover ou não, nós vamos dar a ele algumas outras coisas, como um nome de string. E talvez lhe daremos uma cor tão certa se quisermos definir um carrinho, podemos escrever aula pública, cortar público. Não posso gostar disso e depois temos que dar ao carrinho algumas propriedades. Então eu vou copiar algumas dessas linhas aqui e queremos movimentos, isso é certo. O carrinho não terá nome. Talvez lhe chamemos fabricante. E finalmente, o carrinho terá uma cor. E vamos fechar essa classe sem colchetes. Então copie isso e vamos definir nosso alienígena. Então vamos dizer alienígena e eles são alienígenas. Queremos definir se ele pode se mover ou não. Isso é bom. Não acho que tenham minhas novas fábricas, mas não podemos dizer com certeza. Então vamos dizer planetas de onde ele vem. E finalmente vamos dizer cor. Mesmo que ele seja multicolorido, sua cor principal realmente é esta cor amarelada aqui. Ok, agora podemos ver se queremos criar um novo homem nós salvaríamos nosso homem é igual a novos homens assim e faríamos o mesmo com o carrinho e com o Alien, e isso seria absolutamente bom. Então dizemos que carta distante é igual a novo carrinho e salvamos nosso alienígena igual a novo alienígena como Então Agora temos um homem, um carrinho em um alienígena que está sendo produzido a partir de nossas plantas aqui. Mas os olhos de águia entre vocês terão notado. Coloquei movimentos e cores em cada um deles. E novamente, estamos escrevendo muito código. Então é aqui que a herança vai entrar. A primeira coisa que temos que fazer para usar herança é criar uma nova classe. Vamos fazer isso aqui em cima. Então vamos dizer classe pública e temos que dar essa classe e nome que faz sentido em termos de movimentos e cor, tudo faz sentido em termos desses objetos. Então, talvez vamos chamar esse objeto de classe que se move e tem cor. Agora, isso é um pouco para gabaritos. E se você estivesse passando pelo seu programa mais tarde, você teria que parar e olhar para isso por um tempo para entender o que é. Mas no meu mundo, é sempre muito melhor ser detalhado do que não. Agora que eu disse isso, vamos encurtar isso para apenas um objeto geral. E, claro, você pode chamá-lo do que quiser, mas tem que fazer sentido para o seu programa em particular que abre nossos suportes e fecha nossos suportes. E, claro, precisamos de um objeto geral público construtor. E eu não vou colocar nenhuma coisa lá por enquanto porque nós cobrimos isso anteriormente. Então temos que dar a este algumas propriedades, e vamos dar a ele todas as propriedades comuns que são classes têm. Então o 1º 1 é provável que copie movimentos, e eu vou copiar cores como senhor, então o que eu vou fazer é eu vou descer para essas três classes e eu vou deletar movimentos e excluir cores, e eu vou fazer aquela maneira antiga para baixo em todos eles. Então agora essas três classes têm três nomes diferentes nome de fabricação Planeta e isso é ótimo. Não repetimos nenhum código, e temos esses movimentos em cores aqui, e de alguma forma temos que transferir as propriedades deste objeto geral para o homem, o carrinho e o alienígena. A forma como fazemos isso é através da herança. E se você clicar no espaço do homem Colon, você pode digitar objeto geral. E o que isso significa é que se você criar um homem primeiro, ele vai olhar para o objeto geral e roubar todas as propriedades de objetos gerais e colocá-lo dentro do homem. E onde quer que eu digite isso, esse será o caso assim. Então, se eu chegar ao meu principal aqui em cima e vamos dizer que eu quero dar ao meu alienígena uma cor, eu diria ponto alienígena e você vai notar que ele lhe dá a opção para movimentos de cor e planeta , mesmo que em Alien não esteja especificamente escrito dentro a classe. O que é feito é tirar essas propriedades do objeto geral que praticamente cobre a herança. Mas havia alguns guaches que eu vou cobrir na próxima palestra sobre herança, junte-se a mim então 8. Tipos de herança e gotchas: Ok, vamos olhar para as poucas maneiras que podemos herdar porque nós não necessariamente temos que herdar de um objeto que podemos herdar de vários objetos. Então, basta vir a esta classe principal primeiro e elite Cornelian para encontrar nosso programa e salvá-lo. Agora temos um objeto geral e tudo mais. O homem alienígena da caixa. Esses três caras herdam do objeto geral para que possam acessar movimentos em cores. E se eu tivesse uma aula chamada mulher? Bem, eu poderia dizer público mais mulher, e este aqui teria um nome de string. Nós teríamos um set como Então lá vamos nós. Não vamos esquecer nosso construtor como Então Ok, agora novamente, você deve saber agora que nós temos que herdar do objeto geral e nós temos uma mulher. Mas temos um problema. Temos um nome no homem e temos um nome nas mulheres. E, claro, não queremos continuar escrevendo nome. Então vamos subir aqui e criar outra classe chamada Humano, exceto um humano interno. Podemos dizer humano público. Eu sei que não estamos usando o construtor por enquanto, mas é uma boa prática colocá-lo dentro e dentro disso, podemos dizer o nome da string pública ser enviado. Só que agora temos um humano e podemos usar essa classe para o homem e a mulher herdarem . Então, podemos excluir esse nome aqui assim, e alguns idiomas permitirão que você herde de duas classes. Tão humana vírgula humana. Vamos guardar isso e executá-lo. E temos um problema. Diz que as classes de homem de ponto bulldozer não podem ter várias classes base. Objeto geral e ponto bulldozer humano Agora, a razão para isso é que C Sharp não gosta de herdar de duas classes e há uma idéia simples por trás disso. E isto é, se eu tivesse uma propriedade de movimentos aqui dentro isso ficaria muito, muito confuso. Vou desfazer isso. Algumas línguas permitem, mas tenha muito, muito cuidado quando se deparar com isso. A maneira correta de fazer isso é criar uma hierarquia de herança. Então o que vamos fazer é remover este humano aqui como então venha para a nossa classe pública de humanos e vamos usar isso para herdar do objeto geral. Então agora o ser humano vai tirar as propriedades do objeto geral e se chegarmos ao homem e à mulher e substituirmos isso por humano, ele agora vai herdar todas essas propriedades. Então, se você quiser, ele forma uma espécie de árvore. Vou mostrar-lhe essa árvore pictoriamente aqui. Se eu fizer essa aula de humanos e eu fizer aulas de homem e mulher e eu tocar duas vezes. Primeiro, estamos recebendo um objeto geral de movimentos em cores. Então teremos um objeto humano que tem um nome. E então nós estamos fazendo um homem e uma mulher com isso aqui em baixo. Por outro lado, o carrinho e o alienígena só herdam essas coisas que são objeto geral. Então isso é herança hierárquica. E é algo que você vai usar muito. Assim, sempre que você vir código repetido, apenas esteja ciente de que você deve estar usando herança na próxima seção. Vamos cobrir outro conceito de orientação de objetos chamado polimorfismo. Então, estou ansioso para te ver 9. Uma Polymorphism explicada: Ok, vamos passar para outro tópico muito, muito importante na orientação de objetos. E isso é polimorfismo e polimorfismo é uma grande palavra chique que confunde muita gente . E na base disso, o polimorfismo é melhor explicado mais uma vez com Lego. Então, digamos que temos de trabalhadores de fábrica aqui. Esses dois caras três caras mais jovens no cara sem plussed e eles trabalham em uma fábrica. E nesta fábrica, pequenas coisas entram pela porta que eles têm que fazer uma ação. E eles esperam pequenas coisas azuis porque eles foram treinados dedo do pé só trabalhar com coisas azuis . Então, o que acontece se coisas não azuis passarem pela porta? Então aqui temos a porta novamente e nós temos as vermelhas e os caras não sabem como usar suas ferramentas em vermelhas. Eles caem. E, claro, na realidade, saberíamos o que fazer. Os humanos são porque somos apenas computadores avançados? Mas no mundo da computação, se você der um objeto a um trabalhador e ele não for treinado e não souber o que fazer com ele , e não é o tipo de objeto que ele espera, tudo vai cair e nada vai dar certo. trabalho. Então o que você tem que fazer é levar seu original para os trabalhadores, colocá-los em outro programa de treinamento e dizer-lhes para esperar dois tipos de objeto. E se conseguires um objecto, quero que faças uma coisa. Se conseguir outro tipo de objeto, quero que faça algo diferente. E agora, quando os temos, eles estão perfeitamente felizes e não caíram. E isso é basicamente o polimorfismo. É ter efetivamente um trabalhador e dar-lhe diferentes tipos de objetos e ele, em seguida, ser capaz de fazer coisas específicas com esses objetos. Então, na próxima palestra, vamos ver como isso é realmente aplicado em nosso programa C afiado, então junte-se a mim então. 10. Um exemplo de polymorphism: Ok, vamos fazer um pouco de Polly morphing no nosso programa. Venha para o Zaman. E se você ainda tem um programa bulldozer aberto, vamos excluir todas essas classes aqui em baixo que criamos. Vamos apagar tudo dentro da Main. Então ficamos com essas linhas. Agora vamos construir o que é chamado de polimorfismo, e vamos usar como exemplo os homens Lego. Então primeiro temos que criar alguns trabalhadores. Vamos criar uma classe chamada de trabalhador de fábrica e chaves. E dentro desta aula não vamos dar nenhuma propriedade, então ele não vai dar nomes ou cores ou algo assim. O que vamos fazer é dar-lhe um construtor, que, claro, é um método. Então eu vou dizer operária da fábrica Andi. Dentro deste construtor, não passarei nada. Não há argumentos aqui dentro. Agora vamos dizer que queremos que este operário de fábrica simplesmente conte o número de coisas que passam por sua estação. Então, para fazer isso, vamos dar-lhe um método que será contagem de vazios públicos e, em seguida, lá dentro, vamos dar-lhe um número que ele deve adicionar à sua contagem. Então nós vamos dizer int que é interject, que significa apenas um número inteiro tão menos 10123 etcetera E nós dizemos número abrir colchetes e fechar colchetes encaracolados Andi para armazenar esse número e adicioná-lo, nós temos que fazer o que é chamado a variável de classe. Então vamos descer aqui e dizer que o total int público é definido assim e, em seguida, dentro da contagem, vamos dizer se total é igual a saber, isso significa que ainda não está pronto. Então vamos definir 20 só para começar e então no futuro Total nunca será não . Então ele não vai executar esta linha na próxima linha. Vamos adicionar nosso total número dois. Então, vamos dizer total é igual ao valor atual do total mais número. E então o que vamos fazer é escrevê-lo em nosso console para que possamos realmente ver isso acontecendo linha total ponto para string, e isso apenas converte em texto para nós. Aqui vamos nós. Então, toda vez que essa contagem é executada, ele adiciona um a este total. Então nós sabemos principal, Vamos subir aqui pressionar Tab. Então, como criamos uma classe como nosso blueprint, agora precisamos criar um worker como o objeto é igual a um novo trabalhador de fábrica assim E vamos dar-lhe uma tarefa. Digamos que Trabalhador, não. E então aqui em cima temos contagem e entre parênteses. Vamos dar-lhe um número para acrescentar. Então, digamos quatro. Vamos obrigá-lo a fazê-lo de novo, porque estamos a pagar-lhe e ele tem de fazer o que dizemos. Faça-o às cinco e guarde isso. E agora vamos executar isso e ver o que acontece com o nosso console. E se olharmos aqui, é executar o programa. Passou uma vez e adicionou quatro e passou novamente e adicionou cinco, o que dá um total de nove. Então está fazendo exatamente o que esperamos. Eu também tenho um erro aqui. Eu disse que se o total é igual a nenhum código inacessível, vamos ignorar isso por enquanto. Depois de duas Sierra da minha parte. Ok, a próxima coisa que temos que fazer é olhar para o polimorfismo. Então, e se eu tiver em vez de quatro coisas, eu tenho 4,5 coisas bem, e não pode contar em metades, mas há outros tipos de variáveis que podem contar metades para nós. Podemos usar o que é chamado de número flutuante. Então vamos tentar fazer isso. Vamos subir aqui e dizer, Sr. Trabalhador, eu gostaria que você contasse 4.5 assim E o que acontece quando pressionamos play é que recebemos um erro e ele diz que a melhor correspondência de método sobrecarregado para contagem tem alguns em argumentos válidos. E se você clicar nisso, ele diz o argumento número um não pode converter expressão dupla para o tipo int. E isso diz que este 4.5 eu estou assumindo que é fora do tipo duplo. Vou datilografar isso para você em dobro. Se eu passar o mouse sobre ele, ele deve nos dar uma dica de ferramenta, mas não tem, mas mesmo assim, dobro pode contar metades. Mas vamos transformar isso em um número flutuante. Vamos colocar Unefon 4.5 f. Vamos executar isso E novamente ele diz, eu não posso converter float para digitar int, e isso é porque ele está vindo aqui para baixo para contar, e ele espera uma interjeção. E se voltarmos à analogia de Lego, aqui é onde a demos. Um ninja sobre os trabalhadores eram perfeitamente felizes aqui. Demos à tona e os trabalhadores fizeram birra. Eles não sabem como o dedo do pé funciona com carros alegóricos. Então temos que treinar esses trabalhadores para trabalhar com carros alegóricos, bem como inter jizz. Então vamos vir aqui e resolver esse problema. Vamos criar outro método chamado public void account. E se você se lembra de palestras anteriores, eu disse, nunca nomeie seus métodos o mesmo, mas há uma exceção, e é quando você vai colocar em um tipo diferente de variável, e isso é Exatamente o que vamos fazer aqui. Então vamos colocar um número flutuante, como abrir colchetes e fechar colchetes. Ok, então nós queremos adicionar este número ao nosso total, então total é igual a total mais número, e isso vai ter este número aqui agora, antes de continuarmos, há um problema. O que estamos fazendo é adicionar um inteiro e à tona, e eles são tipos diferentes. Mesmo que ambos sejam números, nossa compilação vai ter um problema com isso. Então o que temos que fazer é converter tudo, então venha até a nossa variável aqui e escreva-a como um flutuador e, em seguida, chegar à nossa contagem aqui e o que temos que fazer é certo. Total é igual ao número total mais e número anterior. Nós realmente temos que converter isso para flutuar, que é para único e, em seguida, colocar o número entre parênteses. E isso o converte para o carro alegórico, o que significa que podemos adicionar coisas e tudo funciona bem. E a última coisa a fazer neste número flutuante é ponto de console linha direita, total escuro para string e isso vai nos dizer qual é a nossa contagem atual. Então vamos tocar no play e lá vamos nós. Agora temos quatro e nove e 13,5, que combina perfeitamente com o que temos aqui. Então este aqui este método fora da contagem flutuante só é frio sempre que algo aqui em cima é passado à tona. Se for passado um inteiro. Então este quatro e cinco, então este método é chamado e isso é polimorfismo. É basicamente ter dois métodos, cada um com um tipo de entrada diferente que permite que você faça a mesma coisa para que eu possa continuar esta rota e eu poderia dizer público, evitar contagem e eu poderia dizer que eu tenho um número inteiro um. Eu tenho um carro alegórico número dois e um número duplo três e então eu posso escrever um código aqui para adicionar todos os três. E eu posso adicionar esses ao total adicionar ao total assim e assim aqui em cima. Se eu disse que gostaria que você dissesse trabalhador contagem ponto se você pairar sobre contagem ele perguntou Desculpe, se você excluir contagem e pressione ponto e então você vem para contagem regressiva aqui Ele diz que eu posso aceitar flutuar e interjetar ou eu posso aceitar três números inteiros À tona, um duplo. E há algumas outras maneiras de implementar polimorfismo, mas, no momento, essa é a principal maneira que você vai se deparar com isso em sua carreira de programação. 11. Encapsulamento explicado: Certo, pessoal, vamos discutir o encapsulamento. Andi, em termos de cálculo de Lego é uma fábrica, uma fábrica muito pequena como temos aqui. E esta fábrica tem uma entrada aqui e nossas peças vão lá e a fábrica tem uma saída aqui, e nosso produto acabado sai agora para você e eu como o Joe comum, nós não nos importamos particularmente com o que entra. Só nos preocupamos com o que sai. E se dermos à fábrica um monte de panelas por um carro, esperamos que um carro saia do outro lado. Nós não nos importamos se você abrir a porta e todas as partes vão para Hong Kong em, organizadas lá e depois são feitas na China e depois são levadas de volta para os EUA ou o Reino Unido, e então a carcaça desmaiou por esta porta. Só nos preocupamos com o que sai. E por isso temos aqui o nosso pequeno Lego. Ele deixou cair a peça e no final, ele tem um carro. Ele também não se importa com o que acontece dentro daquela fábrica, e essa é a base do encapsulamento. Então a razão pela qual usamos encapsulamento é para que possamos mudar os processos de fábrica, mas ainda temos as mesmas saídas e na programação que é muito mais importante do que seria em um ambiente de fábrica. Então, na próxima palestra, vou dar um exemplo rápido do que é encapsulamento e por que é tão importante. 12. Um exemplo de encapsulação: Vamos criar nosso exemplo de encapsulamento em nosso programa de trabalho de fábrica. Vamos remover todo esse código aqui dentro e deixar a classe e o construtor lá e , em seguida, vir aqui e elite essas linhas para apenas deixar o trabalhador igual a um novo trabalhador de fábrica. Volte para a aula e vamos dar aos trabalhadores da fábrica algo para fazer como fizemos antes. Vamos pegar esse dedo do pé de trabalhador. Adicione dois números para nós. Vamos fazer isso. Nós vamos fazer um método que é público sobre este método não vai ser chamado vazio simplesmente significa que nós não estamos retornando nada. Vamos chamar este método e em números de contagem. Ou melhor, vamos chamar esse número de anúncio e dizemos int aqui porque vamos retornar algo fora do tipo inteiro, seja lá o que for chamado. E se vamos adicionar números, precisamos receber alguns. Então dizemos int num e no número dois. Abra nossos colchetes e feche-os. Certo, agora precisamos adicionar esses dois números, então vamos economizar. Nosso resultado é igual ao número um mais o número dois, e porque vamos retornar um inteiro temos que dizer especificamente. Dizemos resultados de retorno como Então, se chegarmos ao nosso principal, temos o nosso trabalho acima. Vamos dizer a ele para adicionar nossos dois números pontos em números e vamos dizer que eu quero adicionar dois e três para mim, assim. E vamos colocar isso dentro da variável. Então isso é um resultado de barra igual a trabalhadores não adicionam números para comentar. Três. Então o resultado aqui será o que for devolvido aqui. Finalmente, vamos escrever isso para que possamos vê-lo funcionando. Não escreva linha. Resultado até a força exceto e então corremos que temos, ah, console que aparece e é adicionado dois e três para nós no trabalhador. Ok, tudo bem. Agora, se voltarmos aqui, podemos começar a mexer por dentro. Adicione números para que possamos alterar esse resultado, tanto quanto quisermos, podemos dizer resultado é igual a resultado Plus 100. E claro, sabemos que essa é a resposta errada. Então vamos corrigi-lo e dizer que o resultado é igual a resultado menos 100 para tirá-lo e vamos executá-lo novamente. E você não ficará muito surpreso com a saída porque a roupa será a mesma que antes cinco. Agora, encapsulamento. Se você se lembra do nosso trabalhador da fábrica, o trabalhador da fábrica realmente não se importa com o que acontece dentro da fábrica e voltar para o nosso programa. É o mesmo aqui. Pode haver 1.000.000.000 linhas de código aqui dentro, e tudo aqui em cima não saberia e não se importaria com esse código que é bonito na programação porque se você tiver uma equipe de 10 pessoas, uma dessas pessoas será trabalhando em sua classe de operários de fábrica. Outro estará fazendo seu programa principal. E enquanto o cara do programa principal espera esse resultado para adicionar números, o trabalhador da fábrica pode fazer o que quiser aqui. E mais importante, sempre que ele gosta de fazer o que quiser aqui, e isso não afetará isso aqui em cima. Assim, o encapsulamento também é às vezes chamado de ocultação de dados, e apenas simplifica todo o processo de compilação para programação. Então, um pouco de sonda fora de planejamento neste início fora do seu aplicativo vai significar que você salvar um monte de dor de cabeça na estrada e você pode mudar as coisas sem causar quaisquer dores de cabeça para outras pessoas. Ok, isso cobre o encapsulamento 13. Breve e desna nos projetos: Muito bem, pessoal, bem-vindos à palestra final desta série. E na palestra final, eu vou fazer um pouco de lição de casa e seu dever de casa será fazer uma linha de produção de carros . Vamos cobrir tudo o que cobrimos neste curso até agora. Classes, objetos, herança, polimorfismo e encapsulamento. E vamos fazer tudo isso neste pequeno projeto. Então a primeira coisa que eu quero fazer é fazer uma classe de carro e deve ter as propriedades de uma cor e um fabricante. Fizemos algo semelhante antes. Então eu quero que você pratique em Stan Shih formando um objeto daquela classe. Então eu quero que você faça do carro um objeto e eu gostaria que você tu. Em vez disso, ela comeu com leitura de cor e fabricante Toyota. Então você vai praticar a herança. Então eu gostaria que você para fazer e você classe de carro saloon que herda da classe de carro e, em seguida dentro da classe de carro saloon, colocar em uma nova propriedade que é chamado de número de assentos. Então você vai praticar seu polimorfismo. Então eu gostaria que você escrevesse três construtores diferentes para fazer o seguinte e eu vou apenas copiar e colar isso e seus três construtores. O 1º 1 permitirá que você atribua apenas o número de assentos. O 2º 1 permitirá que você atribua apenas o número de assentos e fabricante. E o 3º 1 vai permitir que você atribua o número de assentos que fabricante e cor. Depois de criar esses construtores, você vai criar três objetos. Agora basta copiar e colar isso. E aqui estão seus três objetos. A primeira é que você vai criar um policial de saloon com dois lugares. Então você vai criar um carro de saloon com três assentos no fabricante. Ouça. E finalmente, você vai criar um carro de saloon três com quatro assentos, fabricante Ford e cor púrpura. E para fazer isso, cada um destes. Quando você Winston, ela comeu só deve levar uma linha dentro do seu programa. Se você pudesse fazer todos os itens acima, então você está absolutamente definido para programação orientada a objetos. Então vou passar por isso de novo em fotos. Você vai criar uma classe de carro e a partir dessa classe você vai em vez disso, ela comeu um carro. Um objeto. Em seguida, você vai criar uma classe de carro de saloon que herda da classe de carro e lá dentro você vai adicionar uma nova propriedade chamada número de assentos. Em seguida, você vai escrever três construtores para fazer o seguinte construtor. Um permitirá que o número de assentos a ser aplicado, construído para permitir o número de assentos e fabricante a ser aplicado. Três número de assentos, fabricante e cor. Então, finalmente, você vai criar três objetos carro saloon, um saloon, carro dois e três, todos com propriedades diferentes. Eu não mencionei encapsulamento, que é o último tópico que abordamos. E se você se lembra, isso é algo que entra no método, algo sai e nós não nos importamos com o que está entre eles. Mas isso é meio implicitamente coberto. Sempre que criamos objetos dentro do nosso construtor, não sabemos necessariamente o que nosso construtor de classe está fazendo. Então nós cobrimos o encapsulamento dessa maneira. Está bem. E se você pode fazer tudo isso, você está indo muito bem. No dia. Eu aconselharia você a olhar para fora para os meus novos cursos, que estarão chegando em breve, que é tudo sobre como aprender, ver loja, Java, JavaScript e PHP usando brinquedos Lego. Porque acho que é uma ótima maneira de aprender. Então, se você gostou deste curso, por favor me deixe uma boa crítica. Se não o fez, por favor me deixe uma crítica decente e me diga o que você não gostou sobre isso. E no futuro, eu vou tornar o curso pequeno de acordo com o que as pessoas podem esperar. Só me resta agradecer por me ouvir, e espero que tenha aprendido algo que valha a pena.