Array(Vetor) Com instancias de outra classe como fazer?

Galera como posso fazer um Array com Instancias de outra classe? Estou fazendo um exercício
lembrando estou criando uma classe abstrata, e nela irei criar um método, pra que seja passado um valor de horasTrabalhadas e retorna um array com as instancias da classe Imposto.
Empaquei nesse exercício não sei como fazer. Obrigado vlw

Você tem que lembrar que um array de objetos é na verdade um array de referências para objetos. Logo, uma posição de um array de referências pode apontar para um objeto do tipo ou de um subtipo do tipo declarado do array. Por exemplo:

 Number [] numArray = {new Integer(1), new Double(2.77), new Long(10000000L), new Float(1.58f) };

Um array que suporta qualquer objeto:

 Object objArray = {new Integer(1), "Olá Mundo", DriverManager.getConnection("balbalblabla") };

não consegui entender.
pode fazer um Ex mais demonstrativo? acessando tal classe?
lembrando sendo um método, não sei muito bem isso.
desculpe por minha demora em entender só que to batendo cabeça nisso

Oi,

seria algo como:

ClasseAbstrata[] array = {new Imposto(), new Imposto()}

Consegue compreender isso ? :slight_smile:
Abraços.

2 curtidas

sim esse ficou mais facil, mais como faço o método que consiga retornar esses valores aí?

1 curtida

Que método Luis ?
Métodos de retorno tu teria de usar Collection, que oferece o ‘get’ e muitos outros.
Para esse tipo de array, tens de acessar a posição, de forma bem simples:

Imposto imposto = array[0];

Pronto, agora você acessou o imposto da primeira (0, pois é onde inicia o vetor) posição do vetor.
Abraço.

Que método Luis ?
Métodos de retorno tu teria de usar Collection, que oferece o ‘get’ e muitos outros.
Para esse tipo de array, tens de acessar a posição, de forma bem simples:

Imposto imposto = array[0];

Pronto, agora você acessou o imposto da primeira (0, pois é onde inicia o vetor) posição do vetor.
Abraço.[/quote]

Então na verdade o exercício pede pra criar um método que passe como parâmetro o valor de horas trabalhadas e retorne um array com instancias da classe imposto.
Por isso minha dúvida, está complicado entender esse treco, o Prof não falou nada disso e passo, fica complicado

Que método Luis ?
Métodos de retorno tu teria de usar Collection, que oferece o ‘get’ e muitos outros.
Para esse tipo de array, tens de acessar a posição, de forma bem simples:

Imposto imposto = array[0];

Pronto, agora você acessou o imposto da primeira (0, pois é onde inicia o vetor) posição do vetor.
Abraço.[/quote]

Então na verdade o exercício pede pra criar um método que passe como parâmetro o valor de horas trabalhadas e retorne um array com instancias da classe imposto.
Por isso minha dúvida, está complicado entender esse treco, o Prof não falou nada disso e passo, fica complicado[/quote]

Esse método deve ser criado na sua classe Abstrata? Só tem duas formas:

1 - Cria um método estático e faz o que bem entender lá.
2 - Cria uma classe filho que contenha a implementação desse método (que será criado como abstrato na sua classe Pai) e depois instancia ele.

Para a primeira opção:

Imposto[] impostos = ClasseAbstrata.metodo(horas);

Para a segunda opção, seria algo como:

ClassAbstrata ab = new ClasseFilha(); Imposto[] impostos = ab.metodo(horas);

São as duas soluções que eu vejo para o seu caso, aconselho a segunda, já que dai cada classe filho pode implementar de qualquer forma o método.
Caso seja uma implementação única, sempre, ai pode usar a primeira opção.

Abraços.