【问题标题】:Passing a Global variable to an object将全局变量传递给对象
【发布时间】:2019-09-30 06:36:15
【问题描述】:

我的问题是:如果我们想使用一个对象,为什么必须将全局变量(成员、名称)传递给它。不是声明了一个全局变量让所有对象都可以访问吗?

public class Family {
    int members;
    String names;
    public Family(int members, string names) {
         this.members = members;
         this.names = names;    
    }
}

【问题讨论】:

  • Java 没有全局变量。您编写的代码是其类之外的构造函数,它永远不会编译。你能更清楚你的问题是关于什么的吗?
  • public Family(int members, string names) 是类Family 的构造函数。如果对象没有其他构造函数,它将在对象初始化时调用。

标签: java object variables global-variables parameter-passing


【解决方案1】:

您还如何初始化对象中的变量?

让我试着用这种方式解释你,假设你的问题是可能的,如果我们要创建 100 个不同的家庭对象,如果变量应该有不同的数据,那怎么可能?因为更改全局字段会影响所有对象。

因此,基本上,当您创建对象时,您可以使用构造函数初始化字段,就像您在示例中所做的那样,或者您可以使用无参数构造函数并在使用“Setters”创建对象后设置值。

为了进一步了解初始化。

参考:https://www.google.com/amp/s/www.javaworld.com/article/3040564/java-101-class-and-object-initialization-in-java.amp.html

希望这会有所帮助。

【讨论】:

  • 好的,我明白了,如果没有,全局变量会改变,这将改变所有其他 100 个对象。
  • 如果你说的是可能的,那么它可能有,这就是我的理解。
  • 这可能是其中一种可能性
【解决方案2】:

上面提到的那段代码实际上是一个class定义。类只是一个模板,它具有与之关联的成员变量和成员函数。现在 Object 是该类的一个实例,它具有一些变量的值,这些变量通常分别使用 getter 和 setter 来获取和设置.其他操作可以由成员函数执行。构造函数用于初始化对象。

public Family(int members, string names) {
     this.members = members;
     this.names = names;    
}

是一个参数化构造函数,用于通过传递的参数初始化对象。这在创建一个类的多个对象时显然很有用,因为每个对象都有不同的关联值。更清楚:

public class Family {
int members;//member variable scope-class level
String names;//member variable scope-class level
public Family(int members, String names) {//int members,string names are parameters scope-constructor ,we can give any name to these two variables like int param_member,String param_names
     this.members = members;//LHS specifies the variable- member of the class and RHS specifies variable passed as parameter 
     this.names = names;  //LHS specifies the variable-names of the class and RHS specifies variable passed as parameter 
}

}

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2018-09-02
    相关资源
    最近更新 更多