DOMANDA Java Errore Che Non Riesco Proprio A Capire

GiorgioSgl

Nuovo Utente
2
0
Allora, prima cosa ciao a tutti e grazie per l'aiuto che mi darete.
Da poco mi sono scontrato con java e stavo provando a risolvere un esercizio(molto vago) che il professore(Universitario) ci ha dato, devo dire che non ho riscontrato molti problemi:
in poche parole dovevamo creare la classe vettura, e con la classe automobile dovevamo ereditare dalla classe vettura. Fin qui tutto bene finchè non c'è il problema con java che non puo assumere da tastiera allora ho scopero la classe Scanner, in poco tempo l'ho capita pero mi lascia un problema,
cioè che mi salta un'istruzione del costruttore di Automobile e proprio non so il perchè è ora che mi scervello ma proprio non riesco a capire dove sia questo errore.

Vi lascio qua sotto le due classi e il main e vi segnalo con un commento dove mi salta l'istruzione

Automobile.java
Java:
package vetture;

public class Automobile extends Vetture{
    public int ruote=4;
    public String targa;
    public String marca;
 
    public Automobile (){
        super();
        System.out.print("Targa");
        targa = leggi.nextLine(); //mi salta a pie pari questa istruzione
        System.out.print("Marca:");
        marca = leggi.nextLine();
   
    }
 
    public void stampa (){
        super.stampa(velocita,accellerazione,peso);
        System.out.println("Marca:"+marca);
        System.out.println("Ruote:"+ruote);
    }
}
__________________________________________________________________

Vetture.java
Java:
package vetture;

import java.util.Scanner;

public class Vetture {
     public int velocita;
     public int accellerazione;
     public int peso;
     public Scanner leggi;
 
     public Vetture(){
        leggi = new Scanner(System.in);
        System.out.print("Velocita:");
        velocita = leggi.nextInt();
        System.out.print("Accellerazione:");
        accellerazione = leggi.nextInt();
        System.out.print("Peso:");
        peso = leggi.nextInt();
     }
 
     public void stampa(int velocita,int accellerazione,int peso){
        System.out.println();
        System.out.println("Ora stampo i dati");
        System.out.println("Velocita:"+velocita);
        System.out.println("Accellerazione:"+accellerazione);
        System.out.println("peso:"+peso);
    }
}
_______________________________________________________________________-

Main.java
Java:
package main;

import vetture.Automobile;

public class Main {
 
    public static void main(String[] args) {
        Automobile auto = new Automobile();
        auto.stampa();
    }
 
}
_______________________________________________________________________
ci tengo a dire che il programma non ha molto in senso in se, ma che mi serviva piu semplicemente per entrare nell'ottica di java visto che arrivo da c++
_______________________________________________________________________

Aggiungo l'output per aiutare nella comprensione dell'errore
Velocita:50
Accellerazione:50
Peso:50
Targa:Marca:50

Ora stampo i dati
Velocita:50
Accellerazione:50
peso:50
Targa:
Marca:50
Ruote:4
 
Ultima modifica:

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Rifai lo scanner all'interno del costruttore di Automobile
 
  • Mi piace
Reazioni: GiorgioSgl

BAT

Moderatore
Staff Forum
Utente Èlite
22,941
11,577
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Non ci perdere tempo, è concettualmente errato inserire uno Scanner in un costruttore per leggere un dato;
il costruttore dovrebbe essere invocato a parametri noti ossia: nel main acquisisci come stringa targa e marca, e poi li passi come parametro al costruttore;
magari aggiungi un paio di metodi statici di utilità (che usano Scanner) per leggere da tastiera le stringhe di interesse.

P.S.
accelerazione si scrive con una sola "L"
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili