|
|
1
9
下面是您的示例:
方法
以下是修改后的版本:
发现自己正在创建全局静态是您应该仔细考虑如何设计的一个指示。它不是 总是 错了,但它应该告诉你去想你在做什么。 |
|
|
2
4
静止的 变量是在类的所有对象之间共享的变量。在您的示例中,对于 成员 你创建,你会得到拥有它自己的对象 英珠 价值观。当你使用 静止的 对于变量,每个对象之间只有一个共享的变量 成员 . 静止的 方法的工作方式相同-它们在所有对象之间共享。 自从 静止的 变量/方法对所有对象都是通用的,不需要创建类的对象来访问这些变量/方法。 非静态变量 英珠 属于类的对象。如果不创建对象,则无法访问它们。因此,当您从静态上下文访问非静态变量时(此处 主要的 方法,那么Java就不知道哪个对象是 英珠 您正在尝试访问。因此出现了错误。 要么制造 英珠 静态的,或通过创建成员的对象来引用它
|
|
3
4
什么是静态实际上意味着类变量对于该特定类的所有实例都是相同的,但是如果要避免使用静态变量(这是一个好主意,因为静态变量保存在内存中),可以通过构造函数传递变量值,从而避免使用静态修饰符,并达到相同的效果(即如果在类实例化时传递相同的值)。 下面是代码示例:
因此,您可以在创建新实例时执行此操作:
每次创建汽车实例时,它的速度都是100,因此避免了静态声明。
|
|
|
4
2
静态变量是类变量。该变量的一个副本可用于类的所有实例,它们将共享该变量。静态成员也可以在不引用类的特定实例的情况下使用。 这里更多: http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html |
|
|
5
1
静态变量不需要实例化类才能被访问,因此,如果您试图从静态上下文访问非静态变量,则可能会冒尝试访问未初始化/实例化的内容的风险。 |
|
|
6
1
静态方法只能访问静态变量。类中有两种变量。一个是静态变量(也是类变量),另一个是实例变量。内存中只存在静态变量的一个副本,但将为每个对象实例化实例变量。因此,对于静态变量,所有对象都访问同一个变量,并且一个对象所做的任何更改都将反映到其他对象。 这里的问题是为什么方法必须是静态的才能访问静态变量。当您使一个方法成为静态的时,您可以在不实例化该类的对象的情况下访问该方法。所以,如果这个方法能够访问实例变量,那么它应该对哪个对象的变量进行更改?另一种方法是可能的,即非静态方法可以访问静态变量。 |
|
|
7
0
静态方法中使用的每个类变量(在类体内部和方法体外部声明的变量)也需要声明为静态变量。 静态类变量和方法可以在该类之外访问,而不需要该类的实例。 |
|
|
8
0
静态变量对于类的所有实例都是通用的。 注意:如前所述,这些是类变量,即由所有实例共享。 这些变量也可以称为类级变量。 通常,您将常量(定义常量时还需要最后一个关键字)和全局变量定义为静态变量。 有关详细信息,请参阅: http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html http://www.roseindia.net/java/beginners/staticvariable.shtml |
|
|
SKG · 如何等待静态字符串获取特定值 8 年前 |
|
|
katiex7 · 为什么在声明静态变量之前可以初始化它 8 年前 |
|
|
Matthieu Raynaud de Fitte · 晶体静态变量 8 年前 |
|
|
Don M · 复制静态变量(文件范围)行为 10 年前 |
|
|
user3303680 · 静态/类变量和GUI[重复] 10 年前 |
|
|
arya · 忽略对静态变量的赋值 10 年前 |