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?
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?
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 :)