Ajuda com métodos cadastrar()

public void cadastrar(String m, String mod, String i, double p, int np, int vm,
            String c, boolean b){
        super.setPreco(p);
        super.setCascos(c);
        super.setMarca(m);
        super.setModelo(mod);
        super.setIdentificacao(i);
        super.setNumeroPassageiros(np);
        super.setVelocidadeMaxima(vm);
        setBanheiro(b);
    }
    
    public void imprimir(){
        System.out.println("Marca: "+ marca);
        System.out.println("Modelo: " + modelo);
        System.out.println("Número de Passageiros: " + numeroPassageiros);
        System.out.println("Preço: " + preco);
        System.out.println("Velocidade Máxima: " + velocidadeMaxima);
        System.out.println("Tipo do casco: " + cascos);
        System.out.println("Identificação: " + identificacao);
        System.out.println("Banheiro: " + banheiro);
    }
    
    public void entradaDados(){
        Scanner sc = new Scanner(System.in);
        System.out.println("Marca: " );
        super.setMarca(sc.nextLine());
        System.out.println("Modelo: ");
        super.setModelo(sc.nextLine());
        System.out.println("Número de Passageiros: ");
        super.setNumeroPassageiros(Integer.parseInt(sc.nextLine()));
        System.out.println("Preço: ");
        super.setPreco(Double.parseDouble(sc.nextLine()));
        System.out.println("Velocidade Máxima: ");
        super.setVelocidadeMaxima(Integer.parseInt(sc.nextLine()));
        System.out.println("Tipo do casco: ");
        super.setCascos(sc.nextLine());
        System.out.println("Identificação: ");
        super.setIdentificacao(sc.nextLine());
        System.out.println("Banheiro:");
        System.out.println("(1)Sim (2)Não  ");
            int x=(Integer.parseInt(sc.nextLine()));
                if(x==1){
                    this.setBanheiro(true);
                } else{
                    this.setBanheiro(false);
                }   
    }

Meu professor ensinou a usar esses 3 métodos, mas eu não consigo entender a utilização desse cadastrar…
Pois, como eu chamo o cadastrar? Pra que serve? Como ele funciona? Não consigo entender, o imprimir e o entrada de dados consigo entender, menos esse cadastrar.

Esses métodos estão dentro de qual classe?

Analisando só esse código q vc postou, acho que vc irá utilizar mais ou menos assim:

Aviao aviao = new Aviao(); // pelos atributos, to pensando que eh um avião =)
aviao.cadastrar(...); // passe todos os parametros aqui
aviao.imprimir();

Sim, irei utilizar assim…
Mas não consigo entender para que serve o cadastrar…
Pois, tenho que colocar os valores dentro ex: aviao.cadastrar("", 0);
Como cadastra os valores, se eu tenho que passar o valor…
Quero entender sua utlidade

Esse método apenas irá preencher os valores em cada variável correspondente. Os atributos do avião devem ser preenchidos e seu professor propôs essa solução, mas vc pode fazer de outras formas também: Usando construtor, usando os métodos setters diretamente, usando o padrão builder, etc.

Você deve fornecer os valores dos atributos do avião. É igual eu criar uma classe Pessoa com o atributo nome e, na hora de instanciar uma pessoa (Pessoa p = new Pessoa()), não fornecer o nome, daí não conseguirei saber qual pessoa é essa.

Nesse contexto me parece que o seu cadastrar não está servindo pra nada, pois o entradaDados já está atribuindo os valores, faria sentido o método cadastrar se caso o método entradaDados preenchesse variáveis com os valores que o usuário informou, e após isso fizesse a chamada do cadastrar passando as variáveis por parâmetro.

Entendi, ficou mais esclarecido.
Mas e no caso dos construtores, como irei chamar o construtor que está
aviao.cadastrar("", 0.0, 0);. Se no programa está aviao.cadastrar(0.0, 0, “”);

Tem alguma coisa a ver com o construtor?

[Jonathan_Medeiros]

Aviao aviao = new Aviao();
aviao.entradaDados();
aviao.cadastrar("","",0);
aviao.imprimir();

No caso seria isso? mas como passaria os valores do entradaDados, se o aviao.cadastrar("","",0); pede os valores antes?

Essa sua classe permite vc utilizar 2 meios para informar os dados do avião. Ou vc usa o cadastrar ou vc usa o entradaDados.

[lucastody]
Mas como faço pra passar os valores do entradaDados para o cadastrar?
se no programa principal, o cadastrar pede valores antes ex:
aviao.entradaDados();
aviao.cadastrar("","",0);
aviao.imprimir();

Para o método entradaDados, vc não precisa passar os valores, esse método está preparado para capturar a entrada do teclado usando a classe Scanner:

Scanner sc = new Scanner(System.in);

Basta chamar assim:

Aviao aviao = new Aviao();
aviao.entradaDados(); // aqui vc irá preencher os valores que serão capturados pela classe Scanner
aviao.imprimir();

Sim, eu quero saber pra passar para o método cadastrar()
pois não sei a funcionalidade desse método
pois até então, ele não faz nada
creio que ele pegaria os valores do entradaDados e passaria para o cadastrar,
só não entendo como
ou o meu professor seria louco?

Não, não é isso. Esses dois métodos (cadastrar e entradaDados) fazem a mesma coisa. Você tem a opção de usar um ou o outro.

1 curtida

Agora faz mais sentido, um que entra pelo teclado (entradaDados)
e o outro direto pelo programa (cadastrar)
é isso?

1 curtida

Isso mesmo!

1 curtida