Exercícios Resolvidos de Membros estáticos: static

Ver Teoria

Enunciado

Crie uma classe I n g r e s s o que contabilize a quantidade de ingressos vendidos. Existem dois tipos de ingresso, o Pista e o VIP.

Passo 1

E aí, pessoal, tudo certinho?

A questão é de boas.

A gente precisa desenvolver uma classe I n g r e s s o que sempre que instanciar um novo objeto vai contabilizar um ingresso adicional. Quando precisamos contar a quantidade de objetos criados, a melhor forma é utilizar membros estáticos.

Mas antes vamos começar com o cabeçalho da questão.

Passo 2

Vamos iniciar a nossa classe I n g r e s s o :

Dentro do encapsulamento privado, a gente vai declarar os atributos estáticos. A gente precisa contabilizar a quantidade de ingressos vendidos para a pista e também para a área VIP. Então vamos criar dois atributos estáticos v e n d a s P i s t a e v e n d a s V I P . Para isso é só adicionar a palavra chave s t a t i c :

Agora vamos mudar o encapsulamento para público onde iremos desenvolver o construtor, uma função sem tipo com o mesmo nome da classe. O construtor vai receber apenas um único valor booleano que define se o ingresso vendido é ou não do tipo VIP.

Dentro do construtor vamos utilizar uma estrutura i f - e l s e que caso incrementa o atributo estático v e n d a s V I P caso o parâmetro v i p seja t r u e , e incrementa o atributo estático v e n d a s P i s t a caso o parâmetro v i p seja f a l s e :

Para garantir o acesso aos membros estáticos vamos criar um getter para cada um dos atributos. Note que esses getters vão acessar apenas membros estáticos, então o ideal é que estes sejam métodos estáticos. Para isso é só adicionar a palavra chave s t a t i c :

Show. A estrutura da classe está pronta, podemos fechar a nossa classe!

Agora precisamos inicializar os membros estáticos. Lembre-se, membros estáticos não podem ser inicializados dentro dos parêntesis da classe.

Passo 3

Então, logo após a classe vamos invocar os atributos estáticos e inicializa-los com o valor inicial zerado. Lembre-se que não é necessário usar a palavra-chave s t a t i c novamente.

Logo em seguida, podemos inicializar definir o comportamento dos métodos estáticos. Estes são métodos getters simples, que apenas retornam o conteúdo das variáveis estáticas.

E pronto! A classe está pronta e os membros estáticos estão definidos!

Resposta