‫Bem-vindo de volta a este vídeo, vamos continuar com as propriedades e setters e getters, começamos no último vídeo
‫onde vimos setters e getters e agora vamos usar o mesmo código e
‫vamos para estendê-lo um pouco.
‫Então vimos que podemos usar setters para definir o valor de uma variável de membro e podemos implementar nossa própria lógica,
‫como queremos defini-la para que possamos dizer, OK, se você quiser definir o valor, tem que
‫siga minhas regras para que possamos definir nossas próprias regras, que têm de ser.
‫Seguido e então temos getas, que também podemos ajustar, então podemos apenas dizer, OK, se você deseja
‫obter a variável, vou dar-lhe, neste caso, o resultado da multiplicação de comprimento, altura, largura para
‫que você possa modificá-los a seu gosto.
‫Agora, vamos dar uma olhada nas propriedades e como tudo isso está conectado entre si.
‫Então, vamos criar uma propriedade e vou criar uma propriedade pública chamada altura.
‫E esta altura ajustará minha variável de membro de altura.
‫Portanto, era público antes.
‫Agora vou torná-lo privado para que não possamos acessar a altura de fora.
‫Então aqui, se eu quiser ajustar a altura, não poderei mais fazer isso.
‫Agora vou obter este erro.
‫Tudo bem.
‫Agora vamos usar nossa propriedade height para ainda poder acessar nossa altura lá em cima.
‫Então, como fazemos isso?
‫Bem, nós, em primeiro lugar, usamos esta propriedade com H maiúsculo e o início.
‫Geralmente é assim que você usa a propriedade.
‫Essa é uma convenção e uma programação especial.
‫As propriedades começam com letra maiúscula.
‫E agora aqui eu posso criar meu Geter e posso voltar à altura e posso criar minha irmã e posso apenas definir a altura
‫aqui para ser, por exemplo, o valor que é o site.
‫Agora, qual é essa palavra-chave de valor?
‫Bem, o que estamos fazendo aqui é basicamente a mesma coisa que fazíamos antes.
‫Nós definimos o comprimento e obtemos o comprimento.
‫Mas agora nosso portal, por assim dizer, é a altura de nossa propriedade.
‫Portanto, se você deseja acessar ou alterar a altura lembrável, deverá fazê-lo através da altura da propriedade.
‫Portanto, agora o que você pode fazer é defini-lo com o valor que você definir será definido para a altura.
‫Agora, como realmente se parece quando vamos para o nosso programa agora aqui, se tentarmos definir a altura?
‫Acessando a variável membro diretamente, não podemos mais fazer isso, mas se você acessar a propriedade, como você pode ver, a
‫altura está disponível aqui e é este ícone da ferramenta que podemos ver aqui.
‫Portanto, este é geralmente o ícone que você tem quando deseja acessar uma propriedade.
‫E você pode ver que isso funciona para que possamos definir a altura agora.
‫E se o fizermos, isto será ou isto por aqui, o que quer que esteja atrás deste sinal de igual ou após este sinal de
‫igual.
‫Esse será o valor aqui com este valor e será definido como a altura.
‫Portanto, esse valor é praticamente igual ao comprimento que tínhamos antes, quando criamos o comprimento do conjunto.
‫É praticamente o mesmo conceito, mas é apenas uma maneira mais curta de fazê-lo.
‫Direito.
‫Então você pode ver se queríamos ter um setter, tínhamos todo esse código.
‫Claro, não precisamos desse código aqui.
‫Tudo bem.
‫Mesmo assim, tínhamos todo esse código e agora temos esse código supercurto.
‫Portanto, este é o centro.
‫Claro, aqui também podemos ajustar agora, digamos que se o valor for menor
‫do que zero, então definiremos nossa altura como menos valor e então isso será altura, igual valor.
‫OK, agora vamos para o nosso programa e agora definir a máxima para menos quatro.
‫E finalmente, vamos definir isso porque criamos esse erro antes, certo, e agora vamos definir a altura para menos
‫quatro e vamos executar nosso código.
‫E veremos que funciona tão Lenfest pelo jeito como fica com essa luta.
‫Então, por que isso?
‫Mesmo que definamos o valor para menos quatro?
‫Bem, dissemos que se o valor da altura que você passar para mim for negativo, vou multiplicá-lo.
‫Portanto, se o valor for menor que zero, vou multiplicá-lo por menos um.
‫Então, vou tornar isso positivo novamente.
‫E se for positivo, basta definir ou atribuir um valor ou se for zero, também está bom.
‫Tudo bem.
‫Então é isso que podemos fazer com propriedades.
‫Agora, esta é uma implementação de uma propriedade.
‫Obviamente, o que você pode fazer é apenas usar a propriedade sem ter uma variável de membro.
‫Portanto, este memorável que temos aqui pode ser algo que não seja necessário de forma alguma.
‫Então, podemos até mesmo pular isso.
‫Então, digamos que eu não queira definir a largura como uma variável de membro.
‫Eu quero ter isso como uma propriedade.
‫E vou mostrar outra maneira de criar uma propriedade.
‫E isso é muito, muito mais rápido.
‫Então, basta usar P, R, O, P e, em seguida, tocar duas vezes e isso criará essa propriedade para você.
‫Agora você só pode entrar para digitar.
‫E eu vou dizer, ok, vai ser um número inteiro.
‫Em seguida, você pressiona torneira novamente e agora você pode dar um nome.
‫Então, vou ligar para este com.
‫Agora, o que está acontecendo aqui?
‫Bom, esse é um código que só o C Sharp entende e até foi criado pra gente automaticamente com o nosso
‫ID, né.
‫Diz apenas para definir o ponto-e-vírgula, ponto-e-vírgula.
‫Portanto, isso significa apenas que será apenas um getter padrão e um configurador padrão,
‫o que significa apenas que se você deseja acessar com, pode apenas acessá-lo usando a variável with this propriedade.
‫E se você quiser configurá-lo, você também pode simplesmente usá-lo.
‫Então, o que isso significa em nosso caso?
‫Bem, isso significa que agora podemos acessar essa propriedade apenas atribuindo um valor e se você quiser resolvê-lo.
‫Então, se quisermos acessá-lo.
‫Caixas com.
‫É um ponto de caixa.
‫Com isso aqui podemos acessar a propriedade diretamente.
‫Tudo bem, então esta é a diferença aqui.
‫Então, internamente, é a mesma coisa que se criássemos.
‫O.
‫Com, vamos voltar a isso com vamos ter essa variável de membro novamente, então
‫internamente é a mesma coisa que se eu tivesse criado esse público e com e vou comentar isso por agora e tenho um getter.
‫Então pego eu devolvo o com.
‫Ou eles começam com.
‫E o centro onde eu disse que eles começam com valor.
‫Tudo bem, então isso é realmente.
‫Há.
‫O código aqui é realmente a mesma coisa que este, e internamente também é o que acontece quando você
‫compila o código, de forma que o compilador faz isso automaticamente.
‫Para nós, apenas diz, OK, se você tem essa linha de código, vou tratá-la totalmente como se
‫fosse esse código que você tem aqui, só que é muito mais curto e muito mais fácil de criar código.
‫Tudo bem.
‫Então, vou apenas comentar isso, porque eu li como esta abordagem curta que temos lá.
‫E vamos comentar isso assim.
‫E eu não preciso mais dessa variável de membro, certo, porque aqui precisamos de um membro verbal porque eu configurei o
‫com e neste caso, eu disse que a variável de membro com não configurei o.
‫Nossa economia não pode se ajustar a si mesma, então, se eu, em vez disso, escreveria com.
‫E se eu fizer isso agora, o que eu crio é um estouro de pilha, então tento constantemente definir algo e vai ser
‫um loop infinito aqui, o que não é bom.
‫É por isso que precisei lembrar a variável para este exemplo aqui.
‫Tudo bem.
‫Mas internamente, vai tratar assim.
‫OK, então é tratá-lo internamente como o código que temos aqui, só que é muito mais curto para nós.
‫Tudo bem, agora um pequeno desafio para você, por favor, vá em frente e crie uma propriedade para o volume que
‫o rodeia como fizemos com a largura aqui.
‫Tudo bem.
‫É praticamente o mesmo exemplo que tivemos aqui, só que vai ajustar o volume e não a
‫largura.
‫Então, por favor, tente isso, crie sua própria propriedade, digite-a.
‫Não faça uma abordagem curta ou use a abordagem curta.
‫Tudo bem.
‫Então, para que isso faça sentido, primeiro de tudo, temos que tornar nosso volume
‫privado e então podemos criar uma propriedade para um volume tão público e um volume com V maiúsculo será obtido.
‫Volte a aumentar o volume e sente-se.
‫Este volume é igual ao valor.
‫Portanto, esta é a propriedade deles que criamos para o volume.
‫Espero que você tenha sido capaz de fazer isso.
‫Claro, você poderia simplesmente ter se livrado deste volume e criado da mesma forma que fizemos
‫com ele é muito mais rápido.
‫Mas eu só queria mostrar que isso também é legal.
‫Agora o.
‫A parte importante aqui é que podemos pensar sobre a variável de volume ou essa propriedade e por
‫que ou em que ponto faz sentido alterá-la ou obtê-la?
‫Faz sentido fazer os dois?
‫Porque o volume é algo que é calculado com base na largura e altura e comprimento.
‫Agora, faz sentido definir o volume diretamente?
‫Bem, não, eu diria que sim.
‫Acho que definir o volume nem faz sentido.
‫Assim, poderíamos nos livrar de todo este centro e ter apenas um getter.
‫Agora, o volume em si, nunca ajustamos o volume.
‫É sempre calculado.
‫Então, faz sentido apenas retornar o volume?
‫Bem, realmente não importa, porque na verdade o que devemos fazer é aqui
‫neste ponto, devemos calcular que o volume vai ser a multiplicação do comprimento, altura e com o mesmo.
‫Portanto, agora é muito mais significativo.
‫Portanto, o que retornamos com o volume é muito mais significativo.
‫Se alguém deseja obter o volume, é isso que está obtendo.
‫Agora, é claro, criamos um pequeno bug aqui na parte inferior ou alguns métodos get volume que não precisamos mais,
‫e ao mesmo tempo aqui com now está a propriedade que acessamos.
‫Não vai ser.
‫O não verbal mais, porque não temos mais.
‫E, claro, em nosso caso de programa, agora também podemos ajustar tudo, então agora podemos
‫acessar o Wi-Fi diretamente e podemos acessar a propriedade de volume diretamente e não mais a variável de membro de volume.
‫Tudo bem.
‫Então, agora vamos dar uma etapa final aqui.
‫E isso é para adicionar um construtor, então caixa pública.
‫E.
‫Comprimento e altura e termine com.
‫Portanto, agora, se criarmos uma caixa, quero ter todos esses valores e o comprimento que
‫me é dado uma vez que a caixa é criada deve ser esse comprimento, então a altura dada a essa altura deve ser a
‫altura.
‫Então a altura que é dada, esta deve ser a altura que temos aqui, que é a nossa variável de
‫membro.
‫E nosso com é o final.
‫E esta é a propriedade.
‫Então nós falamos com a largura que nos é dada.
‫Agora, neste caso, você pode, é claro, omitir esta palavra-chave com a qual você pode apenas dizer, porque
‫também é óbvio que estamos falando sobre a propriedade desta classe.
‫Portanto, você não precisa dessa palavra-chave aqui.
‫Agora, uma coisa importante que alguém perguntou e eu queria realmente deixar isso claro.
‫Então esse comprimento igual funciona, mas o comprimento é igual a isso.
‫Esse comprimento não faz sentido.
‫Portanto, esta linha aqui não faz sentido porque o comprimento é esta parte aqui, que na verdade é apenas um parâmetro e é o
‫valor que nos é dado.
‫Portanto, não queremos ajustar o valor que nos é dado, mas queremos definir o valor de nossa propriedade ou de
‫nossa variável de membro.
‫E é isso que fazemos aqui.
‫Portanto, neste caso, é o que fazemos.
‫Definimos o valor de nossa variável de membro.
‫Tudo bem, agora vamos usar esta caixa como caixas de criação, porque agora não precisamos mais fazer tudo isso.
‫Não precisamos mais definir os valores diretamente, mas podemos defini-los na criação de nossa caixa.
‫Vou apenas atribuir os valores três, quatro e cinco.
‫Portanto, o comprimento é três para ocultar ou, na verdade, a altura é quatro.
‫E com esses cinco.
‫E agora, se executarmos isso, ele exibirá a largura e o volume para nós.
‫Então você está com este cinco volume é 60.
‫Tudo bem.
‫Isso parece funcionar.
‫Agora, o que podemos fazer é começar acessando nossa propriedade.
‫Digamos que definimos a largura para dez agora e executamos este código novamente.
‫E acabamos de brincar com mais uma vez, para que possamos ver que o valor padrão que foi dado é impresso
‫e então o novo valor que definimos, então definimos com 210 e agora ele diz o valor e está
‫calculando com de acordo.
‫Então, três vezes, quatro vezes dez é 120.
‫O novo volume está certo, convocando então o que fizemos foi criar, antes de mais nada, um monte de
‫variáveis sem.
‫Nós os tornamos privados para que ninguém, exceto esta classe em si possa acessá-los diretamente.
‫OK, nenhuma outra classe pode acessá-los diretamente.
‫Eles só podem acessá-los por meio de nossas propriedades que criamos ou por meio de nossos setters e getters.
‫Portanto, temos o comprimento definido em grande extensão.
‫Então, se alguém deseja acessar a variável de comprimento, eles têm que usar o método de definir comprimento e obter
‫comprimento.
‫Esta é uma abordagem totalmente válida e você verá isso.
‫E sim, com essas abordagens, você pode definir a lógica que deseja seguir.
‫Se alguém quiser, por exemplo, definir uma variável ou se quiser obter uma variável.
‫Agora, outra maneira de fazer isso é usar diretamente uma propriedade.
‫Portanto, se você usar uma propriedade, precisará chamá-la com uma letra maiúscula e, em seguida,
‫poderá implementar um getter e etc. Mas você também pode simplesmente decidir implementar apenas um
‫getter ou apenas implementar uma carta ou não, é claro, implementando ambos aqui.
‫Você também pode definir os valores diretamente para que possa definir as variáveis de membro.
‫Então foi isso que fizemos aqui.
‫Por assim dizer, adicionando um gateway chamado height, que é nossa propriedade à nossa altura que criamos aqui no topo,
‫que é nossa variável de membro, ou apenas seguimos a rota direta onde apenas dissemos,
‫OK, direcionaremos.
‫Temos uma propriedade autoimplementada muito simples aqui e não precisamos ter uma variável de membro extra para ela.
‫Poderíamos ter percorrido todo o caminho para que todas essas variáveis tivessem apenas propriedade, então poderíamos ter feito isso de
‫maneira muito simples.
‫Mas ter apenas três propriedades como.
‫Isso é para se livrar de tudo isso e ter um toque duplo de operação pública ou de RP e esse seria o comprimento seria apenas definir
‫e então a mesma coisa para a altura e assim por diante.
‫Mas eu só queria mostrar a você todas as maneiras diferentes que existem e todas as maneiras diferentes que
‫você verá.
‫E na maioria das vezes quando você vê algo ou quando usa propriedades, você verá na maioria das
‫vezes assim.
‫Portanto, com a propriedade implementada automaticamente, qual é a maneira mais fácil e rápida?
‫Você não precisará usar todas as diferentes abordagens que mostrei que são
‫realmente importantes, não precisará usar todas as diferentes estruturas, mas em alguns casos precisará implementar o
‫centro.
‫Em alguns casos, você precisa implementar o pedido específico e agora sabe como fazê-lo.
‫Resumindo, se você tiver alguma dúvida, por que precisa dessa abordagem?
‫Bem, eles são usados apenas quando você não tem nenhuma lógica adicional necessária nos acessadores de propriedade.
‫E as definições de propriedade e.
‫Sim.
‫Getters e setters.