10 Coisas que você precisa saber sobre linguagem orientada a objeto (C#)

Neste artigo irei falar sobre 10 coisas que você precisa saber sobre linguagem orientada a objetos, no nosso caso, C#. Muitos programadores utilizam esses recursos mas não sabem exatamente o que são, ou não entendem direito pra que servem e consequentemente deixam de usar em determinada situação por não entender completamente. Muitos artigos tratam dos assuntos abaixo de forma complexa, porém, irei definir da forma mais simples possível as 10 coisas que você precisa saber sobre programação orientada a objetos:

1 – O que é uma classe?

Uma classe é basicamente um conjunto de objetos e suas caracteristicas. Suponhamos que temos uma classe chamada concessionária. Os objetos dessa classe são carros.

2 – O que é um objeto?

Pensar na programação como objeto serve para que possamos associar coisas da vida real com a programação, tornando mais fácil e simples de entender como um sistema foi construído ou como deve ser. Com o conceito de objeto como abstração, podemos utilizar coisas associadas ao nosso dia-a-dia para lidar com situações complexas de programação.

Um objeto é composto por métodos e propriedades. Por exemplo, temos o objeto carro, cujos métodos são: correr, freiar e estacionar.

3 – O que é um método?

Um método é uma espécie de função associada ao objeto, um método pode definir comportamentos de um objeto. Por exemplo, um método do objeto carro pode ser correr. Os métodos devem ser invocados apenas por intermédio do objeto, ou seja, primeiro você deve invocar o objeto carro para depois acessar o método correr.

4 – O que é propriedade/atributo?

Uma propriedade ou atributo torna possível definir características de um objeto. Por exemplo, podemos usar a propriedade motor para definir uma característica (ou componente) do objeto carro. Outros exemplos seriam: rodas, pneus, bancos, etc.

Uma propriedade também pode ser alterar através de um método. Por exemplo: o método inserirMotor pode servir para inserir um valor (V6) dentro de uma propriedade (motor).

5 – O que é instância?

Uma instância é um processo de criação de um objeto. Por exemplo, podemos criar a instância Pálio para o objeto carro.

6 – O que é Mensagem?

Uma mensagem é uma invocação para que um objeto execute um de seus métodos (comportamentos). Por exemplo, podemos invocar o método correr do objeto carro passando o valor 100km. Ou seja, estou enviando uma mensagem solicitando ao objeto carro através de seu método correr que corra 100km (valor).

7 – O que é Polimorfismo?

De maneira simples, polimorfismo quer dizer que é possível enviar uma mesma mensagem (100km) para uma classe (concessionária) através de um método (correr) e que cada objeto (carro, caminhão, van) responda de maneira diferente em função da mesma mensagem recebida.

Ex. O objeto carro pode responder 1hr a mensagem 100km. O objeto caminhão pode responder 1 hr e 30 minutos a mensagem 100km… etc.

8 – O que é Herança?

Vamos imaginar que a classe concessionária tem subclasses, como por exemplo: Fiat, Honda e Pegeout. As subclasses Fiat, Honda e Pegeout evidentemente herdam as características (propridades, atributos) da classe concessionária. Porém, tem suas próprias características.

Sendo assim as classes filhas herdam as características das classes pais e tem características que só eles tem: Fiat, Honda e Pegeout herdam características de concessionárias.

Enquanto as classes pais não herdam as características das classes filhas: concessionárias não herdam características da Honda por exemplo.

9 – O que é classe abstrata?

Uma classe abstrata representa uma coleção de características que estão presentes em vários tipos de objetos, mas que não existe isoladamente.

Por exemplo, podemos criar uma classe abstrata bensMateriais. Nessa classe podemos chamar objetos de outras classes, como: carro (da classe concessionária), casa (da classe imóveis)… etc.

Sendo assim, bensMateriais é uma entidade abstrata, você pode dizer que um carro é um bemMaterial, porém, nunca verá um objeto que é apenas um bemMaterial diretamente nessa classe. Ou seja, antes do carro ser um objeto da classe abstrata bensMateriais ele é um objeto da classe concessionária. Sendo assim, uma casa (objeto) não pode ser um bemMaterial (classe abstrata) antes de ser um imóvel (classe).

10 – Quais as vantagens de uma Linguagem Orientada a Objetos?

No geral, podemos dizer que uma linguagem orientada a objetos possui uma divisão de códigos mais simples, fácil de entender e interpretar, fácil de modificar, fácil de reaproveitar, etc. Também é mais fácil dividir tarefas entre uma equipe quando se usa uma linguagem orientada a objetos. Cada membro da equipe pode ficar responsável pelo funcionamento de uma classe ou de um objeto dependendo do tamanho da equipe e do projeto.

A produtividade e o ciclo de vida de uma aplicação utilizando linguagem orientada a objetos muitas vezes é superior a uma linguagem não orientada a objetos. Na produtividade, devemos levar em conta fatos como o reaproveitamento de código, se precisamos criar uma instância do objeto carro a todo momento, podemos apenas chamar e instânciar esse objeto ao invés de criá-lo inteiro novamente vez após vez. No ciclo de vida maior, podemos mencionar que a manutenção torna-se mais fácil, bem como a correção de problemas e a expansividade do código torna possível adicionar novas funções ao projeto reaproveitando diversas classes, objetos, etc.

 

Confira alguns temas que farão parte dos próximos artigos e fique atento no blog:

– Tudo sobre GridView

– Cookie em C#

– Aplicando Boas práticas de programação

– Engenharia de software (C#)

 

Gostou desse artigo? Comente o que você achou abaixo.

 

 

19 Comentários


  1. Velho muito obrigado pelo tutorial…. me ajudou muito sou novo por ak mais isso me ajudou muitonobrigado

    Responder

  2. Parabéns pelo artigo, na maneira como foi apresentado ficou bastante simples .

    Responder

  3. Olá, mais um artigo exceles, super claro e exemplificador.
    Ótimo para inciantes como eu e pessoas que ja atuam no ramo.
    Paarabéns, continue assim!

    Responder

  4. Explanar o conceito de Orientação a Objeto é sem dúvida uma “Boa” ,principalmente para os iniciantes nessa área (como Eu por exemplo – Estou há um mês trabalhando com ASP.NET,C#,e LINQ).Este Artigo me ajudou bastante.Fico no aguardo do Artigo que aborde o GridView,pois o que mais faço é Web Forms para manutenção no Banco (incluir,excluir e Editar) e me perco bastante em “carregar”trazer os dados do Banco para o Grid.ABs e Parabém pelas postagens
    Att
    Nei.

    Responder

    1. Olá Renato. Obrigado!
      Gostaria de aproveitar e agradecer o carinho e as visitas de todos que passam por aqui. Isso me anima cada vez mais a escrever artigos desse tipo, embora ultimamente não tenha tido tempo hábil para isso 🙁
      Mas já estou preparando novos artigos e em breve irei postá-los 🙂
      Abraço!

      Responder

  5. Muito bom seu artigo, realmente, porém eu definiria uma classe de uma forma diferente. Uma classe é uma abstração de um modelo real. Digamos que tenhamos uma classe microondas.

    A classe definirá as ações (métodos), os atributos (características) e comportamentos que o microondas tem. Mas o microondas em sua perspectiva de “classe” seria apenas uma abstração mesmo, um modelo, onde tomaria vida através de um “objeto”.

    Mesmo assim, gostei muito do artigo, está de parabéns!

    Responder

  6. Muito boa a explicação! Os exemplos citados mostraram exatamente a base do conceito da orientação a Objeto, parabéns!

    Responder

  7. Muito interessante o artigo e apresenta de forma simples e intuitiva o seu conteúdo
    obrigado

    Responder

  8. Explicação simples e muito didática.
    Parabéns e, por favor, continue com o trabalho, pois é de qualidade e elucidativo, principalmente para mim que sou iniciante no assunto.

    Responder

  9. cara muito bom! parabéns continue assim você está ajudando muitas pessoas, uma sugestão, por que não inicia um projeto asp.net do zero? criando paginas, login, conteudo, passo a passo preciso muito também e com certeza o povo que acessa irá aprovar.

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*