ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 中的实例变量 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/instance-variable-java/](https://javabeginnerstutorial.com/core-java-tutorial/instance-variable-java/) 对象使用 Java 中的实例变量存储其状态。 没有使用`STATIC`关键字定义的变量,并且在任何方法声明之外的都是特定于对象的,称为实例变量。 之所以这样称呼它们,是因为它们的值特定于实例,**而不是**在实例之间共享。 ## 实例变量示例 ```java class Page { public String pageName; // instance variable with public access private int pageNumber; // instance variable with private access } ``` ## Java 中实例变量的规则 * 实例变量可以使用四个[访问级别](https://javabeginnerstutorial.com/core-java-tutorial/access-modifier-in-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` | ```java 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 中的[静态变量,以了解它与实例变量的不同之处。](https://javabeginnerstutorial.com/core-java-tutorial/java-static-keyword/) ### 参考文献 * [官方文档](https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) * 静态变量与实例变量