将全局变量传递给对象

时间:2019-09-30 06:36:15

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

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

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

2 个答案:

答案 0 :(得分:2)

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

让我尝试用这种方式向您解释,假设您要问的是可能的,如果我们要创建100个不同的族对象,并且假设变量具有不同的数据,那怎么可能?因为更改全局字段会影响所有对象。

因此,基本上,当您创建对象时,可以像在示例中一样使用构造函数初始化字段,也可以使用no args构造函数并在使用“ Setters”创建对象之后设置值。

有关初始化的更多信息。

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

希望这会有所帮助。

答案 1 :(得分:0)

上面提到的代码段实际上是 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 
}

}