Dúvida código, iniciante java

Boa noite,
para melhor entendimento estou realizando a questão seguinte:

Implemente uma classe PopulacaoBaratas que simule o crescimento de uma população de baratas. O construtor recebe o tamanho da população inicial de baratas. O método dobrarPopulacao simula um período durante o qual a população dobra. O método sprayVeneno pulveriza as baratas com inseticida, o que reduz a população em 10%. O método obterBaratas devolve o número atual de baratas. Implemente a classe e um programa de teste que simule uma cozinha que começa com 10 baratas. Espere, use o inseticida e imprima a contagem de baratas. Repita a operação três vezes.

segue meu código abaixo, travei nessa parte em itálico, poderiam me dar um norte?

import java.util.Scanner;

public class PopulacaoBaratas {
private int baratasinicial,baratastotal;

PopulacaoBaratas(int baratasinicial){
	this.baratasinicial = 10;
}

public void baratast(int baratasinicial) {
baratastotal = baratasinicial;
}

public void dobrarPopulacao(int baratasinicial) {
baratastotal = baratasinicial*2;
}
public void sprayVeneno(int baratastotal) {
baratastotal = baratastotal - 10/100;
}
public void obterBaratas(int baratastotal) {
System.out.println("O total de baratas atualmente é: "+baratastotal);

}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
}
}

olá, pelo que entendi você precisa passar pelo argumento do construtor quantidade de baratas, no caso teria que ser assim:

PopulacaoBaratas(int baratasinicial){

  • this.baratasInicial = baratasInicial;*
    }

Assim você declara um valor quando criar o objeto PopulacaoBaratas.
Da forma que fez esta ciando um valor padrão para a variável dentro do construtor, o que não é uma boa prática.

Espero ter ajudado.

Corrigindo
Coloque o public.
public PopulacaoBaratas(int baratasinicial){

  • this.baratasInicial = baratasInicial;*
    }

estava me referindo a esta parte da questão, saberia me orientar? mas obrigado já vou corrigir esta parte também.

Eu acredito que seja algo assim:

class Main {
   public static void main(String[] args) {
       PopulacaoBaratas populacao = new PopulacaoBaratas(10);

       populacao.dobrarPopulacao();
       populacao.sprayVeneno();
       System.out.println("Populacao Atual: " + populacao.obterBaratas());
      //Repetir mais 2 vezes!
   }

Como oThiagoWill falou, você tem que corrigir o seu construtor e também o método sprayVeneno deveria ser assim:

public void sprayVeneno(int baratastotal) {
   baratastotal -= baratastotal * 10.0/100.0;
}
1 curtida