嗨,我想了解该程序的执行流程。我是Java编程和学习构造函数的新手。

我的疑问是,当对象obj调用构造函数并将值10和jack分配给x和y时,是不是当创建下一个对象obj2时,它将值替换为12并在x和y中设置哑光?因此,因为在此之后调用了call()方法,所以它不应该将12和matt都打印为
打印是打印x和y吗?

class Constructor2 {
  int x;
  String y;

  Constructor2(int i, String s){
    x = i;
    y = s;
  }

  void call(){
    System.out.println("roll no is "+ x + " name is " + y);
  }

  public static void main(String args[]) {
    Constructor2 obj = new Constructor2(10, " jack ");
    Constructor2 obj2 = new Constructor2(12, " matt ");

    obj.call();
    obj2.call();
  }
}

最佳答案

变量x和y是实例变量,这就是为什么它们链接到创建的对象。它们不会影响其他对象或类。

如果已经将它们设置为静态变量,则称为类变量,如..

static int x;
static String y;


..您担心的内容将被覆盖。

10-06 13:38