Java 中的实例变量
原文: https://javabeginnerstutorial.com/core-java-tutorial/instance-variable-java/
对象使用 Java 中的实例变量存储其状态。 没有使用STATIC
关键字定义的变量,并且在任何方法声明之外的都是特定于对象的,称为实例变量。 之所以这样称呼它们,是因为它们的值特定于实例,而不是在实例之间共享。
实例变量示例
class Page {
public String pageName;
// instance variable with public access
private int pageNumber;
// instance variable with private access
}
Java 中实例变量的规则
- 实例变量可以使用四个访问级别中的任何一个
- 他们可以标记为最终
- 可以将它们标记为瞬态
- 它们不能标记为抽象
- 无法将它们标记为已同步
- 它们不能标记为
strictfp
- 它们不能被标记为本地
- 它们不能标记为静态
备忘单
public, private, protected
所有这三种访问修饰符都可以应用于实例变量(默认)。- 实例变量可以标记为
final
。 - 实例变量可以标记为
transient
。 - 实例变量不能是
abstract
。 - 实例变量无法具有
syncronized
修饰符。 - 实例变量无法具有
strictfp
修饰符。 - 实例变量无法具有
native
修饰符。 - 实例变量不能具有
static
修饰符,因为它会变为类级别的变量。 - 实例变量将获得默认值,这意味着无需初始化即可使用实例变量。 对于局部变量,情况并非如此。
实例变量类型 | 默认值 |
---|---|
boolean | false |
byte | (char)0 |
short | (short)0 |
int | 0 |
long | 0l |
char | \u0000 |
float | 0.0f |
double | 0.0d |
Object | null |
package com.jbt;
/*
* Here we will discuss about different type of Variables available in Java
*/
public class VariablesInJava {
/*
* Below variable is INSTANCE VARIABLE as it is outside any method and it is
* not using STATIC modifier with it. It is using default access modifier.
* To know more about ACCESS MODIFIER visit appropriate section
*/
int instanceField;
/*
* Below variable is STATIC variable as it is outside any method and it is
* using STATIC modifier with it. It is using default access modifier. To
* know more about ACCESS MODIFIER visit appropriate section
*/
static String staticField;
public void method() {
/*
* Below variable is LOCAL VARIABLE as it is defined inside method in
* class. Only modifier that can be applied on local variable is FINAL.
* To know more about access and non access modifier visit appropriate
* section.
*
* Note* : Local variable needs to initialize before they can be used.
* Which is not true for Static or Instance variable.
*/
final String localVariable = "Initial Value";
System.out.println(localVariable);
}
public static void main(String args[]) {
VariablesInJava obj = new VariablesInJava();
/*
* Instance variable can only be accessed by Object of the class only as below.
*/
System.out.println(obj.instanceField);
/*
* Static field can be accessed in two way.
* 1- Via Object of the class
* 2- Via CLASS name
*/
System.out.println(obj.staticField);
System.out.println(VariablesInJava.staticField);
System.out.println(new VariablesInJava().instanceField);
}
}
掌握 Java 中的静态变量,以了解它与实例变量的不同之处。
参考文献
- 官方文档
- 静态变量与实例变量