java - java新手想了解执行流程

标签 java constructor

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

我的疑问是,当对象 obj 调用构造函数并将值 10 和 jack 分配给 x 和 y 时,那么当创建下一个对象 obj2 时,它是否会将 x 和 y 中的值替换为 12 和 matt ?因此,既然 call() 方法是在这之后被调用的,那么它是不是应该将 12 和 matt 打印到这两个调用中作为 print 正在打印 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;

..正如您所担心的那样,内容将被覆盖。

关于java - java新手想了解执行流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42319186/

相关文章:

c++ - LNK2019带模板

c++ - 尝试声明构造函数时在输入末尾预期为 `{'

c++ - 编译器是否默认生成构造函数constexpr?

java - 重构严格的代码以消除检查instanceOf的if-else语句

java - 什么是 java.lang.ClassCastException : java. util.ArrayList

java - 我的谷歌电子表格脚本只运行一个函数。我编写的脚本错误吗?

c++ - 当类具有 const char* 构造函数时,为什么使用 const char* 变量构造类的未分配临时实例会出错?

java - Hibernate使用PostgreSQL序列不影响序列表

java - 如何在java方法中返回语句?

如果使用 4 参数版本但不使用 2 参数版本,java.net.Socket 构造函数会抛出 Socket 异常