Passar classe como parâmetro

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.

1 curtida

Obrigado.

Vou explicar melhor o que preciso fazer:

  1. Criar uma classe Carga, com os atributos peso e preço e os métodos getters e setters.
  2. Criar uma classe abstract chamada Transporte e passar a classe Carga como parâmetro para o construtor desta classe. Transporte tem também um método chamado retornaFrete(int distancia).
  3. Criar uma classe chamada Caminhao, que estende Transporte e implementa o método retornaFrete().

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!