[débutant]error NullPointerException

Le
yoyo
Bonjour,

Sur ce news je vois que tout le monde est très a l'aise en java, donc je ne
sais pas si ma question a vraiment sa place.

Voilà je suis débutant en programmation et en java, je viens d'essayé de
programmer un petit programme, afin de m'entraîner en java.

Apparamment je m'embrouille un peu avec des différentes class, car j'ai une
error NullPointerException.

merci de votre aide




class Case {

char c;
}
class TableauCase{

Case [][]tabCase;

public TableauCase(){

for(int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase=new Case [i][j];
}
}
}

public void initialise(){

for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase[i][j].c='?';
}
}
}


public void affiche(){
Terminal.ecrireChar(tabCase[0][1].c);
for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
Terminal.ecrireChar(tabCase[i][j].c);
}
}
}

}
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Dam
Le #227747
On 27 avr, 14:05, yoyo
Bonjour,

Sur ce news je vois que tout le monde est très a l'aise en java, donc j e ne
sais pas si ma question a vraiment sa place.

Voilà je suis débutant en programmation et en java, je viens d'essay é de
programmer un petit programme, afin de m'entraîner en java.

Apparamment je m'embrouille un peu avec des différentes class, car j'ai une
error NullPointerException.

merci de votre aide

class Case {

char c;}

class TableauCase{

Case [][]tabCase;

public TableauCase(){

for(int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase=new Case [i][j];
}
}
}

public void initialise(){

for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase[i][j].c='?';
}
}
}

public void affiche(){
Terminal.ecrireChar(tabCase[0][1].c);
for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
Terminal.ecrireChar(tabCase[i][j].c);
}
}
}

}


Un NullPointerException à quelle ligne???

yoyo
Le #227746
Dam wrote:

On 27 avr, 14:05, yoyo
Bonjour,

Sur ce news je vois que tout le monde est très a l'aise en java, donc je
ne sais pas si ma question a vraiment sa place.

Voilà je suis débutant en programmation et en java, je viens d'essayé de
programmer un petit programme, afin de m'entraîner en java.

Apparamment je m'embrouille un peu avec des différentes class, car j'ai
une error NullPointerException.

merci de votre aide

class Case {

char c;}

class TableauCase{

Case [][]tabCase;

public TableauCase(){

for(int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase=new Case [i][j];
}
}
}

public void initialise(){

for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase[i][j].c='?';
}
}
}

public void affiche(){
Terminal.ecrireChar(tabCase[0][1].c);
for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
Terminal.ecrireChar(tabCase[i][j].c);
}
}
}

}


Un NullPointerException à quelle ligne???



désolé, ligne 23 et 49 , dans ce cas je met le code complet.

================code ==================== class Case {

char c;
}
class TableauCase{

Case [][]tabCase;

public TableauCase(){

for(int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase=new Case [i][j];
}
}
}

public void initialise(){

//tabCase[0][1].c='?';
for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase[i][j].c='?';
}
}
}


public void affiche(){
Terminal.ecrireChar(tabCase[0][1].c);
/*for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
Terminal.ecrireChar(tabCase[i][j].c);
}
}*/
}

}



class test{


public static void main(String [] args){
Case un= new Case();
TableauCase deux=new TableauCase();

deux.initialise();
deux.affiche();


}
}


ricoh51
Le #227745
Apparamment je m'embrouille un peu avec des différentes class, car j'ai
une error NullPointerException.




================code ==================== > class Case {

char c;
}
class TableauCase{

Case [][]tabCase;


Salut

Case [][]tabCase=new Case[2][2];

en java, tu dois créer tes objets avant de pouvoir les utiliser, là tu
cherchais à utiliser un objet tableau non créé

bon courage

eric

--
http://ricoh51.free.fr/



yoyo
Le #227744
ricoh51 wrote:

Apparamment je m'embrouille un peu avec des différentes class, car j'ai
une error NullPointerException.




================code ==================== >> class Case {

char c;
}
class TableauCase{

Case [][]tabCase;


Salut

Case [][]tabCase=new Case[2][2];

en java, tu dois créer tes objets avant de pouvoir les utiliser, là tu
cherchais à utiliser un objet tableau non créé

bon courage

eric




en effet, dans ma boucle j'avais fais une new Case[i][j] pour créer les
différents object du tableau mais j'ai pas créer le tableau, par contre
j'ai toujours la même erreur.




yoyo
Le #227743
ricoh51 wrote:

Apparamment je m'embrouille un peu avec des différentes class, car j'ai
une error NullPointerException.




================code ==================== >> class Case {

char c;
}
class TableauCase{

Case [][]tabCase;


Salut

Case [][]tabCase=new Case[2][2];

en java, tu dois créer tes objets avant de pouvoir les utiliser, là tu
cherchais à utiliser un objet tableau non créé

bon courage

eric



il semblerais que l'erreur soit pas la meme

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at TableauCase.<init>(Case.java:15)
at test.main(Case.java:50)


On dirait qu'il essaye d'accéder une case de tableau qui n'existe pas!!!
Comprend pas pourquoi ?






Maxime Daniel
Le #227726
On 28 avr, 00:00, yoyo
On dirait qu'il essaye d'accéder une case de tableau qui n'existe pas!!!
Exactement. La première en fait.

Comprend pas pourquoi ?
Moi non plus... Mais ce serait beaucoup plus facile avec le source. En

Java comme avec d'autres langages de programmation, la mise-au-point
d'un programme nécessite d'avoir le code. Et la discussion avec
d'autres programmeurs commence par là (un grand avantage des projets
'open source').
Cela mis à part, utilisez-vous un environnement de développement
intégré ? Il en existe de très performants qui sont gratuits (Eclipse,
NetBeans), et qui vous permettront de lancer votre programme pas-à-pas
pour examiner ce qui se passe.
Bon courage.

ricoh51
Le #227725
Salut, je te mets une version qui tourne
2 remarques :
Quand tu écris
for(int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase=new Case [i][j];
}
tu crées 4 objets tabCase, et tu gardes la référence du dernier
seulement, il faut juste faire
Case tabCase[][]=new Case [2][2];
pour créer ton tableau

Et là encore tu utilisais des objets non créés, les Case... il faut les
créer avant de t'en servir

eric

--------------- Code qui fonctionne -----------------------
package test;

class Case {
char c;
}
class TableauCase{
Case tabCase[][]=new Case [2][2];

public TableauCase(){
}

public void initialise(){
for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
tabCase[i][j]=new Case();
tabCase[i][j].c='?';
}
}
}

public void affiche(){
for (int i=0; i<2; i++){
for( int j=0; j<2; j++){
System.out.print(tabCase[i][j].c);
}
}
}

}
public class Main {

public Main() {
}

public static void main(String[] args) {
TableauCase deux=new TableauCase();

deux.initialise();
deux.affiche();
}
}

--
http://ricoh51.free.fr/
Publicité
Poster une réponse
Anonyme