Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-03-2008, 14:26   #1
8rebel6
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 8
[JAVA] problemino nullPointerException

salve a tutti vorrei cortesemente sapere come mai non riesco a stampare a video il contenuto di un array di oggetti xche incappo sempre in un nullPointerException.

Riporto qua sotto le due classi :

CLASSE MIOSOGGETTO

public class MioSoggetto {

private String cognome;
private String nome;
private String luogoNascita;
private String dataNascita;

//metodi get
public String getCognome()
{
return cognome;
}
public String getNome()
{
return nome;
}
public String getLuogoNascita()
{
return luogoNascita;
}
public String getDataNascita()
{
return dataNascita;
}

//metodi set
public void setCognome(String cognome)
{
this.cognome = cognome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public void setLuogoNascita(String luogoNascita)
{
this.luogoNascita = luogoNascita;
}
public void setDataNascita(String dataNascita)
{
this.dataNascita = dataNascita;
}


CLASSE MAIN

MioSoggetto [] mioSoggetto = new MioSoggetto[5];

mioSoggetto[0].setCognome("Rossi");
mioSoggetto[0].setNome("Paolo");
mioSoggetto[0].setLuogoNascita("Torino");
mioSoggetto[0].setDataNascita("16/10/1978");

mioSoggetto[1].setCognome("Granieri");
mioSoggetto[1].setNome("Manuela");
mioSoggetto[1].setLuogoNascita("Roma");
mioSoggetto[1].setDataNascita("08/09/1980");

mioSoggetto[2].setCognome("Moro");
mioSoggetto[2].setNome("Tommaso");
mioSoggetto[2].setLuogoNascita("Ivrea");
mioSoggetto[2].setDataNascita("11/12/1969");

mioSoggetto[3].setCognome("Giuliano");
mioSoggetto[3].setNome("Salvatore");
mioSoggetto[3].setLuogoNascita("Secondigliano");
mioSoggetto[3].setDataNascita("04/12/1971");

mioSoggetto[4].setCognome("Riina");
mioSoggetto[4].setNome("Salvatore");
mioSoggetto[4].setLuogoNascita("Corleone");
mioSoggetto[4].setDataNascita("05/07/1941");

//SE VOLESSI STAMPARE IL COGNOME DELLA POSIZIONE ZERO VA IN ERRORE
System.out.println (mioSoggetto[0].getCognome);
}

SE QUALCUNO HA TEMPO...

GRAZIE MILLE
8rebel6 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 14:37   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ciao,
MioSoggetto [] mioSoggetto = new MioSoggetto[5];
alloca l'array ma non il singolo oggetto, non e' come C++!

Dopo aver eseguito questa istruzione, devi allocare il singolo oggetto, magari usando un codice simile a questo:
Codice:
for (int i = 0; i < mioSoggetto.length; i++)
  mioSoggetto[i] = new MioSoggetto ();
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 14:45   #3
8rebel6
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 8
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Ciao,
MioSoggetto [] mioSoggetto = new MioSoggetto[5];
alloca l'array ma non il singolo oggetto, non e' come C++!

Dopo aver eseguito questa istruzione, devi allocare il singolo oggetto, magari usando un codice simile a questo:
Codice:
for (int i = 0; i < mioSoggetto.length; i++)
  mioSoggetto[i] = new MioSoggetto ();
grazie dell'aiuto bye
8rebel6 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 18:03   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Già che ci sei, per comodità potresti implementare nella classe MioSoggetto un costruttore che prende in ingresso i parametri che setti con i metodi getter/setter :

Codice:
...
public class MioSoggetto {

// dichiarazione esplicita costruttore di default: se dichiari altri costruttori
// ma vuoi comunque poter usare quello di default allora devi esplicitarlo
public MioSoggetto() {}

// dichiarazione costruttore con parametri, per comodità
public MioSoggetto(String cogn, String nom, String lnasc, String dnasc) {
    cognome = cogn;
    nome = nom;
    luogoNascita = lnasc;
    dataNascita = dnasc;
}

}
In questo modo puoi sia inizializzare un array di oggetti di default in un ciclo for() come nell'esempio di sottovento che inizializzare un oggetto alla volta ma invece di dover scrivere:

Codice:
...
mioSoggetto[0] = new MioSoggetto();
mioSoggetto[0].setCognome("Rossi");
mioSoggetto[0].setNome("Paolo");
mioSoggetto[0].setLuogoNascita("Torino");
mioSoggetto[0].setDataNascita("16/10/1978");
...
puoi accorciare un po' il codice:

Codice:
...
mioSoggetto[0] = new MioSoggetto("Francesco", "Baro", "Padova", "08/06/1979");
...
Ciao
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 08:07   #5
8rebel6
Junior Member
 
Iscritto dal: Feb 2008
Messaggi: 8
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Già che ci sei, per comodità potresti implementare nella classe MioSoggetto un costruttore che prende in ingresso i parametri che setti con i metodi getter/setter :

Codice:
...
public class MioSoggetto {

// dichiarazione esplicita costruttore di default: se dichiari altri costruttori
// ma vuoi comunque poter usare quello di default allora devi esplicitarlo
public MioSoggetto() {}

// dichiarazione costruttore con parametri, per comodità
public MioSoggetto(String cogn, String nom, String lnasc, String dnasc) {
    cognome = cogn;
    nome = nom;
    luogoNascita = lnasc;
    dataNascita = dnasc;
}

}
In questo modo puoi sia inizializzare un array di oggetti di default in un ciclo for() come nell'esempio di sottovento che inizializzare un oggetto alla volta ma invece di dover scrivere:

Codice:
...
mioSoggetto[0] = new MioSoggetto();
mioSoggetto[0].setCognome("Rossi");
mioSoggetto[0].setNome("Paolo");
mioSoggetto[0].setLuogoNascita("Torino");
mioSoggetto[0].setDataNascita("16/10/1978");
...
puoi accorciare un po' il codice:

Codice:
...
mioSoggetto[0] = new MioSoggetto("Francesco", "Baro", "Padova", "08/06/1979");
...
Ciao
grazie sei stato miolto utile. ciao
8rebel6 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v