Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no uso do new no construtor

Pessoal, Boa Tarde, sou novo na área de programação, e estou com dificuldade, sempre que me deparo, com códigos, em que utilização o new é utilizado a parâmetros e faz referencia a atributos fico confuso, como no código abaixo, em um exercício da faculdade, Order order = new Order(1080, new Date()); o professor fez um new Date, sendo que Date é um atributo de uma outra classe.

Agradeço desde já

package entities;

import java.util.Date;

public class Order {

    private Integer id;
    private Date moment;

    public Order () {

    }

    public Order(Integer id, Date moment) {
        this.id = id;
        this.moment = moment;
    }


}
package application;

import java.util.Date;

import entities.Order;

public class Program {


    public static void main(String[] args) {

        Order order = new Order(1080, new Date());

    }
}
insira seu código aqui

insira seu código aqui


insira seu código aqui

insira seu código aqui

insira seu código aqui

insira seu código aqui

2 respostas

Olá, Daniel. Tudo bem?

Veja, seu construtor de Order espera receber um parâmetro do tipo Integer e outro do tipo Date. Fazer dessa forma Order order = new Order(1080, new Date());, é equivalente a

Date moment = new Date();
Order order = new Order(1080, moment );
solução!

Olá Daniel, o Rodrigo explicou muito bem, apenas complementando, o java vai resolver sempre o que está dentro dos parênteses primeiro, isso para cada parâmetro.

No caso do seu construtor como ele quer receber o tipo Integer e Date respectivamente, como você vai passar, se 'vai ser diretamente', ou com uma formula ou criando a instancia (new ...) na hora ou com builder, 'não vai mudar', basta que, o que for feito, retorne o tipo esperado pelo construtor no final, ou seja, uma data e um integer.

Isso, é bem comum e tem um lado bom e um lado ruim, o bom que você economiza linhas de código, fazendo tudo na hora dentro dos parênteses, o lado ruim que como aconteceu com você, fica um pouco mais difícil de entender, mas fica tranquilo é só no começo, logo você tira isso de letra!

Se sua dúvida foi sanada, marca como respondida para ajudarmos outros desenvolvedores nas questões que estão abertas ainda!

Sucesso =)