打印我的实例变量的问题

时间:2017-06-26 17:34:34

标签: java object instance-variables

我遇到了问题。当我写作例如" 18"在控制台中,它只是打印" 0"。我还想知道在创建新的汽车对象时如何打印所有实例变量。非常感谢。

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;
  }
}

4 个答案:

答案 0 :(得分:3)

你写了" n =数字"而不是" number = n"

应该是这样的:

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

要打印所有实例变量,请参阅:printing all variables

答案 1 :(得分:0)

在构造函数行n = number;中应为number = n;。 您将获得0,因为实例变量默认初始化为0或等效 要打印所有变量,您必须定义一个函数来执行此操作。最好的方法是覆盖toString()类的Object方法。

答案 2 :(得分:0)

在你的汽车课上,你现在正在这样做:

  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
  }

答案 3 :(得分:0)

您在课堂上的任务与您想要的任务相反。您将字段编号(始终为0)分配给参数n。您要做的是将参数n分配给字段编号。 所以解决方案是替换

n = number;

number = n;

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