Olá, gente!
Preciso passar uma classe como parâmetro para o construtor de outra classe. Podem me dar um exemplo de como fazer isso?
Olá, gente!
Preciso passar uma classe como parâmetro para o construtor de outra classe. Podem me dar um exemplo de como fazer isso?
Eu posso ter entendido errado a sua dúvida, mas eu acredito que o que vc quer alcança seja algo assim:
class UmaClasse {
}
class OutraClasse {
UmaClasse a;
OutraClasse(UmaClasse a) {
this.a = a;
}
}
public class Main {
public static void main(String... args) {
UmaClasse a = new UmaClasse();
OutraClasse b = new OutraClasse(a);
}
}
No código acima, em OutraClasse
, eu criei um constructor com um parâmetro do tipo UmaClasse
.
No método main
eu criei uma instancia de UmaClasse
e passei como argumento na criação da instancia de OutraClasse
.
Obrigado.
Vou explicar melhor o que preciso fazer:
Por enquanto fiz isso:
public class Carga {
private double valor;
private double peso;
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
}
public abstract class Transporte {
Transporte(Carga c) { // aqui está meu problema, como passo Carga como parâmetro?
Carga c = new Carga();
c.getPeso();
c.getValor();
}
abstract double retornaFrete(int distancia);
}
public class Vagao extends Transporte {
@Override
/*aqui não consegui calcular o frete com os valores dados na questão para
peso, preço e distância por causa do problema na classe carga*/
public int retornaFrete(int distancia) {
return 0;
}
}
public abstract class Transporte {
//declarando campo Carga, protected significa que as classes filhas terão acesso
protected final Carga carga;
//pedindo uma Carga como parametro
public Transporte(Carga carga) {
//guardando a carga como campo da classe
this.carga = carga;
}
abstract double retornaFrete(int distancia);
}
Aí na sua classe Vagao vc terá acesso ao campo “carga”.
Obrigado, cara. Ajudou demais!