Orientação a Objetos - Propriedades

Nesta aula iremos aprender como criar uma propriedade em C#, iremos entender o que é GET e SET, como utilizar e quando utilizar.

assinaturaAssine nossa Comunidade

POO - Propriedades

Propriedades permitem que possamos ler ou gravar um campo através da instância do objeto, limitando ou não o acesso a leitura ou gravação desta informação.

Utilizamos as palavras GET e SET para criar propriedades. GET e SET usam atributos da classe para ler ou gravar informações.

Atributos são variaveis abstraídas do mundo real quando definimos as classes.Exemplo: nome, telefone, etc..

Para exemplificar, vamos criar um atributo simples na classe Cachorro,chamado Idade, sem GET ou SET:

      
        public class Cachorro : Animal
        {
      
          public int Idade;
         
          public override void Latir() 
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
          
        }            
      
    

Ao criar a instância da classe Cachorro, podemos gravar a idade e ler a idade:

      
        //Neste caso, o GET e o SET ficam implícitos e podemos obter e gravar a idade normalmente.
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              c.Idade = 1;
              Console.WriteLine(c.Idade);
            }
          }
        }
       
    

Vamos criar propriedades complexa, com GET e SET, para o atributo Idade2

      
        
        public class Cachorro : Animal
        {
      
          public int Idade;
          public int Idade2 {get; set;}
         
          public override void Latir()
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
          
        }            
      
    

Ao acessarmos a propriedade Idade2, note que ainda desta maneira, não há diferença de como acessamos o atributo Idade e a propriedade Idade2.

      
        //Ainda podemos obter e gravar a idade normalmente.
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              c.Idade = 1;
              Console.WriteLine(c.Idade);

              c.Idade2 = 1;
              Console.WriteLine(c.Idade2);
            }
          }
        }
       
    

Mas então, qual seria a diferença entre acessar o atributo Idade e Idade2? A diferença é , se quisermos que a propriedade Idade2 seja somente leitura, excluímos o SET. Exemplo:

      
        //definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
        public class Cachorro : Animal
        {
      
          public int Idade;
          public int Idade2 {get;}
         
          public override void Latir()
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
          
        }            
      
    

Obtendo somente o valor da Idade2 com o GET:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              Console.WriteLine(c.Idade2);   //só é possivel mostrar o valor, não é possível atribuir valor.
            }
          }
        }
       
    

Podemos ainda definir o que vamos retornar na Propriedade Idade2, criando um bloco de código no GET. Exemplo:

      
        //definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
        public class Cachorro : Animal
        {
      
          public int Idade;
          
          private int idadePreDefinida = 2;

          public int Idade2 
          {
            get
            {
              return idadePreDefinida;
            }
          }
                  
        }            
      
    

No programa principal(main), ao Obter Idade2, será mostrado 2.Exemplo:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              Console.WriteLine(c.Idade2); 
              
              //resultado 2
            }
          }
        }
       
    

Podemos definir SET para gravar a Idade2 que vamos atribuir na instãncia da classe.

      
        //utilizamos o value na classe para gravar o valor que vem da atribuição da instância do objeto.
        public class Cachorro : Animal
        {
      
          public int Idade;
          
          private int idadePreDefinida = 2;

          public int Idade2 
          {
            get
            {
              return idadePreDefinida;
            }

            set
            {
              idadePreDefinida = value;
            }
          }
                  
        }            
      
    

No programa principal(main), ao gravar Idade2 com o valor 1, será mostrado 1.Exemplo:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              c.Idade2 = 1;       //Aqui atribuimos 1 para a Idade2
              Console.WriteLine(c.Idade2); 
              
              //resultado 1
            }
          }
        }
       
    

Orientação a Objetos - Propriedades

Nesta aula iremos aprender como criar uma propriedade em C#, iremos entender o que é GET e SET, como utilizar e quando utilizar.

Próximas Aulas:
assinaturaAssine nossa Comunidade

POO - Propriedades

Propriedades permitem que possamos ler ou gravar um campo através da instância do objeto, limitando ou não o acesso a leitura ou gravação desta informação.

Utilizamos as palavras GET e SET para criar propriedades. GET e SET usam atributos da classe para ler ou gravar informações.

Atributos são variaveis abstraídas do mundo real quando definimos as classes.Exemplo: nome, telefone, etc..

Para exemplificar, vamos criar um atributo simples na classe Cachorro,chamado Idade, sem GET ou SET:

      
        public class Cachorro : Animal
        {
      
          public int Idade;
         
          public override void Latir() 
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
          
        }            
      
    

Ao criar a instância da classe Cachorro, podemos gravar a idade e ler a idade:

      
        //Neste caso, o GET e o SET ficam implícitos e podemos obter e gravar a idade normalmente.
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              c.Idade = 1;
              Console.WriteLine(c.Idade);
            }
          }
        }
       
    

Vamos criar propriedades complexa, com GET e SET, para o atributo Idade2

      
        
        public class Cachorro : Animal
        {
      
          public int Idade;
          public int Idade2 {get; set;}
         
          public override void Latir()
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
          
        }            
      
    

Ao acessarmos a propriedade Idade2, note que ainda desta maneira, não há diferença de como acessamos o atributo Idade e a propriedade Idade2.

      
        //Ainda podemos obter e gravar a idade normalmente.
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              c.Idade = 1;
              Console.WriteLine(c.Idade);

              c.Idade2 = 1;
              Console.WriteLine(c.Idade2);
            }
          }
        }
       
    

Mas então, qual seria a diferença entre acessar o atributo Idade e Idade2? A diferença é , se quisermos que a propriedade Idade2 seja somente leitura, excluímos o SET. Exemplo:

      
        //definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
        public class Cachorro : Animal
        {
      
          public int Idade;
          public int Idade2 {get;}
         
          public override void Latir()
          {
            Console.WriteLine("Au eu sou um cachorrinho");
          }
          
        }            
      
    

Obtendo somente o valor da Idade2 com o GET:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              Console.WriteLine(c.Idade2);   //só é possivel mostrar o valor, não é possível atribuir valor.
            }
          }
        }
       
    

Podemos ainda definir o que vamos retornar na Propriedade Idade2, criando um bloco de código no GET. Exemplo:

      
        //definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
        public class Cachorro : Animal
        {
      
          public int Idade;
          
          private int idadePreDefinida = 2;

          public int Idade2 
          {
            get
            {
              return idadePreDefinida;
            }
          }
                  
        }            
      
    

No programa principal(main), ao Obter Idade2, será mostrado 2.Exemplo:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              Console.WriteLine(c.Idade2); 
              
              //resultado 2
            }
          }
        }
       
    

Podemos definir SET para gravar a Idade2 que vamos atribuir na instãncia da classe.

      
        //utilizamos o value na classe para gravar o valor que vem da atribuição da instância do objeto.
        public class Cachorro : Animal
        {
      
          public int Idade;
          
          private int idadePreDefinida = 2;

          public int Idade2 
          {
            get
            {
              return idadePreDefinida;
            }

            set
            {
              idadePreDefinida = value;
            }
          }
                  
        }            
      
    

No programa principal(main), ao gravar Idade2 com o valor 1, será mostrado 1.Exemplo:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
              var c = new Cachorro();
              c.Idade2 = 1;       //Aqui atribuimos 1 para a Idade2
              Console.WriteLine(c.Idade2); 
              
              //resultado 1
            }
          }
        }