Этот код ниже объявляет и инициализирует и печатает двумерный массив в консоли:
package tp_poo_v1_build1;
public class UI {
public static void main(String[] args) {
int[][] carte = new int[5][5];
for(int i=0;i<carte.length;i++){
for(int j=0;j<carte[i].length;j++){
carte[i][j]='X';
}
}
for (int i = 0; i < carte.length; i++) {
System.out.print(" | ");
for (int j = 0; j < carte[i].length; j++) {
System.out.print((char)carte[i][j] +" | ");
}
System.out.println();
}
}
}
выводит:
run:
| X | X | X | X | X |
| X | X | X | X | X |
| X | X | X | X | X |
| X | X | X | X | X |
| X | X | X | X | X |
BUILD SUCCESSFUL (total time: 0 seconds)
Итак, проблема в том, что я хотел использовать этот код, используя класс с именем:
Grille.jave
и т. Д.я попробовал этот код ниже для класса "Решетка"
package tp_poo_v1_build1;
public class Grille {
int nbrL,nbrC;
int [][] carte= new int[nbrL][nbrC];
public Grille(int pNbrL,int pNbrC){ //constructor
nbrL=pNbrL;
nbrC=pNbrC;
/*for(int[] i:carte)// enhanced for loop ( for each )
for(int j:i)
i[j]='X';*/
for(int i=0;i<carte.length;i++){ // syntax not optmised !
for(int j=0;j<carte[i].length;j++){
carte[i][j]='X';//Char in int 'X' == 88
}
}
}
boolean estLibre(int x,int y) {
return (carte[x][y] == 'X');
}
public void liberer(int x, int y){
carte[x][y]='X';
}
public void occupe(int x,int y,char nom){
//...!
}
public void afficher(){//nbrL=carte.length and nbrC=carte[i].length ?
System.out.println("THE Grill: ");
for (int i = 0; i < carte.length; i++) {
System.out.print(" | ");
for (int j = 0; j < carte[i].length; j++) {
System.out.print(carte[i][j] +" | ");
}
System.out.println();
}
}
}
и для класса, который имеет основной метод под названием:
UI.java
код ниже:
package tp_poo_v1_build1;
public class UI {
public static void main(String[] args) {
Grille g=new Grille(5,5);
g.afficher();
}
}
он выводит:
run:
THE Grill:
BUILD SUCCESSFUL (total time: 0 seconds)
которыйэто не то, что я хочу, так что если кто-то знает, что не так, пожалуйста, помогите.
Почему, когда я пытаюсь заполнить массив и распечатать его напрямую, используя метод main, он работает нормально, но когда язаполнить и объявить массив, используя конструктор "Grille" и метод "afficher", чтобы распечатать его, создав объект "G" класса "Grille" и затем вызвав метод "afficher" в основном методе,он печатает сообщение «Гриль», но не массив, как в предыдущем коде? Я просто не могу понять, почему, пожалуйста, помогите !!
и спасибозаблаговременно.(извините, если это глупый вопрос, я новичок в java и программировании в целом ?) Я новичок в этом сайте, поэтому, если мой пост неверный, пожалуйста, простите меня и помогите мне исправить его.