Você está aqui: C# ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar herança em C# - Programação Orientada a Objetos em C#

Quantidade de visualizações: 26632 vezes
Herança é uma dos três princípios fundamentais da programação orientada a objetos porque ela permite a criação de hierarquia nos objetos que compõem o sistema. Em C#, uma classe que tem seus dados e métodos herdados por outra é chamada de classe base ou super classe e a classe que herda tais dados é chamada de classe derivada ou sub-classe.

O que um aluno, um professor e um funcionário possuem em comum? Todos eles são pessoas e, portanto, compartilham alguns dados comuns. Todos têm nome, idade, endereço, etc. E, o que diferencia um aluno de uma outra pessoa qualquer? Um aluno possui uma matrícula; Um funcionário possui um código de funcionário, data de admissão, salário, etc; Um professor possui um código de professor e informações relacionadas à sua formação.

É aqui que a herança se torna uma ferramenta de grande utilidade. Podemos criar uma classe Pessoa, que possui todos os atributos e métodos comuns a todas as pessoas e herdar estes atributos e métodos em classes mais específicas, ou seja, a herança parte do geral para o mais específico. Comece criando uma classe Pessoa como mostrado no código a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

class Pessoa{
  public string nome;
  public int idade;
}

Esta classe possui os atributos nome e idade. Estes atributos são comuns a todas as pessoas. Veja agora como podemos criar uma classe Aluno que herda estes atributos da classe Pessoa e inclui seu próprio atributo, a saber, seu número de matrícula. Eis o código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
 
class Aluno: Pessoa{
  public string matricula;
}

Observe que, em C#, os dois-pontos são usados para indicar a herança. A classe Aluno agora possui três atributos: nome, idade e matricula. Veja uma aplicação demonstrando este relacionamento:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // cria um objeto da classe Aluno
  Aluno aluno = new Aluno();

  aluno.nome = "Osmar J. Silva";
  aluno.idade = 36;
  aluno.matricula = "AC33-65";

  // Exibe o resultado
  Console.WriteLine("Nome: " + aluno.nome + "\n" +
    "Idade: " + aluno.idade + "\n" +
    "Matrícula: " + aluno.matricula);

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

A herança nos fornece um grande benefício. Ao concentrarmos características comuns em uma classe e derivar as classes mais específicas a partir desta, nós estamos preparados para a adição de novas funcionalidades ao sistema. Se mais adiante uma nova propriedade comum tiver que ser adicionada, não precisaremos efetuar alterações em todas as classes. Basta alterar a superclasse e pronto. As classes derivadas serão automaticamente atualizadas.

Link para compartilhar na Internet ou com seus amigos:

C# ::: Windows Forms ::: DataGridView

Como retornar a coluna da célula selecionada em um DataGridView do C# Windows Forms

Quantidade de visualizações: 14577 vezes
Muitas vezes precisamos obter a coluna atual de uma determinada célula selecionada no DataGridView. Isso pode ser feito obtendo-se o índice da coluna da célula selecionada e então fornecendo este índice para a propriedade Columns da classe DataGridView. O retorno será um objeto da classe DataGridViewColumn, que representa uma coluna no DataGridView. Podemos usar esta classe para obter o índice da coluna que contém a célula selecionada, percorrer todas as células de uma determinada coluna, etc.

Veja um trecho de código no qual obtemos o DataGridViewColumn representando a coluna da célula selecionada:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button3_Click(object sender, EventArgs e){
  // vamos obter a coluna da célula selecionada
  DataGridViewColumn colunaAtual = 
    dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex];

  // vamos exibir o índice da coluna atual
  int indice = colunaAtual.Index;
  MessageBox.Show("O índice da coluna atual é: " + indice);
}



C# ::: LINQ ::: LINQ to Objects

Como retornar o maior elemento em um array de int em C# usando a função Max() do LINQ

Quantidade de visualizações: 929 vezes
Nesta dica mostrarei, em um exemplo bem simples, como podemos usar o método Max() do LINQ (Language-Integrated Query) do C# para retornar o maior elemento de um vetor de inteiros.

Note que temos um vetor de int com os valores {5, 2, 8, 3, 0, 1} e o valor 8 deverá ser retornado como sendo o maior.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.Linq;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos construir um vetor de inteiros
      int[] valores = {5, 2, 8, 3, 0, 1};

      // vamos obter o maior elemento do vetor
      int maior = valores.Max();

      // vamos mostrar o resultado
      Console.WriteLine("O maior valor é: {0}", maior);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

O maior valor é: 8

Fique atento ao fato de que o método Max() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas.

Veja o resultado ao chamarmos este método em um vetor vazio:

System.InvalidOperationException
HResult=0x80131509
Message=Sequence contains no elements
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Max(IEnumerable`1 source)
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11


C# ::: Dicas & Truques ::: Strings e Caracteres

Como retornar o índice da primeira ocorrência de um caractere em uma string C# usando o método IndexOf() da classe String

Quantidade de visualizações: 8490 vezes
Em alguma ocasião nós precisaremos verificar se um determinado caractere está contido em uma palavra, frase ou texto, e poderemos querer também retornar o índice da primeira ocorrência de tal caractere.

Para isso nós podemos usar a função IndexOf() da classe String. Este método recebe o caractere ou substring desejada e retorna um valor inteiro indicando o índice da primeira ocorrência. Se o caractere não for encontrado, o valor -1 é retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de Java e C#";

      // vamos obter o índice da primeira ocorrência da letra "J"
      int pos = frase.IndexOf("J");

      // o caractere for encontrado?
      if (pos != -1) {
        Console.WriteLine("O caractere foi encontrado" +
          " na posição " + pos);
      }
      else {
        Console.WriteLine("O caractere não foi encontrado");
      }

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

O caractere foi encontrado na posição 9

Tenha em mente que o método IndexOf() da classe String do C# diferencia letras maiúsculas de letras minúsculas.


Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Equação da continuidade

Um Boeing 747 (figura) tem em torno de 500 m2 de área alar (área total das duas asas). Considere que ele está se movendo a 230 m/s em relação ao ar. As linhas de fluxo acima da asa estão comprimidas em 80% de sua área original. As linhas de fluxo abaixo da asa não estão comprimidas. Calcule a força resultante devido à pressão à qual o Boeing está submetido. Considere a densidade do ar na altitude em que o Boeing está voando ρar = 0,40 kg/m3.



A) 1,27 x 106 N

B) 5,91 kN

C) 2,98 x 106 N

D) 2,20 x 106 N

E) 3,48 x 106 N
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual é a forma correta de adicionar comentários de uma linha em JavaScript?

A) <!-- Este é um comentário -->

B) // Este é um comentário

C) ' Este é um comentário

D) # Este é um comentário
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual é a forma correta de se criar um array em JavaScript?

A) var cores = ["vermelho", "verde", "azul"];

B) var cores = (1: "vermelho", 2: "verde", 3: "azul");

C) var cores = "vermelho", "verde", "azul";

D) var cores = 1: ("vermelho"), 2: ("verde"), 3: ("azul");
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Analise o seguinte trecho de código JavaScript

var a = new Array();
a[0] = 12;
a[1] = false;
a[2] = "texto";
a[3] = a;

Qual destas instruções provocará um erro de execução?

A) Linha 3

B) Linha 4

C) Linha 5

D) O código executa sem provocar erros
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual função é usada para converter uma string em letras minúsculas em Python?

A) toLower()

B) toLowerCase()

C) lower_case()

D) lower()

E) lowercase()
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 53 usuários muito felizes estudando em nosso site.