Вот мой первый класс называется WorldПочему этот класс не работает правильно?
public class World {
private static char[][] world2D;
private int characterRow;
private int characterColumn;
public World(int width, int height){
world2D = new char[width][height];
characterColumn = 0;
characterRow = 0;
for(int i = 0; i < world2D.length; i++){
for(int j = 0; j < world2D[i].length; j++){
world2D[i][j] = '-';
}
}
world2D[characterRow][characterColumn] = 'P';
}
public void moveUp(){
world2D[characterRow][characterColumn] = '-';
if (characterRow > 0){
characterRow -= 1;
}
world2D[characterRow][characterColumn] = 'P';
}
public void moveDown(){
world2D[characterRow][characterColumn] = '-';
if (characterRow < world2D.length){
characterRow += 1;
}
world2D[characterRow][characterColumn] = 'P';
}
public void moveRight(){
world2D[characterRow][characterColumn] = '-';
if (characterColumn < (world2D[characterRow].length - 1)){
characterColumn += 1;
}
world2D[characterRow][characterColumn] = 'P';
}
public void moveLeft(){
world2D[characterRow][characterColumn] = '-';
if (characterColumn > 0){
characterColumn -= 1;
}
world2D[characterRow][characterColumn] = 'P';
}
public static void displayWorld(){
for(int i = 0; i < world2D.length; i++){
for(int j = 0; j < world2D[i].length; j++){
System.out.print(world2D[i][j]);
}
System.out.println();
}
}
}
Вот мой второй класс под названием Driver
import java.util.Scanner;
public class Driver {
public static void main(String[]args){
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.print("How tall should the world be?: ");
int height = input.nextInt();
System.out.print("How wide should the world be?: ");
int width = input.nextInt();
World myWorld = new World(width,height);
World.displayWorld();
}
}
Почему мне не нужно вызывать displayWorld конкретно на экземпляре MyWorld класса World?
Что делать, если я создал несколько экземпляров World? Это неправильно.
** редактировать подробнее
Я хочу, чтобы вызвать один из методов класса (т.е. MoveUp или MoveDown) на экземпляре объекта Всемирного класса MyWorld. Однако я не могу передать свою ссылку на этот объект (myWorld) на эти методы. Я хочу иметь возможность вызвать один из этих методов, который изменяет положение «P» в 2-мерном массиве и распечатывает его с использованием методов, которые я определил, включая метод displayWorld
Привет, я не получил четкого представления о вашей проблеме. Не могли бы вы проиллюстрировать это более подробно? – theguywhodreams
Я хочу вызвать один из методов класса (т. Е. MoveUp или moveDown) в экземпляре объекта myworld класса World. Однако я не могу передать свою ссылку на этот объект (myWorld) на эти методы. Я хочу иметь возможность вызвать один из этих методов, который изменяет положение «P» в 2-мерном массиве и распечатывает его с использованием методов, которые я определил, включая метод displayWorld – Efie
TAsk не нужно снисходительно. I Я спрашиваю, потому что я новичок в программировании и не понимаю, почему он не работает. Если вы здесь не для того, чтобы помочь или объяснить, пожалуйста, оставьте – Efie