Você está na página 1de 22

Programação C# -

Orientação a Objetos
Aprenda a programar em C# e dominar os princípios da
orientação a objetos

Iniciar

Visão geral
Este curso é projetado para ensinar os fundamentos da programação em C# e como
aplicar os princípios da orientação a objetos no desenvolvimento de software. Você
aprenderá a sintaxe básica da linguagem C#, estruturas de controle de fluxo,
manipulação de dados e criação de classes. Além disso, você entenderá conceitos
avançados como herança, polimorfismo, encapsulamento e abstração. Ao final deste
curso, você estará preparado para desenvolver aplicativos robustos e escaláveis em
C# com uma abordagem orientada a objetos.

06 Questionário

Introdução à Programação
Orientada a Objetos

01 Introdução à Programação Orientada a Objetos

A Programação Orientada a Objetos (POO) é um paradigma de programação


amplamente utilizado, que busca organizar o código de forma mais estruturada,
facilitando sua manutenção, reutilização e extensibilidade. Nesse contexto, o C# (C
Sharp) é uma linguagem de programação que suporta nativamente a POO, tornando-
se uma escolha popular para o desenvolvimento de aplicações orientadas a objetos.

Conceitos básicos da Programação Orientada a


Objetos

Na Programação Orientada a Objetos, um programa é construído a partir da definição


e interação entre objetos. Um objeto é uma representação de uma entidade do
mundo real, que possui características (atributos) e comportamentos (métodos). Por
exemplo, um objeto "Carro" pode possuir atributos como cor, modelo e velocidade, e
comportamentos como acelerar, frear e virar.

Um dos principais princípios da POO é a encapsulação, que consiste em agrupar os


atributos e métodos relacionados a um objeto em uma única unidade, chamada de
classe. Uma classe é a definição de um objeto, ou seja, é um modelo que descreve
como um objeto deve ser. Dessa forma, podemos criar vários objetos a partir de uma
classe, cada um com seus próprios valores específicos para os atributos, mas com os
mesmos comportamentos já definidos.

Outro conceito fundamental da POO é a herança, que permite criar novas classes a
partir de classes já existentes. A herança ocorre quando definimos uma nova classe
que possui todos os atributos e métodos da classe base, mas também pode adicionar
novos atributos e/ou métodos ou até mesmo modificar os existentes. Isso permite
uma reutilização de código eficiente, além de possibilitar uma hierarquia de classes
cada vez mais especializada.

Além disso, a POO também utiliza o conceito de polimorfismo, que permite tratar
objetos de diferentes classes de forma uniforme. Por exemplo, podemos ter uma
hierarquia de classes onde todas implementam um método com o mesmo nome, mas
cada uma delas tem a sua própria implementação específica. Dessa forma, podemos
tratar objetos das classes filhas de forma genérica, chamando o método comum a
todas elas sem saber exatamente qual implementação será executada.

Vantagens da Programação Orientada a Objetos

A Programação Orientada a Objetos traz diversos benefícios para o desenvolvimento


de software, sendo amplamente utilizada por programadores e empresas em todo o
mundo. Alguns dos principais benefícios são:

1. Reutilização de código: a POO permite que o código seja organizado em classes e objetos,
possibilitando a reutilização de código já existente. Com a herança, podemos estender as
funcionalidades de uma classe base para as classes derivadas, evitando a necessidade de
reinventar a roda.

2. Manutenção simplificada: a organização do código em classes facilita a manutenção do


software, uma vez que mudanças podem ser feitas em uma única classe, sem afetar as
demais. Além disso, como o código é mais modular, fica mais fácil identificar e corrigir bugs
ou adicionar novas funcionalidades.

3. Flexibilidade e extensibilidade: a POO permite que o software seja facilmente estendido para
atender novas demandas. Como a estrutura do código é organizada em classes e objetos, é
possível adicionar novas classes ou modificar as existentes sem impactar o restante do
sistema.

4. Abstração: a POO permite criar modelos abstratos dos objetos do mundo real, tornando o
código mais fácil de entender e manter. Ao trabalhar com objetos que possuem atributos e
comportamentos específicos, o desenvolvedor consegue se concentrar no problema em si,
abstraindo os detalhes de implementação.
Conclusão - Introdução à Programação Orientada a Objetos

A introdução à Programação Orientada a Objetos oferece aos


estudantes uma base sólida sobre os conceitos fundamentais
dessa abordagem de programação. Ao compreender os
princípios básicos, como encapsulamento, herança e
polimorfismo, os estudantes estarão preparados para
desenvolver aplicativos mais eficientes e escaláveis em C#. Eles
aprenderão a criar classes e objetos, aplicar os princípios de
encapsulamento para proteger os dados e implementar
comportamentos por meio de métodos e propriedades. Além
disso, os estudantes entenderão as vantagens de utilizar a
orientação a objetos no desenvolvimento de software, como a
reutilização de código e a modularidade.

Classes e Objetos em C#
02 Classes e Objetos em C#

As classes e objetos são conceitos fundamentais da programação orientada a objetos


(POO) em C#. Uma classe é uma estrutura que define as propriedades e
comportamentos de um objeto, enquanto um objeto é uma instância de uma classe.
Neste tópico, exploraremos de forma aprofundada as classes e objetos em C#,
destacando sua sintaxe, uso e benefícios.

Sintaxe da Classe

A sintaxe básica para a criação de uma classe em C# é a seguinte:

public class NomeDaClasse


{
// Propriedades, métodos e eventos da classe
}

A palavra-chave public indica que a classe pode ser acessada por qualquer código
que possua uma referência para ela. O nome da classe deve ser único dentro do
namespace e é uma boa prática utilizar nomes descritivos e seguir as convenções de
nomenclatura.

Propriedades
As propriedades em uma classe são utilizadas para definir e armazenar os valores
dos atributos do objeto. Uma propriedade consiste em um campo privado que
armazena o valor e métodos de acesso (getter e setter) para obter e atribuir esse
valor.

Aqui está um exemplo de declaração de propriedade em uma classe:

public class Pessoa


{
private string nome;

public string Nome


{
get { return nome; }
set { nome = value; }
}
}

No exemplo acima, a classe Pessoa possui uma propriedade chamada Nome que
realiza a leitura e gravação do campo privado nome . O valor da propriedade pode
ser obtido ou atribuído usando o método de acesso get ou set , respectivamente.

Métodos

Os métodos em uma classe são utilizados para definir o comportamento do objeto.


Um método é uma sequência de instruções que realiza uma tarefa específica.
Existem dois tipos de métodos em C#: métodos de instância e métodos estáticos.

Os métodos de instância são associados a uma instância específica da classe e são


acessados a partir de um objeto da classe. Já os métodos estáticos pertencem à
classe em si e podem ser acessados diretamente, sem a necessidade de uma
instância.

Aqui está um exemplo de declaração de método em uma classe:

public class Calculadora


{
public int Somar(int a, int b)
{
return a + b;
}

public static int Multiplicar(int a, int b)


{
return a * b;
}
}

No exemplo acima, a classe Calculadora possui dois métodos: Somar , que é um


método de instância, e Multiplicar , que é um método estático. O método Somar

realiza a soma de dois números inteiros e retorna o resultado, enquanto o método


Multiplicar realiza a multiplicação e também retorna o resultado.

Construtores

Construtores são métodos especiais que são chamados automaticamente quando um


objeto da classe é criado. Eles são utilizados para inicializar os membros da classe e
garantir que o objeto esteja em um estado inicial consistente.

Aqui está um exemplo de declaração de construtor em uma classe:


public class Carro
{
public string Modelo { get; }
public int Ano { get; }

public Carro(string modelo, int ano)


{
Modelo = modelo;
Ano = ano;
}
}

No exemplo acima, a classe Carro possui um construtor que recebe o modelo e o


ano do carro como parâmetros. Os valores passados para o construtor são utilizados
para inicializar as propriedades Modelo e Ano da classe.

Instanciando Objetos

Após definir uma classe, podemos criar objetos (instanciar) dessa classe usando o
operador new . Cada objeto criado possui seu próprio conjunto de propriedades e
pode chamar os métodos definidos na classe.

Aqui está um exemplo de criação de objetos a partir de uma classe:

Pessoa pessoa1 = new Pessoa();


pessoa1.Nome = "João";

Pessoa pessoa2 = new Pessoa();


pessoa2.Nome = "Maria";
No exemplo acima, duas instâncias da classe Pessoa são criadas: pessoa1 e
pessoa2 . Cada objeto possui seu próprio espaço na memória e podem ter valores
diferentes para as propriedades.

Benefícios de Classes e Objetos

Utilizar classes e objetos em C# traz diversos benefícios para a programação, como:

Abstração: permite representar entidades, conceitos ou elementos do mundo real de forma


mais precisa e em nível de negócio;

Encapsulamento: oculta a implementação interna de uma classe, fornecendo apenas uma


interface pública para interagir com o objeto;

Modularidade: permite dividir o sistema em componentes independentes, onde cada classe


representa uma parte específica do sistema;

Reutilização de código: ao criar uma classe, podemos reutilizá-la em diferentes partes do


sistema, economizando tempo e esforço de desenvolvimento.

Além disso, a POO promove o desenvolvimento de software mais organizado,


estruturado e modular, facilitando a manutenção, testes, reutilização e escalabilidade
do sistema.

Conclusão - Classes e Objetos em C#

O tópico de classes e objetos em C# é essencial para qualquer


estudante que deseja se tornar um desenvolvedor proficientes
em C#. Ao dominar esse tópico, os estudantes serão capazes de
criar estruturas de dados personalizadas para representar
entidades do mundo real, como pessoas, produtos ou
transações bancárias. Eles aprenderão a declarar atributos e
métodos dentro de uma classe, instanciar objetos a partir dessa
classe e acessar seus membros usando a notação de ponto.
Além disso, eles entenderão a diferença entre classes e objetos,
aprenderão a utilizar construtores para inicializar objetos e
como implementar métodos construtores para fornecer uma
forma conveniente de criar objetos.

Herança e Polimorfismo

03 Herança e Polimorfismo

A herança e o polimorfismo são dois conceitos fundamentais na programação


orientada a objetos. Eles permitem a criação de hierarquias de classes e a
flexibilidade na manipulação de objetos.
Herança

A herança é um mecanismo pelo qual uma classe pode herdar atributos e métodos
de outra classe. A classe que herda é chamada de classe derivada ou subclasse, e a
classe da qual ela herda é chamada de classe base ou superclasse.

A herança permite a reutilização de código, pois a subclasse pode aproveitar os


atributos e métodos da superclasse, adicionando ou modificando o que for
necessário. Por exemplo, se tivermos uma classe Animal como superclasse,
podemos ter subclasses como Cachorro , Gato e Pássaro , que herdam os
atributos e métodos básicos de Animal e adicionam características específicas de
cada um desses animais.

Para definir a herança em C#, utilizamos a palavra-chave class , seguida do nome


da classe derivada, seguida pela palavra-chave : , seguida pelo nome da classe
base. Por exemplo:

public class Cachorro : Animal


{
// código da classe Cachorro
}

Polimorfismo

O polimorfismo é a capacidade que um objeto tem de se comportar de diferentes


formas, dependendo do contexto em que é utilizado. Em outras palavras, objetos de
diferentes classes podem ser tratados de maneira uniforme, desde que sejam
compatíveis com a classe base.
O polimorfismo é amplamente utilizado em situações em que temos uma coleção de
objetos de diferentes classes, mas precisamos manipulá-los de maneira uniforme. Por
exemplo, podemos ter uma lista de animais, sendo que essa lista pode conter objetos
tanto da classe Cachorro como da classe Gato . Podemos então percorrer essa
lista e invocar o método FazerBarulho() , que é comum a todos os animais. O
polimorfismo garante que cada objeto se comportará corretamente, de acordo com
sua classe específica.

Para utilizar o polimorfismo em C#, é necessário que as classes envolvidas estejam


relacionadas por herança. Além disso, é necessário que o método que será invocado
seja virtual na classe base e substituído na classe derivada. Podemos utilizar a
palavra-chave virtual para indicar que um método da classe base pode ser
substituído, e a palavra-chave override para indicar que um método da classe
derivada está substituindo o método da classe base. Por exemplo:

public class Animal


{
public virtual void FazerBarulho()
{
Console.WriteLine("Barulho de animal");
}
}

public class Cachorro : Animal


{
public override void FazerBarulho()
{
Console.WriteLine("Au au");
}
}

public class Gato : Animal


{
public override void FazerBarulho()
{
Console.WriteLine("Miau");
}
}

Nesse exemplo, a classe Animal possui um método FazerBarulho() virtual, que é


substituído pelas classes Cachorro e Gato . Ao percorrer uma lista de animais e
chamar o método FazerBarulho() , cada objeto se comportará de acordo com sua
classe específica.

O polimorfismo também pode ser utilizado através de interfaces em C#. Interfaces


são contratos que definem um conjunto de métodos que uma classe deve
implementar. Uma classe pode implementar várias interfaces, permitindo que ela seja
tratada como um objeto de cada uma dessas interfaces. Dessa forma, podemos
utilizar o polimorfismo para tratar diferentes classes como se fossem objetos de uma
mesma interface.

public interface IFalante


{
void Falar();
}

public class Pessoa : IFalante


{
public void Falar()
{
Console.WriteLine("Oi!");
}
}

public class Papagaio : IFalante


{
public void Falar()
{
Console.WriteLine("Poli, quer biscoito?");
}
}

Nesse exemplo, tanto a classe Pessoa como a classe Papagaio implementam a


interface IFalante , permitindo que ambas sejam tratadas como objetos de
IFalante e que chamem o método Falar() de forma polimórfica.

O polimorfismo é uma característica poderosa da programação orientada a objetos,


que permite criar código mais flexível e reutilizável. Com a herança e o polimorfismo,
é possível criar hierarquias de classes e manipular objetos de forma uniforme,
independentemente de suas classes específicas.

Conclusão - Herança e Polimorfismo

A herança e o polimorfismo são conceitos avançados que


permitem que os desenvolvedores criem hierarquias de classes
e usem o mecanismo de substituição para reutilizar e estender
o comportamento das classes pai. Com a herança, é possível
criar classes derivadas que herdam atributos e métodos da
classe pai, permitindo a reutilização de código e evitando a
duplicação de implementações. Já o polimorfismo permite que
uma referência de tipo mais genérico seja usada para manipular
objetos de tipos mais específicos, tornando o código mais
flexível e extensível. Ao entender e aplicar corretamente esses
conceitos, os estudantes serão capazes de criar hierarquias de
classes bem estruturadas e escrever código mais eficiente e
fácil de manter.

Exercícios Práticos
Vamos colocar seus conhecimentos em prática

04 Exercícios Práticos

Nesta lição, colocaremos a teoria em prática por meio de atividades práticas. Clique
nos itens abaixo para conferir cada exercício e desenvolver habilidades práticas que o
ajudarão a ter sucesso na disciplina.

Classe Carro
Crie uma classe chamada Carro, com os atributos marca, modelo e ano. Crie
um método chamado ligar, que exibe a mensagem 'O carro está ligado'. Crie
também um método chamado desligar, que exibe a mensagem 'O carro está
desligado'.

Classe Circulo

Crie uma classe chamada Circulo, com o atributo raio. Crie um método
chamado CalcularArea, que recebe o valor do raio e retorna a área do círculo
(π * raio^2). Crie também um método chamado CalcularPerimetro, que
recebe o valor do raio e retorna o perímetro do círculo (2 * π * raio).

Classe Animal

Crie uma classe chamada Animal, com os atributos nome e idade. Crie um
método chamado EmitirSom, que exibe a mensagem 'O animal está emitindo
um som'. Crie também uma classe chamada Cachorro que herda da classe
Animal e sobrescreve o método EmitirSom, exibindo a mensagem 'O
cachorro está latindo'.
Resumo
Vamos revisar o que acabamos de ver até agora

05 Resumo

A introdução à Programação Orientada a Objetos oferece aos estudantes uma


base sólida sobre os conceitos fundamentais dessa abordagem de
programação. Ao compreender os princípios básicos, como encapsulamento,
herança e polimorfismo, os estudantes estarão preparados para desenvolver
aplicativos mais eficientes e escaláveis em C#. Eles aprenderão a criar classes e
objetos, aplicar os princípios de encapsulamento para proteger os dados e
implementar comportamentos por meio de métodos e propriedades. Além disso,
os estudantes entenderão as vantagens de utilizar a orientação a objetos no
desenvolvimento de software, como a reutilização de código e a modularidade.

O tópico de classes e objetos em C# é essencial para qualquer estudante que


deseja se tornar um desenvolvedor proficientes em C#. Ao dominar esse tópico,
os estudantes serão capazes de criar estruturas de dados personalizadas para
representar entidades do mundo real, como pessoas, produtos ou transações
bancárias. Eles aprenderão a declarar atributos e métodos dentro de uma
classe, instanciar objetos a partir dessa classe e acessar seus membros usando
a notação de ponto. Além disso, eles entenderão a diferença entre classes e
objetos, aprenderão a utilizar construtores para inicializar objetos e como
implementar métodos construtores para fornecer uma forma conveniente de criar
objetos.

A herança e o polimorfismo são conceitos avançados que permitem que os


desenvolvedores criem hierarquias de classes e usem o mecanismo de
substituição para reutilizar e estender o comportamento das classes pai. Com a
herança, é possível criar classes derivadas que herdam atributos e métodos da
classe pai, permitindo a reutilização de código e evitando a duplicação de
implementações. Já o polimorfismo permite que uma referência de tipo mais
genérico seja usada para manipular objetos de tipos mais específicos, tornando
o código mais flexível e extensível. Ao entender e aplicar corretamente esses
conceitos, os estudantes serão capazes de criar hierarquias de classes bem
estruturadas e escrever código mais eficiente e fácil de manter.

Questionário
Verifique seu conhecimento respondendo a algumas perguntas

06 Questionário
1. O que é programação orientada a objetos?

Um paradigma de programação que utiliza apenas variáveis para organizar o código

Um paradigma de programação que utiliza objetos e classes para organizar o código

Um paradigma de programação que utiliza apenas funções para organizar o código

2. O que é uma classe em C#?

Uma estrutura de controle que permite a execução de comandos

Um local de armazenamento temporário para valores

Um tipo de dado que armazena informações e comportamentos relacionados

3. O que é um objeto em C#?

Uma expressão matemática que realiza uma operação

Uma instância de uma classe que contém dados e métodos

Uma sequência de caracteres

4. O que é herança em programação orientada a objetos?

Um mecanismo que permite que uma classe herde as características de outra classe

Um mecanismo que permite a criação de múltiplas instâncias de uma classe


Um mecanismo que permite a definição de operações em uma classe

5. O que é polimorfismo em programação orientada a objetos?

A capacidade de uma classe criar várias instâncias de si mesma

A capacidade de uma classe alterar o comportamento de um método herdado

A capacidade de uma classe herdar características de várias outras classes

6. Qual é o nome do curso?

Introdução à Programação Orientada a Objetos

Programação C# - Orientação a Objetos

Classes e Objetos em C#

Enviar

Conclusão

Parabéns!
Parabéns por concluir este curso! Você deu um passo importante para liberar todo o
seu potencial. Concluir este curso não é apenas adquirir conhecimento; trata-se de
colocar esse conhecimento em prática e causar um impacto positivo no mundo ao
seu redor.

Compartilhar este curso

Created with LearningStudioAI


v0.4.4

Você também pode gostar