Crie uma classe para gerenciar o estoque de uma loja. Cada produto deve ter os um nome, um valor de venda e a quantidade disponível no estoque. Os atributos devem ser recebidos no momento em que o objeto seja instanciado.
Além disso, qualquer um dos objetos dessa classe deve ser capaz de acessar a quantidade de produtos no estoque e também deve saber quantos tipos de produtos diferentes estão disponíveis.
Para testar essa classe instancie 4 produtos diferentes com preços e quantidades variadas. E imprima o a quantidade e a variedade de produtos existentes.
Passo 1
Vamos nessa, pessoal. Essa questão pede pra gente criar uma classe para os produtos de uma loja, com atributos que representem o nome, quantidade e valor do produto. Por questão de boas práticas, estes atributos serão privados.
O diferencial da questão é que teremos duas variáveis que devem ser compartilhadas entre as classes: e . Para isso, estes atributos devem ser do tipo . Para seguir as boas práticas, estes atributos serão privados.
A questão também pede pra gente imprimir os valores de e , mas como estas são variáveis privadas vamos precisar criar um método para acessá-las.
Mas primeiro, vamos escrever o nosso cabeçalho. Adicionamos a classe para facilitar nossa vida.
Passo 2
Vamos começar a classe chamada . Vamos iniciar o escopo privado com a palavra-chave .
E agora vamos declarar os atributos: o primeiro é o do tipo , depois o valor do produto será o atributo do tipo , e a quantidade de produtos será armazenada no atributo do tipo .
Agora vamos dar atenção aos atributos estáticos. O primeiro representa a variedade de produtos disponíveis, vamos chamar de e o segundo representa a quantidade de todos os produtos no estoque, então chamaremos de .
Passo 3
Agora vamos dar uma olhada nos atributos públicos da classe.
O primeiro deles é o nosso método construtor, que vai receber o os parâmetros do produto: e .
Antes de concluir o método construtor temos que olhar para as variáveis estáticas.
O atributo aumenta sempre que um produto novo é inserido, então devemos atualizar esse atributo no momento da criação de um novo objeto.
Já o atributo depende da quantidade de produtos inseridos. Então vamos usar o operador para adicionar a inserida no .
A classe está quase pronta. Mas antes de fechar a classe temos que desenvolver um método capaz de acessar os atributos e . Então vamos criar o protótipo do método que será responsável por imprimir os valores.
Esse método pode ser do tipo estático pois ele só deve ter acesso as variáveis estáticas.
E com isso podemos fechar a nossa classe.
Passo 4
Contudo, a classe ainda não está concluída. Precisamos definir os valores iniciais dos atributos estáticos.
Então, fora da classe, nós chamamos os atributos utilizando a sintaxe . Lembre-se que fora da classe não precisamos usar a palavra-chave Veja como fica no nosso código:
Também precisamos definir o corpo do método . Para isso usamos a sintaxe: . Novamente, o uso do não é necessário.
No corpo da função vamos usar o para enviar uma mensagem legal pro usuário.
Agora sim, a classe está completamente finalizada.
Passo 5
Vamos por a classe pra trabalhar agora.
Vamos começar criando quatro objetos da classe . Você pode dar a eles o nome, valor e quantidades de quiser. Aqui eu escolhi alguns valores aleatórios:
Prontinho, agora basta a gente invocar o método . A gente pode usar qualquer objeto para isso, porém, as boas práticas sugerem que a melhor forma de usar um método estático é pela sintaxe: . No código fica assim:
Agora vamos rodar pra ver se deu tudo certo:
E é isso! Tudo certo! Até a próxima, pessoal.