1 00:00:00,510 --> 00:00:01,290 ‫Bem vindo de volta. 2 00:00:01,320 --> 00:00:08,460 ‫Neste vídeo, vamos falar sobre struts e struts são muito semelhantes a classes, mas classes, todos os tipos de referência e 3 00:00:08,460 --> 00:00:14,190 ‫estruturas são tipos com valor, o que significa que se você criar um objeto de uma classe, 4 00:00:14,460 --> 00:00:16,350 ‫ele não pode conter nada. 5 00:00:16,350 --> 00:00:19,590 ‫Portanto, pode estar vazio, mas uma estrutura deve ter um valor. 6 00:00:20,040 --> 00:00:21,770 ‫É aí que a estrutura é chamada de jogo. 7 00:00:21,780 --> 00:00:25,970 ‫Então, você usa a palavra-chave struct e dá um nome a ela. 8 00:00:26,340 --> 00:00:29,310 ‫Portanto, é muito semelhante a uma sala de aula e ao que você pode ver. 9 00:00:29,320 --> 00:00:33,690 ‫Então, você tem esse nome aqui e pode ir em frente e criar variáveis aqui. 10 00:00:33,690 --> 00:00:35,880 ‫Vou criar um que se chama nome. 11 00:00:36,240 --> 00:00:44,460 ‫Em seguida, vou criar um que se chama desenvolvedor e outro que é uma classificação. 12 00:00:44,880 --> 00:00:50,990 ‫Então, como este jogo é classificado e, em seguida, a data de lançamento pública? 13 00:00:51,000 --> 00:00:52,260 ‫Então, quando foi lançado? 14 00:00:52,770 --> 00:00:54,390 ‫Então, essa é uma estrutura simples. 15 00:00:54,390 --> 00:01:02,460 ‫Agora podemos prosseguir e criar um objeto dessa estrutura para que possamos prosseguir e dizer, OK, jogo 16 00:01:02,460 --> 00:01:04,560 ‫um jogo como esse. 17 00:01:04,590 --> 00:01:11,900 ‫Portanto, agora temos este jogo, mas para usá-lo, precisamos ir em frente e especificá-lo. 18 00:01:11,910 --> 00:01:18,150 ‫Portanto, precisamos da especificação do jogo, por exemplo, precisamos definir o nome e digamos que era 19 00:01:18,150 --> 00:01:23,460 ‫o objetivo do Puckerman, então o jogo um precisa ter um desenvolvedor. 20 00:01:24,810 --> 00:01:27,330 ‫Então, vamos dizer algo como 21 00:01:29,790 --> 00:01:39,150 ‫Niantic e o primeiro jogo precisa ter uma classificação, digamos que foi três vírgula cinco em cinco estrelas e, finalmente, a data 22 00:01:39,150 --> 00:01:40,170 ‫de lançamento. 23 00:01:40,860 --> 00:01:43,790 ‫Portanto, você pode simplesmente definir os valores assim. 24 00:01:43,800 --> 00:01:47,930 ‫Então é muito parecido com o que você faria com uma aula, certo. 25 00:01:48,600 --> 00:01:51,330 ‫Então foi lançado vinte e dezesseis. 26 00:01:52,080 --> 00:01:55,800 ‫E essa é a nossa estrutura de jogo que temos aqui. 27 00:01:55,830 --> 00:02:00,390 ‫Agora podemos prosseguir e escrever informações do jogo no console. 28 00:02:00,660 --> 00:02:03,630 ‫Digamos que queremos escrever o nome do jogo. 29 00:02:03,630 --> 00:02:07,320 ‫Então S. C. Jogo um. 30 00:02:09,900 --> 00:02:22,410 ‫E SNAME é e, em seguida, colchetes, zero e pensamento de ganho, nomeie todos, na verdade, jogo um, esse nome. 31 00:02:23,610 --> 00:02:29,470 ‫Como você pode ver, você pode simplesmente ir em frente e chamar suas variáveis para que possamos fazer a mesma coisa, não apenas 32 00:02:29,490 --> 00:02:30,870 ‫não apenas com um nome. 33 00:02:30,870 --> 00:02:33,270 ‫Podemos fazer isso com todo o resto. 34 00:02:33,350 --> 00:02:34,680 ‫Vou apenas copiar isso. 35 00:02:35,010 --> 00:02:43,290 ‫O jogo um foi desenvolvido por e agora não é o nome do jogo, mas sim o desenvolvedor. 36 00:02:44,130 --> 00:02:52,650 ‫E a mesma classificação aqui é a classificação do jogo. 37 00:02:53,630 --> 00:03:05,810 ‫E aqui está a classificação e, finalmente, o jogo um foi lançado no jogo um, listado gratuitamente. 38 00:03:08,310 --> 00:03:16,890 ‫Agora, vamos executá-lo, consolá-lo, ler a chave e ver o que está acontecendo. 39 00:03:18,780 --> 00:03:25,410 ‫E nós somos o nome do jogo é Pokémon Go. O jogo um foi desenvolvido pela Niantic com classificação três vírgula 40 00:03:25,410 --> 00:03:28,970 ‫cinco e foi lançado em 1º de julho de 2016. 41 00:03:29,250 --> 00:03:29,700 ‫Tudo bem. 42 00:03:29,820 --> 00:03:35,070 ‫Assim que somos, é muito básico e muito semelhante a uma classe. 43 00:03:35,070 --> 00:03:35,400 ‫Direito. 44 00:03:36,690 --> 00:03:37,800 ‫Então, como isso difere? 45 00:03:38,100 --> 00:03:40,350 ‫Bem, há mais uma coisa em que não difere. 46 00:03:40,950 --> 00:03:47,130 ‫Portanto, vou criar uma exibição pública de vazio, que deve exibir informações. 47 00:03:47,370 --> 00:03:51,960 ‫E o que vou fazer é simplesmente executar tudo isso aí. 48 00:03:52,200 --> 00:03:54,780 ‫Então, isso vai me dar o nome. 49 00:03:54,780 --> 00:03:56,550 ‫Isso vai me dar o desenvolvedor. 50 00:03:56,940 --> 00:04:00,570 ‫Isso vai me dar a classificação e a data de lançamento. 51 00:04:01,940 --> 00:04:02,360 ‫Tudo bem. 52 00:04:02,430 --> 00:04:09,090 ‫Agora, em vez disso, posso simplesmente chamar o método de exibição e posso fazer isso chamando o jogo 53 00:04:09,090 --> 00:04:14,400 ‫um e dizendo, por favor, exiba todas as informações em execução novamente e veremos. 54 00:04:14,400 --> 00:04:15,680 ‫Tínhamos todas as informações. 55 00:04:16,260 --> 00:04:16,620 ‫Tudo bem. 56 00:04:16,630 --> 00:04:18,750 ‫Então você pode criar variáveis. 57 00:04:18,750 --> 00:04:19,680 ‫Você pode criar métodos. 58 00:04:19,680 --> 00:04:20,550 ‫Mas como isso difere? 59 00:04:20,580 --> 00:04:31,140 ‫Bem, o que você não pode fazer é criar uma estrutura de construtor que não pode conter construtores de parâmetros 60 00:04:31,320 --> 00:04:32,340 ‫explícitos. 61 00:04:32,820 --> 00:04:38,850 ‫Portanto, você pode criar construtores padrão aqui, então ele pode implementar uma ou mais interfaces. 62 00:04:38,880 --> 00:04:41,880 ‫Portanto, você pode seguir em frente e implementar interfaces aqui. 63 00:04:41,880 --> 00:04:42,720 ‫Eu fechável. 64 00:04:42,720 --> 00:04:44,760 ‫Eu comparo esse tipo de coisa. 65 00:04:46,140 --> 00:04:49,010 ‫Então eles não suportam herança. 66 00:04:49,050 --> 00:04:53,780 ‫Portanto, você não pode usar herança ou instruções, você não pode ter um construtor padrão. 67 00:04:53,790 --> 00:04:59,580 ‫Como eu disse, os membros instrutores não podem ser especificados como abstratos, virtuais ou protegidos. 68 00:04:59,880 --> 00:05:02,940 ‫Então, eles podem ser apenas algo como públicos. 69 00:05:03,120 --> 00:05:05,940 ‫Portanto, você pode ter uma estrutura pública ou privada. 70 00:05:08,560 --> 00:05:14,560 ‫Struts pode, entretanto, ter construtores definidos para que você possa ter algo como um 71 00:05:14,630 --> 00:05:22,990 ‫jogo público e então você tem o nome da string, você pode ter isso e haverá um nome ou isso. 72 00:05:23,110 --> 00:05:24,790 ‫Esse nome é igual nome. 73 00:05:25,720 --> 00:05:35,170 ‫E isso que o desenvolvedor é igual a avaliação baseada no desenvolvedor é igual a avaliação. 74 00:05:35,170 --> 00:05:39,460 ‫E esta data de lançamento DOT é igual à data de lançamento. 75 00:05:39,760 --> 00:05:48,910 ‫Agora, é claro, você precisa tê-los aqui, desenvolvedor de string, e então a classificação dupla e a data de lançamento da 76 00:05:49,270 --> 00:05:49,840 ‫string. 77 00:05:51,100 --> 00:06:00,940 ‫Mas então se você, por exemplo, quiser ir em frente e exibir o método de exibição aqui, então você se deparará com um erro por 78 00:06:00,940 --> 00:06:05,430 ‫causa do uso de um jogo de variável local não atribuído. 79 00:06:05,860 --> 00:06:08,160 ‫Portanto, o primeiro jogo não foi atribuído. 80 00:06:08,440 --> 00:06:15,490 ‫Mesmo que eu tentasse, digamos que depois de ter todas as informações de longe por aqui, você vê que ainda há um 81 00:06:15,490 --> 00:06:15,960 ‫erro. 82 00:06:16,180 --> 00:06:21,430 ‫Portanto, você precisa ter todas as informações diferentes sobre este jogo, uma a ser atribuída. 83 00:06:21,550 --> 00:06:23,400 ‫Caso contrário, esta peça não funciona. 84 00:06:23,410 --> 00:06:27,490 ‫Portanto, mesmo aqui, após obtermos a classificação, ainda obtemos o mesmo erro. 85 00:06:27,490 --> 00:06:30,790 ‫Só depois de atribuir todos os valores, podemos trabalhar. 86 00:06:31,060 --> 00:06:36,820 ‫Então funciona por valor, não por referência, como uma cláusula faria, certo? 87 00:06:38,120 --> 00:06:44,270 ‫Portanto, se você deseja ter um breve resumo, pilha, estouro é seu amigo, portanto, um breve resumo de cada 88 00:06:45,440 --> 00:06:47,380 ‫classe oferece suporte à herança. 89 00:06:47,390 --> 00:06:52,070 ‫Nossos protótipos de referência podem ser nulos e ter mais relatórios excessivos. 90 00:06:52,080 --> 00:06:59,090 ‫Você, por exemplo, destructs apenas não pode suportar herança ou tipos de valor são passados por valor 91 00:06:59,090 --> 00:07:00,380 ‫semelhante a inteiros. 92 00:07:00,620 --> 00:07:07,310 ‫Então Kennet tendo referência nula como você acabou de ver e não tem memória, superaquece, por exemplo, e ambos têm 93 00:07:07,490 --> 00:07:09,830 ‫um composto ou o nosso composto. 94 00:07:09,830 --> 00:07:15,800 ‫Os tipos de dados normalmente usados para conter algumas variáveis que têm algum relacionamento lógico, podem conter 95 00:07:15,800 --> 00:07:19,010 ‫métodos e eventos e podem oferecer suporte a interfaces. 96 00:07:20,970 --> 00:07:28,200 ‫Mesmo que Simon Stevens argumente que as aulas nem sempre vão e ele instruiu nem sempre vão no Stack. 97 00:07:28,720 --> 00:07:34,810 ‫Certo, e essa entrada de estouro de pilha em geral tem algumas informações valiosas sobre struts. 98 00:07:34,860 --> 00:07:39,710 ‫Então, as diferenças entre struts e classes, mas você viu a maioria delas aqui. 99 00:07:39,990 --> 00:07:45,680 ‫Mas, como de costume, sempre recomendo verificar a documentação também para obter um melhor entendimento.