Jump to content

Inicializar array com tamanho variável


fearz7
 Share

Recommended Posts

Boas pessoal , tendo o seguinte codigo:

public class Track {
    int number;
    String title; 
    int duration;
    String author;
    
    
    Track(int n, String t, int d, String a){
    number = n;
    title = t;
    duration = d;
    author = a;
    
    
    }
}

public class CD {

    String name;
    Track[] tracks = new Track[15];

    CD(String n, Track[] t) {
        name = n;
        tracks = t;

    }
}

Como faco para que cada CD criado possua um dado numero de faixas , ou seja, nao contenha sempre 15?

Cumps

Link to comment
Share on other sites

Por exemplo podes adicionar mais um argumento ao construtor de CD para o número de faixas.

Depois o array de Tracks que tens em CD inicializas apenas no construtor de CD com esse argumento recebido:

Track[] tracks;

tracks = new Tracks[tamanho recebido do construtor];

Link to comment
Share on other sites

Por exemplo podes adicionar mais um argumento ao construtor de CD para o número de faixas.

Depois o array de Tracks que tens em CD inicializas apenas no construtor de CD com esse argumento recebido:

Track[] tracks;

tracks = new Tracks[tamanho recebido do construtor];

Ja tinha pensado nesse caso mas sem alterar nada dentro do construtor posso fazer de alguma outra forma?

Link to comment
Share on other sites

Claro. Não inicializas dentro do construtor e podes adicionar um método à classe CD para criar as faixas:

setNTracks(int n){

  tracks = new Tracks[n];

}

No entanto antes deste método ser chamado cuidado porque tracks não está inicializado.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.