java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java 变量类型

Java 中的变量类型

投稿:hqx

这篇文章主要介绍了Java 中的变量类型,一般包括局部变量、成员变量、类变量,下面文章对这三种内容的变量做了一个详细介绍,需要的朋友可以参考一下

1、局部变量

在方法或语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

2、成员变量(实例变量)

成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

3、类变量

类变量也声明在类中,方法体之外,但必须声明为 static 类型。

关于 类变量 的说明:

The static keyword in Java is used for memory management mainly. We can apply java static keyword with variables, methods, blocks and nested class. The static keyword belongs to the class than an instance of the class. The static can be: Variable (also known as a class variable) Method (also known as a class method) Block.

(翻译)

Java 中的 static 关键字主要用于 内存管理(就是用了这个会安排出内存空间来,供类的实例之间共享某个量)。我们可以将 java 的 static 关键字施用于变量、方法、语句块和嵌套类。static 定义的对象是属于整个类的, 而不是某个类的实例。

普通的变量属于类的某一个特定的实例,但用 static 关键字修饰的变量将属于一个类。也就是说,我们通过类的某一个实例去修改一个一般的变量值,将只有这个实例中的值被修改,其他实例不受影响;而若是修改一个 static 关键字修饰的类变量,这个类的所有实例的这个值都会被修改。

说起来比较麻烦,可以看一段示例代码:

public class Static {
 public static void main(String[] args) {
  Example foo = new Example();
  Example bar = new Example();

  foo.staticVar = foo.normalVar = "foobar";

  System.out.println(foo.staticVar + "\t" + foo.normalVar);
  System.out.println(bar.staticVar + "\t" + bar.normalVar);
 }
}

class Example {
 static String staticVar = "Example";
 String normalVar = "Example";
}

输出:

foobar foobar
foobar Example

可以看到,我们只改变了 foo 实例的值,但由 static 修饰的类变量 staticVar 的改变在 bar 中也出现了,而普通的成员变量则不然。

利用这种特性,我们可以实现一种可以统计自己的实例个数的类,

例如:

public class CountingClass {
 public static void main(String[] args) {
  Counter a = new Counter();
  Counter b = new Counter();
  Counter c = new Counter();

  System.out.println("Total Counters: " + a.total + " == " + b.total + " == " + c.total);
 }
}

class Counter { // 自计数类
 static int total = 0;

 public Counter() {
  total++;
  System.out.println("第 " + total + " 个 Counter 被构造。");
 }
}

到此这篇关于Java 中的变量类型的文章就介绍到这了,更多相关Java 变量类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文