Java 打印我的实例变量时出现问题

Java 打印我的实例变量时出现问题,java,object,instance-variables,Java,Object,Instance Variables,我有个问题。当我在控制台中编写示例18时,它只打印0。我还想知道,当我创建一个新的car对象时,如何打印所有实例变量。非常感谢 public class mad { public static void main(String[] args) { java.util.Scanner tastatur = new java.util.Scanner(System.in); int answer = tastatur.nextInt(); c

我有个问题。当我在控制台中编写示例18时,它只打印0。我还想知道,当我创建一个新的car对象时,如何打印所有实例变量。非常感谢

public class mad { 

  public static void main(String[] args) {
        java.util.Scanner tastatur = new java.util.Scanner(System.in);
        int answer = tastatur.nextInt();

        car carA = new car();
        carA.createCar(answer);

        System.out.println(carA.number);    
        }
  }

  class car {
    int number;

    void createCar(int n) {
        n = number;
  }
}

你写了n=number而不是number=n

应该是这样的:

void createCar(int n) {
    this.number = n;
}
要打印所有实例变量,请参见:

在构造函数行n=number中;应该是number=n;。 您得到的是0,因为默认情况下实例变量初始化为bt 0或等效值。
要打印所有变量,必须定义一个函数。最好的方法是重写对象类的toString方法

在您的汽车课程中,您目前正在做以下工作:

  int number;
  void createCar(int n) {
    n = number; // you're assigning n to the value of number
  }
切换这些选项,使其显示:

  int number;
  void createCar(int n) {
    this.number = n; // now you're assigning number to the value of n
  }

你在班车上的作业与你想做的恰恰相反。将始终为0的字段编号指定给参数n。您要做的是将参数n分配给字段号。 因此,解决办法是替换

n = number;

顺便说一下:按照惯例,类名应该以大写字母开头

number = n;