Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre static

Ainda não compreendi 100% de onde eu uso o static e o por que. Podem me ajudar e se possível mostrar um exemplo?

1 resposta
solução!

Olá, Arthur

Em resumo, o uso do static é feito para quando não é necessário a instanciação de uma classe para o uso da mesma ou de algum método. Por exemplo:

Uma calculadora, se pararmos para analisar, ela não possui propriedades próprias, considerando apenas as operações básicas de soma, subtração, divisão e multiplicação, nenhuma delas precisa de algum dado interna que apenas a calculadora possa ter, então podemos disponibilizar essa classe calculadora estaticamente, a seguir um exemplo simples dessa classe calculadora:

static class Calculadora 
{
    public static double Soma(double x, double y) {
            return x + y;
    }

    public static double Subtracao(double x, double y) {
            return x - y;
    }

    public static double Divisao(double x, double y) {
            return x / y;
    }

    public static double Multiplicacao(double x, double y) {
            return x * y;
    }
}

Desta forma, é possível fazer uso desses métodos sem instanciar a classe Calculadora, ou seja, podemos diretamente somar um valor apenas chamando o método Calculadora.Soma(1, 2).

Agora, outro uso de um atributo estático, digamos que temos uma classe Aluno, com uma propriedade do tipo Escola (aqui a definição da classe escola não importa), e vamos levar em consideração que todos os alunos possuem o mesmo valor para essa propriedade Escola, ao invés de colocarmos um mesmo valor sempre que criarmos um objeto Aluno, podemos definir um valor inicial para essa propriedade Escola e torná-la estático, colocarei o código de exemplo a seguir:

public class Escola {
 string nome;
 string endereco;

 public Escola(nome, endereco) {
     this.nome = nome;
     this.endereco = endereco;
     }
 }

 public class Aluno {
     string nome;
     int idade;
     string apelido;

     static Escola escola = new Escola("nome qualquer", "endereco qualquer");
 }

assim mantemos uma única instância de um objeto Escola e garantimos que todos os alunos possuem o mesmo valor para esse campo.

Espero que tenha ajudado a compreender melhor esse conceito e caso tenha dito algo que não entendeu ou simplesmente não achou correto, estarei acompanhando esse tópico.

Boa sorte :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software