举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > java类变量和实例变量区别 Java 类变量

java类变量和实例变量区别 Java 类变量

2023-03-06 12:31 Java教程

java类变量和实例变量区别 Java 类变量

java类变量和实例变量区别

Java类变量和实例变量是Java中的两种不同类型的变量,它们在使用上有很大的不同。

首先,Java类变量是一种特殊的静态变量,它是在类加载时创建的,并且在整个应用程序中都是共享的。它们通常用于存储一些公共信息,例如常量或者一些公共计数器。

public class Test { 
    public static int count = 0;  // 类变量 
} 

而实例变量则是在创建对象时创建的,每个对象都有自己独立的一份。它们通常用来存储对象特有的信息,例如对象名、位置、大小等。

public class Test { 

    private String name; // 实例变量 

    public Test(String name) { 
        this.name = name;  // 赋值 
    } 

    public void printName() { 
        System.out.println(name); // 调用  
    }  
}   

此外,Java类变量是static修饰的,而实例变量则不需要static修饰。这也意味着Java类变量不能使用this来引用(因为this代表当前对象);而实例变量必须使用this来引用。

Java 类变量

Java教程 - Java类变量

三种类型的变量

Java支持三种不同生存期的变量:

  • 成员变量
  • 方法局部变量
  • 静态变量

类成员变量

在创建实例时创建类的成员变量,并且当对象被销毁时被销毁。未显式分配值的所有成员变量在声明期间自动分配一个初始值。成员变量的初始化值取决于成员变量的类型。

下表列出了成员变量的初始化值:

元素类型 初始值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char "u0000"
boolean false
对象引用null

在以下示例中,变量x在声明变量时设置为20。

public class Main{
   int x = 20;
}

如果您不设置它们,以下示例显示默认值。

class MyClass {
  int i;

  boolean b;

  float f;

  double d;

  String s;

  public MyClass() {
    System.out.println("i=" + i);
    System.out.println("b=" + b);
    System.out.println("f=" + f);
    System.out.println("d=" + d);
    System.out.println("s=" + s);
  }

}

public class Main {
  public static void main(String[] argv) {
    new MyClass();

  }
}

输出:

方法局部变量的示例

方法的自动变量在入口时创建方法,并且仅在该方法的执行期间存在。只有在执行该方法时才能访问自动变量。(此规则的一个例外是内部类)。

自动变量(方法局部变量)不由系统初始化。自动变量必须在使用前显式初始化。例如,这个方法不会编译:

public class Main{
    public int wrong() { 
      int i;
      return i+5;
    } 
 
}

编译上面的代码时的输出:



类变量(静态变量)

这里只是一个类变量的一个副本,它存在,而不管该类的实例数。 静态变量在类加载时初始化; 这里,当Main类被加载时,y将被设置为30。

public class Main{ 
  static int y = 30;
}

Java this关键字

this 引用当前对象。

this 可以在任何方法中使用来引用当前对象。

以下代码显示如何使用 this 关键字。

// A use of this. 
Rectangle(double w, double h) { 
    this.width = w; // this is used here
    this.height = h; 
}

隐藏的实例变量和this

使用 this 引用隐藏的实例变量。

成员变量和方法参数可以具有相同的名称。在这种情况下,我们可以使用它来引用成员变量。

Rectangle(double width, double height) { 
    this.width = width; 
    this.height = height; 
}

以下示例显示如何使用此引用实例变量。

class Person{
    private String name;


    public Person(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
public class Main{
    public static void main(String[] args) {
        Person person = new Person("Java");
        System.out.println(person.getName());
        person.setName("new name");
        System.out.println(person.getName());
    }
}

上面的代码生成以下结果。

阅读全文
以上是鳄鱼CMS为你收集整理的java类变量和实例变量区别 Java 类变量全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们