Introdução a Classes e Objetos
Parte da seção Programação Orientada a Objetos do Journey de C# da Coddy — lição 3 de 70.
Uma classe é um modelo para criar objetos. Um objeto é uma instância de uma classe que contém dados e comportamento.
Defina uma classe simples com propriedades
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}Adicione um construtor para inicializar o objeto
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}Adicione um método para definir o comportamento
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
public string Bark()
{
return $"{Name} says Woof!";
}
}Crie um objeto (instância) e use-o
Dog myDog = new Dog("Buddy", 3);
Console.WriteLine(myDog.Bark());
Console.WriteLine($"Age: {myDog.Age}");Saída:
Buddy says Woof!
Age: 3A palavra-chave new cria uma instância da classe, chamando o construtor. Você pode criar múltiplos objetos a partir da mesma classe, cada um com dados diferentes.
Desafio
FácilComplete a classe Car adicionando um construtor e um método Drive(). Em seguida, crie um objeto Car em Program.cs e utilize-o.
O método Drive() deve retornar: "The {Brand} is driving!"
Folha de consulta
Uma classe é um modelo para criar objetos. Um objeto é uma instância de uma classe que contém dados e comportamento.
Defina uma classe com propriedades:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}Adicione um construtor para inicializar o objeto:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}Adicione métodos para definir o comportamento:
public string Bark()
{
return $"{Name} says Woof!";
}Crie um objeto usando a palavra-chave new:
Dog myDog = new Dog("Buddy", 3);
Console.WriteLine(myDog.Bark());
Console.WriteLine($"Age: {myDog.Age}");Experimente você mesmo
using System;
class Program
{
static void Main()
{
string brand = Console.ReadLine();
int year = int.Parse(Console.ReadLine());
// TODO: Criar um objeto Car com os valores de entrada
// TODO: Imprimir "Car: {brand} ({year})"
// TODO: Chamar o método Drive() e imprimir o resultado
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Fundamentos de POO
Arquivos ExternosNamespaces e DiretivasIntrodução a Classes e ObjetosA Palavra-chave 'this'Métodos e ParâmetrosCampos vs PropriedadesConstrutoresInicializadores de ObjetosRecapitulação - Calculadora Simples4Herança
Sintaxe Básica de Herança (:)A Palavra-chave 'base'Palavras-chave Virtual e OverrideClasses SeladasA Classe Base 'object'Recapitulação - Hierarquia de Funcionários7Recursos Avançados
Sobrecarga de OperadoresIndexadores (this[])Sobrescrita de ToString()Métodos de ExtensãoRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução aos Padrões de ProjetoSingleton Thread-SafePadrão FactoryPadrão Observer (Eventos)Padrão Strategy2Propriedades e Membros Estáticos
Propriedades AutoimplementadasPropriedades de Apenas Leitura/EscritaCampos e Métodos EstáticosClasses EstáticasMembros com Corpo de Expressão5Polimorfismo e Interfaces
Polimorfismo: Compilação vs ExecuçãoInterface vs Classe AbstrataMúltiplas InterfacesInterfaces ExplícitasUpcasting e DowncastingRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição sobre HerançaGenerics (Classes e Métodos)Delegates e EventosAtributos e ReflectionIDisposable e a Instrução usingFundamentos de Injeção de Dependência11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Arquitetura de Classes
Dados de Instância vs EstáticosPalavras-chave 'readonly' e 'const'Campos de SuporteRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Modificadores de AcessoPropriedades para EncapsulamentoImplementação de Ocultação de DadosPadrões de ImutabilidadeRecapitulação - Registros de Estudantes9Argumentos Variáveis
A Palavra-chave 'params'Parâmetros OpcionaisArgumentos NomeadosSobrecarga de Métodos